所在位置:
首页 >
营销资讯 >
网站运营 > nat 模式虚拟机,主机 ping 不通vmnet8 网关?
nat 模式虚拟机,主机 ping 不通vmnet8 网关?
时间:2024-01-24 17:40:01 | 来源:网站运营
时间:2024-01-24 17:40:01 来源:网站运营
nat 模式虚拟机,主机 ping 不通vmnet8 网关?:2023年蚂蚁食盐的第
5篇专栏文章。大家好,我是蚂蚁食盐!
在使用VMWare安装虚拟机完成后,通常需要设置固定的ip地址,以便今后使用网络进行通信(如ssh、nfs等)。下文将对Linux虚拟机在Windows宿主机上使用VMWare软件运行的场景进行介绍和实际配置。
1. VMWare虚拟网络配置介绍
在VMWare虚拟机设置中,可以选择Linux虚拟机和宿主机网络之间的连接模式:
- NAT表示利用宿主机创建一张虚拟网卡VMNet8,创建虚拟交换机连接到此网卡上,虚拟机再利用此虚拟交换机上网。使用NAT转换表示在电脑内部创建子网,虚拟机所在网络为宿主机的子网。
- 在VMWare的编辑→虚拟网络编辑器→更改设置中可以改变网络设置。
- 手动设置ip子网地址,必须保证:ip的第一和第二段(192.168.)需要和宿主机一致,第三段必须和宿主机不一致,第四段补0,掩码是C类地址掩码。如果填写NAT网关,必须前三段和子网一致,最后一段随便填写一个1/~254之间的数字。如果填写DHCP,必须前三段和子网一致,最后的地址区间不包括网关地址。
- 示例:宿主机中填写虚拟网卡VMNet8的静态ip为192.168.43.2,VMWare虚拟网络编辑器中填写NAT子网为192.168.43.1、网关为192.168.43.2、DHCP为192.168.43.11/~192.168.43.30。
- 如果使用中,突然虚拟机不能上网,且ping不通宿主机的VMNet8静态ip或DHCP的ip(DHCP的ip可用ipconfig从windows宿主机的命令行上获得),解决方案为禁用VMNet8网卡,再启用。
2. 桥接模式表示宿主机创建一张虚拟网卡VMNet0,网卡通过虚拟网桥与宿主机网卡相连,虚拟机再与虚拟网桥相连。通过桥接模式的网络相当于直接与宿主机的上层路由器相连,所以更容易造成ip冲突等问题。
- 在VMWare的编辑→虚拟 网络编辑器→更改设置中可以改变网络设置。
- 设置桥接模式时,需要搞清桥接到宿主机哪张网卡上,WIFI通常是桥接到Wireless Lan网卡上,网线通常是桥接到PCIe网卡上。建议宿主机设置VMNet0的ip为DHCP,设置手动ip则更方便固定网络ip地址。
3. Host-Only模式表示宿主机创建一张虚拟网卡VMNet1,创建虚拟交换机连接到此网卡上,虚拟机再利用此虚拟交换机上网。与NAT的区别是,Host-Only模式需要宿主机网络设置共享网卡。
2. 配置宿主机、VMWare和虚拟机的网络
①. 宿主机配置
Windows宿主机上的局域网配置可打开
网络和Internet设置,在
高级网络设置中选择
更改适配器选项,将以太网、VMnet8按照要求进行修改。
- 在Windows Terminal中,输入ipconfig命令,查看以太网所在网段(使用家用路由器时,记住前三段数值);
- 右击更改适配器选项所弹出网络连接窗口中以太网的图标,选择属性、双击TCP/IPv4、选择“使用下面的IP地址”填写并保存;(IP地址前三段使用ipconfig以太网的ip地址前三段,第四段填一个2~254之间的数,掩码填写255.255.255.0)
- DNS可在网上搜索一套(如114.114.114.114,8.8.8.8等)
图-1- Win10局域网设置②. VMWare网络配置
在VMWare的
编辑→
虚拟网络编辑器→
更改设置中可以改变网络设置:VMnet0要注意桥接模式下选对网卡(有线网卡一般带有PCIe GBE关键字,无线网卡一般有Wireless关键字);VMnet8的虚拟机ip网关设置为和宿主机的VMnet8保持同一网段的不同ip。
图-2- WMWare设置NAT网络③. 虚拟机主机网络配置
在Linux系统中,一切皆文件。进入Linux系统,依然有一些文件可以进行Linux系统的网络设置。(该处设置需要与宿主机、虚拟机软件中的设置保持匹配)
通常是使用命令进行配置,在某些场合也可以直接修改网络的配置文件。
1). Fedora36的网络配置(设置静态ip)
在Fedora36中,使用命令行一般通过nmcli命令对有线网络进行配置。下面以VMWare网卡
桥接模式(VMnet0)举例,宿主机ip
192.168.3.10
,虚拟机Fedora36设置静态ip为
192.168.3.43/24
,并将网络连接的名称由默认的“有线连接 1”改为myConnect。
$> nmcli connection show #主要用于查看当前连接的NAME、TYPE、DEVICE$> nmcli connection add con-name [myConnect] type [ethernet] ifname [ens33] ipv4.method [man] ipv4.address [192.168.3.43] ipv4.gateway [192.168.3.1] ipv4.netmask [255.255.255.0] ipv4.dns [8.8.4.4] #增加一个有线网络连接,后续为键值对的形式,将本人方括号中的内容进行替换即可$> nmcli connection show #查看是否增加连接成功$> nmcli connection up myConnect #将刚刚新建的连接进行启动,如果使用同一device,则原连接自动下线$> ping www.zhihu.com #测试网络是否正常,此命令在命令行中可用Ctrl+c进行停止$> nmcli connection show #查看新连接是否被高亮显示(使用中的网络连接应该被高亮显示)$> nmcli connection delete '有线连接 1' #删除原连接,此处的中文字如果无法输入可由上条命令的输出进行复制粘贴,注意要加引号$> reboot #根据需要选择是否进行重启虚拟机
2). Ubuntu22.04/Debian11的网络配置(设置静态ip)
在Ubuntu和Debian上,也可使用上述nmcli命令对局域网进行配置并设置静态ip。除此以外,再介绍一种方式直接修改配置文件的方式对以太网设置静态ip。
- 情况假设:该Linux主机没有nmcli命令,也没有X Window界面,只有Terminal(CLI)。
- 可以使用
ifconfig -a
或ip a
命令获取网卡名称。 - 使用文本编辑工具或命令(如vim、nano、gedit等)对
/etc/network/interfaces
文档进行修改,在下方增加新配置的相关内容。 - 在成功保存后,使用
systemctl restart NetworkManager.service
对主机网络服务进行重启,重启服务后可使用ping命令查看网络连接是否正常。
一个修改的范例如下:
$> ip a # 用于查看网卡名称,本虚拟机的名称为"ens33"#> vim /etc/network/interfaces # 可使用i进插入模式,使用Esc结束插入模式,使用:wq进行保存退出auto ens33 iface ens33 inet staticaddress 192.168.4.8netmask 255.255.255.0gateway 192.168.4.1dns-nameservers 8.8.8.8 8.8.4.4#> systemctl restart NetworkManager.service$> ping www.zhihu.com
3. 总结
本文叙述并实际配置了Linux虚拟机的固定ip地址,需要注意:
- 对于NAT模式的网络,需要配置宿主机的VMnet8、VMWare中的虚拟网络的ip号和Linux主机的ip地址,注意这三者是在同一网段的不同ip,且和宿主机以太网在不同网段;
- 对于桥接模式的网络,注意将Linux虚拟机的ip地址设置为和宿主机以太网ip同一网段即可。
- 通常情况下,都推荐使用桥接网络,但对于宾馆或其他大型DHCP的网络中,为防止ip冲突,可选择NAT模式
下一篇Linux学习笔记,我想介绍如何使用远程命令行软件进行命令行远程登录,此后将介绍基础的命令。