(九)嵌入式:怎样配置Ubuntu的网络问题--心路历程

写这篇文档的目的是总结这几次配置网络的过程和自己的一些体会(不是专业的搞网络的,遇到这些问题很是苦恼)

这几天需要用到64位的Ubuntu,之前使用的是32的ubuntu12.04系统,于是在官网上下载了14.04的64位的Ubuntu。开始搭建。搭建流程参考文章(写的很详细也很好)
搭建Ubuntu流程
然后搭建完成后我们需要的是各种配置:配置root用户登录,网络等。这次重点就是分享自己的网络配置过程。

1. 首先虚拟机要上网,就是连接到公网就得配置使用net模式,做开发要使用宿主机的网口则是要使用桥接模式桥接到本地网卡。

配置net模式的时候,首先要理解虚拟机上面的网络配置有两种方式,一种是/etc/network/interfaces(/etc/init.d/networking)
另一种是Network-Manager
这两种方式看各位的习惯,习惯使用界面配置的可以选第二种,我使用的是第一种文档配置。值得注意的是两套方案是冲突的,不能同时共存。第一个方案适用于没有X的环境,如:服务器;或者那些完全不需要改动连接的场合。 第二套方案使用于有桌面的环境,特别是笔记本,搬来搬去,网络连接情况随时会变的。

他们两个为了避免冲突,又能共享配置,就有了下面的解决方案:
1、当Network-Manager发现/etc/network/interfaces被改动的时候,则关闭自己(显示为未托管12.04上面可以看到未托管,14.04看不到),除非managed设置成真。

2、当managed设置成真时,/etc/network/interfaces,则不生效。sudo vi /etc/NetworkManager/NetworkManager.conf 将managed=false改成true,重启一下就可以了。
两种方式一定要分开使用。

网卡重启的方式也是分为三种,

一、network
利用root帐户
service network restart

或者/etc/init.d/networking restart

二、ifdown/ifup
ifdown eth0
ifup eth0

三、ifconfig
ifconfig eth0 down
ifconfig eth0 up

参考原文:https://blog.****.net/marc07/article/details/62885872/

2.然后值得注意的是配置之前需要打开虚拟网络编辑器进行设置

(九)嵌入式:怎样配置Ubuntu的网络问题--心路历程
在以下界面选择VMnet8,然后在最下方设置子网IP,我使用默认设置192.168.1.0,然后点击NET设置网关IP。设置的跟本地网卡或者无线属性一致,先查看无线的属性:
(九)嵌入式:怎样配置Ubuntu的网络问题--心路历程
可以看见IP是192.168.1.172,网关是192.168.1.1,然后配置虚拟网卡vmnet8.
(九)嵌入式:怎样配置Ubuntu的网络问题--心路历程

网关设置为不同192.168.1.2
(九)嵌入式:怎样配置Ubuntu的网络问题--心路历程

这里一定要记住网关。DHCP服务器跟网关一致。

3. 配置Ubuntu的网络

在linux下把网卡IP配置成和VMnet8一个网段的IP:192.168.X.Z/255.255.255.0(我的配置是192.168.1.188/255.255.255.0)。网关配置成刚才查看的VMnet8那个IP192.168.X.2(我的是192.168.1.2)。在linux下DNS和windows主机的相同。(这里不用配置)
我使用文档模式配置,如下图:从这里可以看见网关设置一定要写对,我做的时候就没注意写错了,搞了好久才检查出来,费了很大劲去设置排查
(九)嵌入式:怎样配置Ubuntu的网络问题--心路历程
然后还有最重要的事,这前面的全部做完之后,发现还是无法上网,这是由于DNS服务器没有配置的原因,这个问题对于我来说是一个完全想不到的事,不配置域名服务器就无法通过域名来访问服务器地址,也就无法上网(百度等域名)查资料。
添加域名服务器:打开/etc/resolv.conf文件
添加这行:nameserver 192.168.1.2(这个域名也是一个问题,要与网关设置一致,否则无法上网。)

配置完成后就都可以上网了。
(九)嵌入式:怎样配置Ubuntu的网络问题--心路历程

最后附上虚拟机桥接模式和NAT模式的区别:(参考的,个人觉得对理解网络很有帮助)

bridged networking(桥接模式)
在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一*立的主机,它可以访问网内任何一台机器。在桥接模式下,你需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,配置好网关和DNS的地址后,以实现通过局域网的网关或路由器访问互联网。

network address translation(NAT模式)
使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式可以实现在虚拟系统里访问互联网。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其他真实主机进行通讯。采用NAT模式最大的优势是虚拟系统接入互联网非常简单,只需要宿主机器能访问互联网,你不需要配置IP地址,子网掩码,网关,但是DNS地址还是要根据实际情况填的。添加DNS地址除了在网卡属性中填写,还可以在虚拟机中的“虚拟网络编辑器”中的NAT选项卡中点击“编辑”按钮中来添加。

如果仅仅是让虚拟机能上网,两种模式都可以的,用桥接的话只要你在局域网内有合法的地址,比如你的ADSL猫是带路由功能的,如果是在单位,那就要网管给你合法IP才行(现在公司都是mac和ip绑定的)。
现在是主机和虚拟机互通,如果你的adsl带路由功能,那关闭虚拟机的dhcp,选桥接,检查2机是否分配同网段的IP,关闭防火墙。

总而言之,如果你希望虚拟机访问外网可以使用nat,如果是想和主机进行通讯使用桥接,前提是你可以自己设置独立ip.

nat模式可以上网但是不能和宿主计算机通信,理论上是更安全的,无论虚拟的系统做任何破坏,中毒,木马,最终不会影响宿主计算机。桥接模式相当于是交换机上又接了个独立主机,这个在不好的时候是会向子网中传递信号的,一般是作为子网中提供服务用的。两个用处不同而已

nat模式主机可以ping通虚拟机,虚拟机不能ping通主机。bridge模式配置好后(在同一网段)可以相互ping通