讲解一下如何让主机和虚拟机相通并且虚拟机可以访问外网。

打开虚拟机的设置窗口,进入网络选项卡,将网络连接1中的连接方式从默认 的NAT修改为Bridged Adapter。



$ sudo vi /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.0.120
gateway 192.168.0.1
netmask 255.255.255.0

$ sudo vi /etc/resolv.conf
nameserver 208.67.222.222
nameserver 208.67.220.220

$ sudo /etc/init.d/networking restart



SIOCSIFADDR: No such device
eth0: ERROR while getting interface flags: No such device
SIOCSIFNETMASK: No such device
eth0: ERROR while getting interface flags: No such device
Failed to bring up eth0

基本上经过了以上的设置,网络就应该已经OK了,可以在客户机上直接ping一下其他的地址来进行测试:

上面配置以后,可能出现Unknow Host.需要将网关添加到路由列表.



补充一点,VirtualBox 2.x时代建立的虚拟网卡和网络桥,现在已经没有用了,网络桥可以直接删除,虚拟网卡可以在设备管理器中删除,也可以在VirtualBox/ 全局设定/网络中删除。

结合自己的实际情况,我只修改了sudo vi /etc/network/interfaces和sudo vi /etc/resolv.conf,然后结合上一篇文章讲过的将sudo rm /etc/udev/rules.d/70-persistent-net.rules 删除后,重启ubuntu系统就实现了主机和虚拟机相通并且虚拟机可以访问外网的功能。


 


--------------------------


 


同事装了台Kubuntu 

在设置静态IP的时候 不能保存
/etc/init.d/networking restart
提示
Ignoring unknown interface eth0=eth0. SIOCSIFADDR: No such device
ifconfig -a eth0是存在的
问我怎么解决
首先想到删除
etc/udev/rules.d/70-persistent-net.rules 文件  之后重启让系统重新生成eth0配置文件
rm -f etc/udev/rules.d/70-persistent-net.rules
reboot
之后发现系统又自动获取IP了
于是手动修改etc/udev/rules.d/70-persistent-net.rules 文件
vi etc/udev/rules.d/70-persistent-net.rules 文件
把eth0改为eth1
之后修改 /etc/network/interfaces 文件
 vi /etc/network/interfaces
内容如下
auto eth1 //自动启用eth1
iface eth1 inet static //eth1为静态IP
address 192.168.0.16 //ip地址
netmask 255.255.255.0 //子网掩码
gateway 192.168.0.1 //网关
之后修改/etc/resolv.conf 
vi /etc/resolv.conf 
修改DNS 内容如下
# Generated by NetworkManager
nameserver 219.149.194.55  //电信DNS
nameserver 8.8.8.8 //谷歌提供的免费DNS解析

保存之后重启networking服务
/etc/init.d/networking restart
OK 可以上网了。
 
---------------
 

/etc/resolv.conf中设置dns之后每次重启Ubuntu Server时该文件会被覆盖,针对这种情况找了一些个解决方法

防止/etc/resolv.conf被覆盖的方法

方法一

1.需要创建一个文件/etc/resolvconf/resolv.conf.d/tail

sudo vi /etc/resolvconf/resolv.conf.d/tail

2.在该文件中写入自己需要的dns服务器,格式与/etc/resolv.conf相同

nameserver 8.8.8.8  

3.重启下resolvconf程序

sudo /etc/init.d/resolvconf restart 

再去看看/etc/resolv.conf文件,可以看到自己添加的dns服务器已经加到该文件中

方法二

在/etc/network/interfaces中

  1. ###interfaces中#######     
  2. auto eth0     
  3. iface eth0 inet static     
  4. address 192.168.3.250     
  5. netmask 255.255.255.0                  #子网掩码     
  6. gateway 192.168.3.1                      #网关     
  7. dns-nameservers 8.8.8.8 8.8.4.4    #设置dns服务器  

参考: Ubuntu 配置网络命令