700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 解决虚拟机Linux(一个内网一个外网)不能上网问题

解决虚拟机Linux(一个内网一个外网)不能上网问题

时间:2024-01-27 20:00:31

相关推荐

解决虚拟机Linux(一个内网一个外网)不能上网问题

记得在我刚接触虚拟机的时候,什么都不懂。最开始初学的时候,用的图形化界面学习Linux还好,连网比较轻松,可是在最小化的时候,我的虚拟机总是出现不能上网的情况,特别是一开始就弄的两个网卡,我就更不会了,导致在让它能够上网这块,碰了很多灰,现在我把我遇到的所有情况的解决方式分享给大家。

不想听博主唠叨的朋友们,想知道怎么连网的话,大家可以直接跳到最后完整实操过程,看看具体怎么做

1.网络适配器

1.1连网模式

首先要知道能上网的就两种模式,侨接(自定义里面的VMnet0)和NAT模式(自定义里面的VMnet8(NAT)作为外网),记住仅主机模式(自定义里面的VMnet1(仅主机模式))是作为内网,内网是不能上网的,不能上网不能上网!!!!一定要记住,当然不能上网也是可以远程连接虚拟机的。

1.2一定要做安装前操作

我们在虚拟机安装前,就应该把那些网络适配器的类型选择好,不管是桥接还是NAT模式,还是两个网卡(VMnet1和VMnet8),在安装好虚拟机后,如果想更改网络适配器的网络链接方式,或者加网卡之类的,改了后就算是虚拟机重启过后(在目录/etc/sysconfig/network-scripts/下面可以查看)会发现和原来的一样,没有变化。所以如果要装的话先想好,不要想着后面来加。

这里随便多说一句,目录/etc/sysconfig/network-scripts/下面怎么看

[root@localhost ~]# cd /etc/sysconfig/network-scripts/ [root@localhost network-scripts]# lsifcfg-ens32 ifdown-isdnifupifup-plusbifup-wirelessifcfg-ens33 ifdown-postifup-aliases ifup-postinit.ipv6-globalifcfg-loifdown-ppp ifup-bnepifup-ppp network-functionsifdown ifdown-routes ifup-ethifup-routes network-functions-ipv6ifdown-bnep ifdown-sit ifup-ipppifup-sitifdown-eth ifdown-Teamifup-ipv6ifup-Teamifdown-ippp ifdown-TeamPort ifup-isdnifup-TeamPortifdown-ipv6 ifdown-tunnel ifup-plipifup-tunnel

我们会发现该目录下面有ifcfg-ens32和ifcfg-ens33两个文件,这个就是我们的网络适配器文件(注意该名字不唯一,一般自己电脑虚拟机上面做实验,大部分就是ifcfg-*,但有的确实会有一些奇奇怪怪的网卡名,这是正常的),上面那个32是网络适配器1的,下面那个33是网络适配器2的文件

1.3分清自己的内外网卡

要注意哪一块是内网那一块是外网,是根据自己安装前定的,并不是一直不变的。因为在博主安装前就干过下面这种事情,网络适配器选择v8,网络适配器2选择v1。

这个就出现一种什么情况呢,就是因为我不懂,还是按照第一个网卡配置文件写内网配置,第二个网卡文件写外网配置,这就变成了什么呢,内网写外网配置,外网写内网配置,内网又不能上网,总之就变成了,反正就是上不了网。

(下面这张图是当时错误情况,也不能算错误,就是最好别学我一样配,建议两网卡一般原本自带适配器选择v1作为内网,添加的适配器2作为外网)

可能有的人会问,我已经这样装了怎么办难道只能把虚拟机删了重新来?其实不用的,看准哪一个网卡是内网,哪一个网卡是外网就好了,写对应文件内容,别和我一样,明明这个自己选的不是内网还写内网,具体怎么写接下来会具体告诉大家。

2.配置文件

博主这里两个网卡采用的指定ip的形式,然后遇到的问题比较多,主要以下几种(这里先把我遇到的情况,觉得值得注意的点都列出来,具体完整怎么写,会在后面完整实操过程中写出来)

2.1网关(GATEWAY)

哪一个是外网哪一个加网关,内网配置文件不要写网关,不要写!!!不然可能短暂性上网,就比如今天能用第二天就上不了网络(远程还是可以的)。

在博主遇到的实际情况就是(此示例是错误的,大家不要跟着学)

[root@localhost network-scripts]# vi ifcfg-ens32TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens32UUID=6b975a35-5c77-4fe7-9697-c2f52244b79eDEVICE=ens32ONBOOT=yesIPADDR=192.168.100.101PERFIX=24GATEWAY=192.168.100.1 #兄弟们,这个是错的,别写,删掉[root@localhost network-scripts]# vi ifcfg-ens33TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens33UUID=80f40633-c9fc-413f-9b71-3c0d0ff8c10dDEVICE=ens33ONBOOT=yesIPADDR=192.168.200.101PREFIX=24GATEWAY=192.168.200.2DNS1=8.8.8.8DNS2=114.114.114.114

那怎么知道自己虚拟机的网关,在编辑–虚拟网络编辑器–找到nat设置–然后找到网关

注意这个虚拟机网关能自己改的(后面完整实操过程附上全过程),改本机上面的v8网关或者虚拟机上面的都可以,但是不要和本机上面v8网关设置的一样(本机v8位置如下,设置–网络–网络适配器–找到v8,查看详细信息),会冲突的,会导致虚拟机无法上网

2.2网段

知道了网关,然后就是网段,大家可以看到我的网段自己配置是这样的

这就意味着,内网配置文件,手动指定加的ip,也就是IPADDR必须是192.168.100.随便,外网加的ip是192.168.200.随便,这两个随便可以是不一样的,没影响的具体看个人习惯,但是外网加的ip不要是网关

然后,可能会问,他的网段不是这个,怎么办。我只能说好巧,我也不是,这个可以自己改的(后面完整连网实操过程会写)

2.3文件书写

注意一下,这里大写的必须大写,不要问为什么

外网网卡

BOOTPROTO=static(是dhcp改为static)

ONBOOT=yes(是no的话,改为yes)

IPADDR=网段内ip

GATEWAY=网关ip

PREFIX=24(或者NETMASK=255.255.255.0这两个是一个意思,选一个写上去,不要同时写)

DNS1=8.8.8.8(那个1必须写,然后可以再加一个DNS2=114.114.114.114作为备用)

内网网卡

BOOTPROTO=static(是dhcp改为static)

ONBOOT=yes(是no的话,改为yes)

IPADDR=网段内ip

PREFIX=24

3.网络

3.1重启网络

在前面所有配置都没有问题的时候,需要重启网络,才会生效,每改一次配置文件都要重启一次

重启网络命令

[root@localhost network-scripts]# systemctl restart NetworkManager或者[root@localhost network-scripts]# systemctl restart network

这里博主建议centos7版本,大家用systemctl restart network这一条命令来重启网络,因为在contos7版本的Linux上我也遇到了重启网络失败的情况。

当时情况如下,当我用NetworkManager来重启网络的时候,发现有时候systemctl restart NetworkManager命令首次使用的时候是没有问题的,但是后面我又改了ip,再次使用这条命令,发现没有任何改变,此时的配置还是之前的ip,虽然此时系统没有报错,但是确实网络没有重新起起来,那么解决如下

如果是contos7将systemctl restart NetworkManager命令换用systemctl restart network

如果是contos8,那么只有NetworkManager,用重载配置文件的方法下面这两条命令(contos7也可以用,但是没必要)

nmcli c reload 网卡名 (重载网络配置文件,但不会立即生效)

nmcli d reapply 网卡名 (立即生效)

[root@localhost ~]# ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:47:96:ec brd ff:ff:ff:ff:ff:ffinet 192.168.100.101/24 brd 192.168.100.255 scope global noprefixroute ens32 #此时会发现我第一个网卡配置ip为192.168.100.101valid_lft forever preferred_lft foreverinet6 fe80::70b3:401c:8ce5:5eed/64 scope link noprefixroute valid_lft forever preferred_lft forever3: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:47:96:f6 brd ff:ff:ff:ff:ff:ffinet 192.168.200.101/24 brd 192.168.200.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet6 fe80::5598:d840:a313:8726/64 scope link noprefixroute valid_lft forever preferred_lft forever#现在我们将第一个网卡ip进行修改测试一下[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens32TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens32UUID=6b975a35-5c77-4fe7-9697-c2f52244b79eDEVICE=ens32ONBOOT=yesIPADDR=192.168.100.102 #原101改为102PERFIX=24[root@localhost ~]# nmcli c reload ens32[root@localhost ~]# nmcli d reapply ens32[root@localhost ~]# ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:47:96:ec brd ff:ff:ff:ff:ff:ffinet 192.168.100.102/24 brd 192.168.100.255 scope global noprefixroute ens32 #说明网络重启成功valid_lft forever preferred_lft foreverinet6 fe80::bb9:1cec:3152:4afd/64 scope link noprefixroute valid_lft forever preferred_lft forever3: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:47:96:f6 brd ff:ff:ff:ff:ff:ffinet 192.168.200.101/24 brd 192.168.200.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet6 fe80::5598:d840:a313:8726/64 scope link noprefixroute valid_lft forever preferred_lft forever

3.2网络冲突

在我遇到的还有一种情况,就是能上网能远程,然后用着用着,再去干个其他事情,再回来打开虚拟机,就发现没法上网,甚至远程都连不上。之前内网外,都把网关写上去的至少远程能连(前面2.1),现在连远程都连不上。我寻思半天,终于找到解决方法:

大概就是network与NetworkManager冲突,我们需要把NetworkManger禁用,用下面几个命令

[root@localhost ~]# systemctl stop NetworkManger #关闭NetworkManger服务,临时关闭[root@localhost ~]# systemctl disable NetworkManager #开机不启动,永久关闭

然后让network来接管网络配置

[root@localhost ~]# systemctl restart network

完整连网实操过程

下面我就完整操作一下两个网卡怎么操作

一、配置虚拟网卡

二.配置文件

[root@localhost ~]# cd /etc/sysconfig/network-scripts/[root@localhost network-scripts]# ls #先看看你的网卡叫啥ifcfg-ens32 ifdown-isdnifupifup-plusbifup-wirelessifcfg-ens33 ifdown-postifup-aliases ifup-postinit.ipv6-globalifcfg-loifdown-ppp ifup-bnepifup-ppp network-functionsifdown ifdown-routes ifup-ethifup-routes network-functions-ipv6ifdown-bnep ifdown-sit ifup-ipppifup-sitifdown-eth ifdown-Teamifup-ipv6ifup-Teamifdown-ippp ifdown-TeamPort ifup-isdnifup-TeamPortifdown-ipv6 ifdown-tunnel ifup-plipifup-tunnel[root@localhost network-scripts]# vi ifcfg-ens32TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=static #dhcp改为staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens32UUID=6b975a35-5c77-4fe7-9697-c2f52244b79eDEVICE=ens32ONBOOT=yes #no改yesIPADDR=192.168.100.101 #加ipPERFIX=24 #可以不写[root@localhost network-scripts]# vi ifcfg-ens33TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=static #dhcp改为staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens33UUID=80f40633-c9fc-413f-9b71-3c0d0ff8c10dDEVICE=ens33ONBOOT=yes #no改yesIPADDR=192.168.200.101 #加ipPREFIX=24 #掩码GATEWAY=192.168.200.2 #网关DNS1=8.8.8.8 #域名解析器DNS2=114.114.114.114[root@localhost network-scripts]# systemctl restart network[root@localhost ~]# ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:47:96:ec brd ff:ff:ff:ff:ff:ffinet 192.168.100.101/24 brd 192.168.100.255 scope global noprefixroute ens32 #看是否显示内网配置信息valid_lft forever preferred_lft foreverinet6 fe80::bb9:1cec:3152:4afd/64 scope link noprefixroute valid_lft forever preferred_lft forever3: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:47:96:f6 brd ff:ff:ff:ff:ff:ffinet 192.168.200.101/24 brd 192.168.200.255 scope global noprefixroute ens33 #看是否显示外网配置信息valid_lft forever preferred_lft foreverinet6 fe80::5598:d840:a313:8726/64 scope link noprefixroute valid_lft forever preferred_lft forever

三.测试

[root@localhost network-scripts]# ping -c 5 PING (103.235.46.39) 56(84) bytes of data.64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=1 ttl=128 time=76.8 ms64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=2 ttl=128 time=75.2 ms64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=3 ttl=128 time=60.2 ms64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=4 ttl=128 time=65.6 ms64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=5 ttl=128 time=75.8 ms--- ping statistics ---5 packets transmitted, 5 received, 0% packet loss, time 4008ms #这里可以看到没有问题rtt min/avg/max/mdev = 60.292/70.783/76.877/6.630 ms

然后也可以连接远程试试,无论是连内网ip还是外网ip应该都是可以连接上的

最后,到这里也就差不多了,前面很多废话,都是希望大家更多的是理解和明白,因为很多东西可能出问题就是一个小问题,当然也希望大家都能解决问题。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。