VMWare环境下,Linux连接外网(图文易懂)
阅读原文时间:2021年04月21日阅读:1

最近一直在准备学校的考试,很久没更博了。迟来的一篇关于linux联网的总结。

之前在安装zabbix监控软件的时候,要给自己的邮箱和微信发送告警,所以就对Linux联网做了一段时间的研究。

最近,师哥师姐准备毕业设计,又忘了Linux怎么联网了,帮他们连接好的同时,也复习了一遍。怕以后忘了,特地在这里备注笔记!

NAT模式

1、首先将eth1设置为NAT模式

2、查看NAT模式的IP网段和网关

从上面的图中可以看出来,linux的eth1的IP地址是192.168.40.*网段的一个IP地址

网关应该设置为192.168.40.2

3、去windows的适配器中查看NAT网卡的IPv4的各项设置(IP、网关、DNS)

因为NAT对应的网卡是VMnet1,所以查看VMnet1的IPv4网络信息

4、接下来就去linux中配置eth1网卡的IP

[root@dongdongyao ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.40.12
NETMASK=255.255.255.0
GATEWAY=192.168.40.2
DNS1=114.114.114.114

注意:上面linux的eth1网卡的DNS要跟windows中NAT的网卡的DNS一致

6、重启网卡eth1

[root@dongdongyao ~]# service network restart
Shutting down interface eth0:                              [  OK  ]
Shutting down interface eth1:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:  Determining if ip address 172.16.12.21 is already in use for device eth0...
                                                           [  OK  ]
Bringing up interface eth1:  Determining if ip address 192.168.40.12 is already in use for device eth1...
                                                           [  OK  ]
[root@dongdongyao ~]#

7、查看网关是否配置成功

[root@dongdongyao ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.40.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
172.16.0.0      0.0.0.0         255.255.0.0     U     0      0        0 eth0
0.0.0.0         192.168.40.2    0.0.0.0         UG    0      0        0 eth1           这里可以看到网关已经配置成功了
[root@dongdongyao ~]# 

8、这时候再ping外网就可以了

[root@dongdongyao ~]# ping www.baidu.com
PING www.baidu.com (111.13.100.92) 56(84) bytes of data.
64 bytes from 111.13.100.92: icmp_seq=1 ttl=128 time=53.6 ms
64 bytes from 111.13.100.92: icmp_seq=2 ttl=128 time=45.1 ms
64 bytes from 111.13.100.92: icmp_seq=3 ttl=128 time=50.3 ms
^C
--- www.baidu.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 11770ms
rtt min/avg/max/mdev = 45.111/49.709/53.620/3.512 ms
[root@dongdongyao ~]#

报错排查点:

  1. 首先windows是否连上网
  2. NAT模式的linux中的网卡的IP是否是与windows是在同一网段
  3. 网关(默认路由)是否配置成功
  4. iptables

桥接模式实现Linux连接外网

1、首先新增一个网卡为桥接模式

如果出现这种报错的话

原因就是你的第一个桥接网卡模式选择的是自动,只要将自动改为指定的某一个就可以了(适配器中一个本地连接对应一个桥接网口)

2、查看该桥接网卡的网段(cmd中ipconfig或者适配器中查看都可以,如果适配器中是自动连接,没有显示真实的IP的话,就ipconfig)

将linux中该网卡对应的网口(eth1)的IP配置成相同网段,网关也是相同网段,在加上DNS,重启网口就可以了。

DEVICE=eth1                            这里一定不要写错设备名
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.43.188
NETMASK=255.255.255.0
GATEWAY=192.168.43.1
DNS1=114.114.114.114

小结:

        其实相对来说,Linux连接外网不是很复杂

  1. 首先不论什么模式下,在Windows的网络适配器或者VMWare的虚拟网络编辑器中,找一下你使用的网卡(VMnet)的网段和下一跳IP地址,在Linux的网口配置文件中,相对应的配置上IP、GATEWEAY、DNS,在重启一下基本上就可以了
  2. 如果还不行的话,那么就是iptables和selinux没关了。

附:

       我们在研究MySQL的时候,很多情况下进行通信的期间,都必须要将selinux关闭,selinux关闭之后需要重启主机才会生效,很多时候在给其他同学排错的时候,最后落脚点都在于selinux没有真正意义上的关闭,因为同学已经修改了selinux的config了,但是忘记重启了,就造成去查看selinux的配置文件的时候确实是disabled,但是selinux没有真正意义上的关闭的假象。所以推荐大家用getenforce命令查一下是不是真的关闭selinux了。如果命令的输出是enforcing的话,就赶快重启吧!