>

Virtuabox 中的 Guest OS 有时会遇到无法上网的情况,这篇文章记录和总结我解决网络故障的过程。


#### 1. 依次排查故障可能的原因 ---

1. 首先确保网线是连通的, 即物理设备上是连通的。
2. 确保自己有(正确的) IP 地址
也即网卡能正常获得 IP 地址。这个 IP 地址可能是通过 dhcp 服务器分配的,也可能是用户设置的静态 IP。
我们可以通过 ifconfig -a 或者 ip link show 来查看本机上的网卡是否已经获得 IP 地址:


#### 2. 查看网卡是否正常工作** ---

这里,网卡正常工作的含义是指满足下面 3 种情况:

(1) 网关可以访问,也即可以 ping 通网关
查看网关信息:

$ route -n

或者

$ route show

查得网关地址之后,比如是 192.168.0.1,我们可以 ping 192.168.0.1 来查看是否连通。

(2) DNS 服务器可以访问,可以 ping 通 DNS 服务器
执行下列命令来查看 DNS 服务器地址:

$ less /etc/resolv.conf

(3) localhost 可以访问,并且主机名正确

$ ping 127.0.0.1
$ cat /etc/hostname

Windows 下查看 DNS 服务器,网关 Gateway,DHCP 服务器 的方法:


#### 在 Ubuntu 中配置网卡信息: ---

在 Ubuntu 中,网络配置文件是 /etc/network/interfaces,我们需要修改这个文件:

$ sudo vim /etc/network/interfaces

对于网络的设置进行修改之后,需要重启网络服务才能生效:

$ sudo /etc/init.d/networking restart

#### 4. 查看 VirtualBox 启动日志 ---

通常,VirtualBox 启动日志里面记录了登录及网络交互的过程。如果网卡正常工作,还是不能上网的话,我们可以查看这个这个日志来查找出错原因。



果然,从日志中可以看出是网络连接失败的原因了。这个 xunyount64.dll 是迅游加速器的动态加载库,NAT 的转发请求被这个程序拦截并拒绝了,导致虚拟机中的 Guest OS 无法上网(例如:ping www.github.com 会失败),返回错误提示: Unknow Host

找到原因之后,解决它就很简单了,直接卸载迅游加速器,问题就得到解决。