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实验:桥接模式下使用SNAT策略连通客户机

linux中网络连接的三种模式:桥接模式,NAT模式,主机模式

Linux下CenterOS 7之网络连接方式及NAT网络配置

Linux下CenterOS 7之网络连接方式及NAT网络配置

Window系统通过Xshell5一直连接不上Linux虚拟机(NAT模式连接)