在virtualbox上搭建ubuntu开发环境
准备工具
安装镜像
新建虚拟机,选中安装镜像,如果想在安装过程手动配置(如开启 SSH server 功能),勾选跳过自动安装:
点击下一步,配置 CPU、内存、硬盘等信息,一般默认即可,配置完如下:
之后可以直接运行虚拟机或者等配置完网卡等外设再开启。
配置网卡
桥接网卡
桥接网卡用于让虚拟机能作为独立设备连入局域网,与宿主机处于平等的网络地位(链路层),同时可以通过 dhcp 获得局域网地址。
NAT 网卡
NAT 网卡用于让虚拟机成为宿主机中的一个进程,能使用宿主机网络提供的传输层。如果宿主机可以连接互联网,则虚拟机通过 NAT 网卡也可以直接访问互联网。
双网卡配置 IP
ubuntu 18.04 之后需要手动激活双网卡
执行修改命令:
1
sudo vim /etc/netplan/00-installer-config.yaml
修改为如下内容(示例):
1
2
3
4
5
6
7
8
9
10
11
12
# This is the network config written by 'subiquity'
network:
ethernets:
enp0s3:
#dhcp4: true
addresses: [10.9.1.8/24]
#gateway4: 10.9.1.254
nameservers:
addresses: [8.8.8.8]
enp0s8:
dhcp4: true
version: 2
其中enp0s3
为桥接网卡,使用静态 IP 地址(或 dhcp);enp0s8
为 NAT 网卡,使用 dhcp 功能获取地址。注意将静态 ip 地址和 dns 服务器填写为正确的地址。
配置完后重启虚拟机,使用ifconfig
查看网卡信息:
配置代理
apt 代理
修改配置文件:
1
sudo vim /etc/apt/apt.conf.d/90curtin-aptproxy
修改代理 ip 和端口,注意代理服务器需要开放局域网访问权限和对应端口。(好像只支持http 代理)
1
2
Acquire::http::Proxy "http://10.9.1.123:1086";
Acquire::https::Proxy "http://10.9.1.123:1086";
通用代理
安装 proxychains:
1
sudo apt install proxychains
修改配置文件中的ProxyList
选项,建议使用socks5 代理:
1
2
[ProxyList]
socks5 10.9.1.122 1085
需要代理时直接在命令行前加上 proxychains 即可:
1
proxychains pip3 install requests
共享
virtualbox 增强功能
通过安装增强功能,能实现虚拟机和宿主机直接共享文件夹、粘贴板、拖放等功能。
虚拟机运行时,点击设备->安装增强功能,将自动为当前运行的虚拟机挂载一个光驱:
进入虚拟机内的挂载点,能看到光驱内有一些 virtulbox 提供的文件:
1
2
3
4
5
6
7
8
9
10
dev@dev-PC:/$ cd /media/dev/VBox_GAs_7.0.8/
dev@dev-PC:/media/dev/VBox_GAs_7.0.8$ ls
AUTORUN.INF VBoxDarwinAdditionsUninstall.tool
autorun.sh VBoxLinuxAdditions.run
cert VBoxSolarisAdditions.pkg
NT3x VBoxWindowsAdditions-amd64.exe
OS2 VBoxWindowsAdditions.exe
runasroot.sh VBoxWindowsAdditions-x86.exe
TRANS.TBL windows11-bypass.reg
VBoxDarwinAdditions.pkg
直接运行autorun.sh
即可:
1
./autorun.sh
手动方法
由于增强功能不能兼容所有的 Linux 发行版,且会替换当前系统的内核,可能让运行不稳定,我并不喜欢安装增强功能。
下面提供一些替代方案:
粘贴板
针对有 GUI 界面的 Linux,在宿主机上通过 ssh 工具连接虚拟机,然后在用户目录创建名为paste
的文件,如果要往虚拟机复制文本,就用 vim 编辑这个文件,并写入需要传递的内容。然后进入虚拟机的 GUI 界面,打开该文件就能获取内容了。
文件共享
在虚拟机中安装 lrzsz:
1
sudo apt install lrzsz
在宿主机使用支持 Zmodem 的 ssh 工具(如 xshell):
1
2
3
4
# 上传
rz
# 下载
sz /home/dev/file
或者在宿主机上创建 smb 或 ftp 共享服务器,由虚拟机访问