记得在我刚接触虚拟机的时候,什么都不懂。最开始初学的时候,用的图形化界面学习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]# ls
ifcfg-ens32  ifdown-isdn      ifup          ifup-plusb     ifup-wireless
ifcfg-ens33  ifdown-post      ifup-aliases  ifup-post      init.ipv6-global
ifcfg-lo     ifdown-ppp       ifup-bnep     ifup-ppp       network-functions
ifdown       ifdown-routes    ifup-eth      ifup-routes    network-functions-ipv6
ifdown-bnep  ifdown-sit       ifup-ippp     ifup-sit
ifdown-eth   ifdown-Team      ifup-ipv6     ifup-Team
ifdown-ippp  ifdown-TeamPort  ifup-isdn     ifup-TeamPort
ifdown-ipv6  ifdown-tunnel    ifup-plip     ifup-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-ens32
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens32
UUID=6b975a35-5c77-4fe7-9697-c2f52244b79e
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.100.101
PERFIX=24
GATEWAY=192.168.100.1  #兄弟们,这个是错的,别写,删掉
[root@localhost network-scripts]# vi ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=80f40633-c9fc-413f-9b71-3c0d0ff8c10d
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.200.101
PREFIX=24
GATEWAY=192.168.200.2
DNS1=8.8.8.8
DNS2=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 a
1: 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 forever
2: 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 forever
3: 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-ens32
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens32
UUID=6b975a35-5c77-4fe7-9697-c2f52244b79e
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.100.102 #原101改为102
PERFIX=24
[root@localhost ~]# nmcli c reload ens32
[root@localhost ~]# nmcli d reapply ens32
[root@localhost ~]# ip a
1: 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 forever
2: 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 forever
3: 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-isdn      ifup          ifup-plusb     ifup-wireless
ifcfg-ens33  ifdown-post      ifup-aliases  ifup-post      init.ipv6-global
ifcfg-lo     ifdown-ppp       ifup-bnep     ifup-ppp       network-functions
ifdown       ifdown-routes    ifup-eth      ifup-routes    network-functions-ipv6
ifdown-bnep  ifdown-sit       ifup-ippp     ifup-sit
ifdown-eth   ifdown-Team      ifup-ipv6     ifup-Team
ifdown-ippp  ifdown-TeamPort  ifup-isdn     ifup-TeamPort
ifdown-ipv6  ifdown-tunnel    ifup-plip     ifup-tunnel
[root@localhost network-scripts]# vi ifcfg-ens32
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static  #dhcp改为static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens32
UUID=6b975a35-5c77-4fe7-9697-c2f52244b79e
DEVICE=ens32
ONBOOT=yes   #no改yes
IPADDR=192.168.100.101   #加ip
PERFIX=24   #可以不写
[root@localhost network-scripts]# vi ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static   #dhcp改为static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=80f40633-c9fc-413f-9b71-3c0d0ff8c10d
DEVICE=ens33
ONBOOT=yes  #no改yes
IPADDR=192.168.200.101   #加ip
PREFIX=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 a
1: 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 forever
2: 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 forever
3: 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 www.baidu.com
PING www.wshifen.com (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 ms
64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=2 ttl=128 time=75.2 ms
64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=3 ttl=128 time=60.2 ms
64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=4 ttl=128 time=65.6 ms
64 bytes from 103.235.46.39 (103.235.46.39): icmp_seq=5 ttl=128 time=75.8 ms--- www.wshifen.com 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应该都是可以连接上的

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

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

  1. 解决虚拟机linux端mysql数据库无法远程访问

    解决虚拟机linux端mysql数据库无法远程访问 1. 在控制台执行 mysql -u root -p mysql,CentOS系统提示输入数据库root用户的密码,输入完成后即进入mysql控制台 ...

  2. 玩转虚拟机之VirtualBox设置虚拟机为静态IP并访问外网

    引言 大家好啊,关于虚拟机已经写了好几篇文章了,以下是往期文章,对你学习本文会有所帮助. <推荐一个免费好用的虚拟机软件> <玩转虚拟机之 VritualBox 安装 CentOS ...

  3. 1.Hyper-V虚拟机在wifi环境下的外网连接配置

    1.Hyper-V虚拟机在wifi环境下的外网连接配置 1.1.配置Hyper-V虚拟交换机 1.2.为虚拟机配置虚拟交换机 1.3.配置网络共享 1.4.为虚拟机配置静态IP 1.5.参考 1.Hy ...

  4. 如何使VMware虚拟机下的虚拟机可以相互连接又可以访问外网

    由于要练习搭建Hadoop集群,所以不得不在自己的电脑上搭建几台虚拟机试试. 这里博主打算搭建一台有界面的Ubuntu系统(麒麟系统),以及几台服务器版的Ubuntu系统,通过带界面的系统进行ssh远 ...

  5. linux服务器安装mysql并配置外网访问

    linux服务器安装mysql并配置外网访问 更新系统,如果不运行该命令,直接安装mysql,会出现"有几个软件包无法下载 sudo apt-get update 安装mysql sudo ...

  6. 关于阿里云服务器Linux安装Tomcat后,外网不能访问解决方案

    关于阿里云服务器Linux安装Tomcat后,外网不能访问解决方案 参考文章: (1)关于阿里云服务器Linux安装Tomcat后,外网不能访问解决方案 (2)https://www.cnblogs. ...

  7. 虚拟机创建静态ip连接到外网

    虚拟机创建静态ip连接到外网 1.进入路径vi /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=Ethernet BOOTPROTO=none ONBO ...

  8. 《Linux运维总结:外网vsftpd一键部署工具》

    文章目录 一.工具介绍 二.工具下载 二.工具使用 2.1.编辑变量文件 2.2.执行变量脚本 2.3.客户端连接测试 总结:整理不易,如果对你有帮助,可否点赞关注一下? 一.工具介绍 1.vsftp ...

  9. 运维(18) 解决Docker容器内无法访问外网问题

    文章目录 一.问题 二.解决 法一:重建网络`docker0` 法二:开启宿主机的ipv4转发功能 法三:重装docker 一.问题 宿主机能正常访问外网,但通过docker创建的容器里无法访问外网 ...

最新文章

  1. 产品经理要读什么书?怎么读?
  2. VMware调试.【转】VMware+Windgb+Win7 内核驱动调试
  3. Struts1.x系列教程(5):HTML标签库
  4. ICLR 2020:从去噪自编码器到生成模型
  5. 常用 SQL 语句汇总
  6. android连接耳机时音量控制,android – 扬声器音量(闹钟)在插入耳机时会降低
  7. windows比linux差在哪,怎么让新手理解Linux比Windows好在哪里!
  8. python gevent教程_Python的gevent框架的入门教程
  9. Android点击EditText文本框之外任何地方隐藏键盘的解决办法
  10. 2006年四种思路帮你创业
  11. CentOS 6.5安装Tomcat-9.0.0.M19
  12. Java刘意第八天笔记
  13. java反射(面试题)
  14. JSP简介和会话技术
  15. electron最小化托盘、禁用右键菜单
  16. Effective Receptive Field
  17. matlab使照片卡通化,怎么样用matlab设计动画直接画出奥运五环
  18. Dataset之CV:人工智能领域数据集集合(计算机视觉CV方向数据集)之常见的计算机视觉图像数据集大集合(包括表面缺陷检测数据集,持续更新)
  19. python写的脚本怎么用,如何用python写脚本
  20. 强化学习 之 蒙特卡洛方法

热门文章

  1. laravel框架快速入门及增删改查
  2. linux 安装jeakens_Linux安装mysql过程(转+完善)
  3. 【matlab图像处理】图像的算术运算实践
  4. 专题1:python之列表,字典知识点查缺补漏
  5. gerrit服务器搭建和gitlab自动同步(一)
  6. Elasticsearch中字段类型(Field Type)详解
  7. PDF怎么转换成TXT文本?这2个方法简单还免费
  8. 2021年CCF CCSP全国赛 赛后感想 心得 总结
  9. 机械制造业ERP结构与模块介绍,实施价值分析
  10. 应对IBM V7000磁盘故障,你只差这一步!