虚拟机:virtualbox+ubuntu18.4
网络设置:可以正常访问网络,同时主机和虚拟机之间可以相互访问
NAT网络:主要是跟主机共享IP访问网络,但是主机无法访问虚拟机
桥接网络:虚拟机跟主机之间可以相互访问,虚拟机之间可以相互访问
主机网络: 通过设置虚拟机跟主机之间可以相互访问, 虚拟机之间可以相互访问
Virtualbox网络设置:
NAT+桥接网络
略
虚拟机网络配置:
enp0s3 和enp0s8, 其中enp0s3是NAT 网络端口,enp0s8是桥接网络端口
对于NAT端口不需要进行设置,但是桥接端口则必须手动设置如下:(主要是enp0s8部分)
/etc/netplan/01-netcfg.yaml
其中,addresses必须是跟主机地址段一致,最后一个字节不同,网关和dns则必须一样。参考前面的主机配置显示。
修改完成后,运行 “sudo netplan apply”命令生效,重启虚拟机,然后可以发现主机和虚拟机之间可以相互ping通,而且 ping www.baidu.com也是成功的。
主机:
ping 192.168.1.161
虚拟机:
ping 192.168.1.3
sudo /etc/init.d/networking restart重启网卡,
这种网络配置(NAT+桥接)碰到两个问题:
1)桥接网络的设置跟具体的相连接的有线网络或者无线网络相关,若是换个无线网络名称,电脑自动获得一个新的IP地址,对应的桥接网络的IP等设置需要重新设置,很不方便。
2) 若运行Cxxx 软件,会出现虚拟机和主机之间无法访问的现象,重启电脑,也是如此。
最终更改成NAT+Host Only的网络配置,主机和虚拟机之间的IP地址是静态的,即使使用Cxxx 也不受影响。
Samba 设置
略
路由冲突(NAT+Host Only 网络)
ping www.baidu.com失败,但是主机和虚拟机可以ping通。
sudo route -nNvee
临时解决方法:增加一条下面路由后,ping www.baidu.com成功。
route add default gw 10.0.2.2 netmask 0.0.0.0 metric 0 dev enp0s3
但是网络一旦重启,则该问题又会出现
彻底解决方案:这个问题主要是因为enp0s9端口设置部分 ”gateway4: 192.168.56.1“,这条参数导致默认的路由都是从192.168.56.1走的,而不是通过enp0s3.因为metric为0,优先级最高,
屏蔽掉gateway4设置后,新的路由表如下
ping www.baidu.com成功
文件/etc/netplan/01-netcfg.yaml 修改如下:
Samba访问失败
1) WIN+R键后,输入//ip, 进入输入用户名界面“Enter Network Credentials”
在用户栏用/开头例如:/user, 否则window域可能自带用户名后缀。
2) 重启电脑后,尝试访问SMB服务器,出现下面的问题
参考下面的解决方法:在windows cmd窗口下运行下面的命令(清除当前的网络链接缓存)
net use * /del /y
然后重新尝试访问虚拟机,可以成功。
Q&A
参考: