Linux系统使用NAT模式连通主机碰到过的问题和解决方法
Posted Quin22
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统使用NAT模式连通主机碰到过的问题和解决方法相关的知识,希望对你有一定的参考价值。
本文适用于NAT模式(虚拟网卡vmnet8)配置静态ip和配置过程可能碰到的问题
我这里不会教怎么连接远程终端,只给出我所碰到过的,使用NAT模式连接真机碰到的问题以及解决方案
(这里提一句,我暂时没碰到过子网掩码不是255.255.255.0的情况,如果本文所有方法你都试过了,请按本文提到的大概方法检查子网掩码)
1.准备工作以及常见问题解决方案:
基本概念:
虚拟网络编辑器
用处:管理vmware网络
从vmware软件左上角开始左往右第二个,“编辑”—》“虚拟网络编辑器”—》“Vmnet8”(本文只针对NAT模式,所以都是Vmnet8)
通常这里的东西都不需要修改,如果需要修改但无法修改(灰色),请点击右下角的更改设置
vmnet8:NAT模式网卡,虚拟网卡
下文提到的所有vmnet8都在这里:
(windows每个大版本打开网络适配器的方式可能都不一样,我是win11,其他版本不知道怎么打开请百度)
右键电脑左下角的HOME,点击“搜索”
搜索控制面板
点击“网络和Internet”
点击“网络共和中心”
点击“更改适配器设置”
就可以看到虚拟网卡了
如果提示没有启用,单击右键,选择启用
tips:如果这里没有虚拟网卡vmnet8,原因未知,但提供两种方案
第一种:“打开虚拟网络编辑器”,勾选将主机虚拟适配器连接到此网络
通常可以直接打勾,如无法打勾,请点击右下角的更改设置
第一种无法解决用第二种:
下载软件CClear修复注册表
CClear官网:
CCleaner Makes Your Computer Faster & More Secure | Official Websitehttps://www.ccleaner.com/
下载安装好后按图操作
如果还没有,请重装vmware或百度(因为我就是用第二种解决的,试过了还没有我也没辙)
检查虚拟机网络连接
检查右下角网络是否连接,没有连接就点连接,同时检查连接方式是否为NAT模式
2.开始静态ip配置
配置静态ip:
直接vi编辑网卡文件个人觉得太复杂,这里不做介绍,有需求可以去找找其他文章,这里只提网卡文件在哪
网卡文件位置:/etc/sysconfig/network-scripts/{网卡名}
我个人常用的ip配置命令:nmcli
nmcli只需要记住一些参数
nmcli conn(显示可用网络)
修改网络命令:
nmcli conn modify {网卡名} ipv4.method manual ipv4.addresses xxx.xxx.xxx.xxx/24 ipv4.gateway xxx.xxx.xxx.xxx ipv4.dns xxx.xxx.xxx.xxx connection.autoconnect yes
注意,这里的网卡名,ipv4.addresses,gateway,dns都是自己根据需要写的,不要照抄!
参数解释:
modify:修改
{网卡名}:用“显示可用网络”查看
ipv4.method:配置方法
manual:手动(默认为dhcp为动态ip,下文会说)
ipv4.addresses:指定ip地址
这里的ip地址前三段要和“虚拟网络编辑器”—》“子网ip”的前三段一样(最后一段不能冲突)
/24是子网掩码 255.255.255.0
这个在ip后,一般直接/24,但是一定要写!
ipv4.gateway:指定网关
这里的网关要和“虚拟网络编辑器”—》“NAT设置”—》“网关”一样
ipv4.dns:指定dns
connection.autoconnect:是否开启自动连接
修改完成后使用
nmcli conn up 网卡名
重启网卡
使用ip a查看ip是否修改成功
虚拟机静态ip配置好后配置真机的虚拟网卡
右键vmnet8选择“属性”(不知道怎么打开请回去看开头)
选择“Internet协议版本4(TCP/IPv4)”—》右下角“属性”
配置IP地址,默认网关,子网掩码点一下会默认255.255.255.0,dns可以不写(dns大概可以不写吧,不给你保存的话就把你在虚拟机写的dns写上去,反正我的可以不写)
这里重点:
虚拟机nmcli命令时写的ip,虚拟网络编辑器的ip,还有真机编辑的ip地址,前三段网段必须一样,最后一段不能冲突!
默认网关则是三者都要一样!(这个也是大概吧,因为我碰到过网关不同ping不通的问题,反正写一样又不会怎么样)
vmware的网关查看在 “虚拟网络编辑器”—》“Vmnet8”—》“NAT设置”—》“网关”
编辑好后确定就可以了
右键电脑左下角的HOME,点击“搜索”
搜索cmd并打开
输入命令
ping XXX.XXX.XXX.XXX(你在虚拟机用nmcli命令配置的ip)
如图所示,即为虚拟机成功连接真机。
ping通但是无法连接远程终端,或根本ping不通的话,就是有错误,根据下文检查
出现错误开始检查
第一种:虚拟机网络连接模式没设置对
这种可能是最难想到的(反正我是),先放在第一个,情况就是vmware右下角的网络连接方式不是用NAT连接
先检查右下角的网络连接方式是不是NAT连接,如果不是,改正
如果是用NAT,但是还是无法连接,继续往下看
第二种:ip配置问题
这比较常见(出错的地方就那一些,所以部分图片直接放的相同的),出错于虚拟机的ip,虚拟网络编辑器的ip,还有你真机的ip
1.网段问题:
虚拟机的ip,虚拟网络编辑器的ip,还有你vmnet8的ip前三段必须相同,最后一段只要在255以内且不冲突一般都能通
2.冲突问题
真机ping得通虚拟机,但无法连接远程终端,请检查ip最后网段是否冲突
虚拟机的ip,“虚拟网络编辑器”—》“子网ip”,还有真机上vmnet8虚拟网卡的ip,三个地方的ip网段都对了,但还是无法连接,检查这三个地方的ip最后一段是否有冲突,修改时,最后一段只要前三段相同,其范围在1—255的范围就可以了(不要冲突!)
第三种:网关问题
三者ip均在同一网段且无冲突,但真机无法ping通虚拟机;或真机ping通虚拟机,但无法连接远程终端,请检查网关是否一致
虚拟机的网关,“虚拟网络编辑器”—》“NAT设置”—》“网关”,还有vmnet8的的网关要一样
第四种:连上又断掉的问题(这里不放图了)
明明连上了远程终端,但是总会自己断开,断开后使用ip a查看ip没有结果
使用vi /etc/sysconfig/network-scripts/{网卡名}检查里面内容有一项
BOOTPROTO=
如果等于号后写的是dhcp,说明虚拟机ip没有配置成静态(static或none),导致ip自己变了,检查nmcli命令执行时有没有漏写一条ipv4.method manual
dhcp=动态ip
static 或 none = 静态
第五种:子网掩码问题
这个我只碰到过一种情况,就是在使用nmcli命令修改ip地址时,ipv4.addresses XXX.XXX.XXX.XXX/24后的/24没写或者打错了,重新修改一下nmcli命令之后重启网卡就好了
以上是关于Linux系统使用NAT模式连通主机碰到过的问题和解决方法的主要内容,如果未能解决你的问题,请参考以下文章
linux中网络连接的三种模式:桥接模式,NAT模式,主机模式
Linux下CenterOS 7之网络连接方式及NAT网络配置