目录
注:更改于2024/11/29,添加了NAT模式不能与外部网络设备建立TCP/IP的说明
关于
与物理交换机相似,虚拟交换机也能将网络连接组件连接在一起。虚拟交换机又称为虚拟网络,其名称为 VMnet0、VMnet1、VMnet2,以此类推。有少量虚拟交换机会默认映射到特定网络。
(该表截图至官网)
注: 在 Linux 主机系统上,虚拟交换机的名称采用小写字母,如 vmnet0。
VMware的几种网络模式的对比图:
(该表格截图自官网)
NAT的限制
从上面的对比图可以看出:
- NAT网络连接模式下,虚拟机在外部网络中无唯一标识
也就是说,NAT 通常不允许从网络外部发起连接。在实际环境中,这会导致一部分需要从服务器计算机发起连接的 TCP 和 UDP 协议无法自动运行或根本不运行。
在默认的 NAT 配置中,外部网络中的计算机无法发起对虚拟机的连接。
那在NAT模式下,虚拟机能对别的服务器发起SSH连接,但是不能通过客户端对虚拟机发起SSH访问。
因为,虚拟机在外部网络中不具有唯一标识。
但是桥接网络连接模式下,虚拟机在外部网络中具有唯一标识。
如果你需要对为桥接模式配置静态IP,可以转到“Ubuntu桥接模式配置静态IP”
修改配置
主要配置三个方面:
- 虚拟网络编辑器配置
- 主机网络适配器配置
- 虚拟机.yaml文件配置
虚拟网络编辑器配置
1. 在VMware中”编辑“->虚拟网络编辑器
2.对NAT模式的网卡进行更改配置(记住这个网卡的编号,这里是VMnet8)
3.这里以192.168.74.1为例,子网就是192.168.74.0。(记住你的IP与网关):
需要注意的是:
- 如果你配的是192.168.x.x,那你的子网就是192.168.x.0,掩码255.255.255.0
- 选择私网IP地址范围,私网网段:
- A类:10.0.0.0 - 10.255.255.255
- B类:172.16.0.0 - 172.31.255.255
- C类:192.168.0.0 - 192.168.255.255
- 不是必须选192.168开头,但是得知道IP相关知识
- 网关不能与IP地址范围一致
4.点击”DHCP设置“
5.让你的IP在下面范围内,然后点击确定
6.点击NAT配置
7.修改网关,要求与你的IP不一致(记住你的网关),点击”确定“
8.点击确定
主机网络适配器配置(可以改)
- 搜索控制面板,点击“网络和Internet”。或者直接点击“查看网络状态和任务”到第三步
2. 点击“查看网络状态和任务”
3. 点击“更改适配器设置”
4.选中网卡,右键点击“属性”
5.跳出如下窗口,选中如下IPv4,点击属性
6.进行IP配置,与上面的IP相同,DNS随意,能使就行。
7.点击确定。
虚拟机.yaml文件修改
首先查看网络接口:
1.ctrl + alt + t打开终端,”ifconfig“查看网卡编号
这里的编号:en33
2. 依次输入以下命令:
cd /etc/netplan
ll
vi 00-installer-config.yaml #可能名字略有不同
ll(小写l),主要是用来显示文件信息。这里找到以config.yaml结尾的文件
3.修改成如下格式
network:
version: 2
renderer: networkd
ethernets:
ens33: #(需要更改与你的接口一致)具体的网络接口名称,对应于物理网络接口
dhcp4: no
addresses: [192.168.74.1/24] #(与你的IP一致),一般默认/24,对应掩码255.255.255.0
gateway4: 192.168.74.254 #(与你网关一致)
nameservers:
addresses: [192.168.74.254] #(与你网关一致)虚拟机的DNS
YAML 格式对缩进非常敏感(确保每个层级的缩进使用相同的空格数,通常是两个或四个空格),缩进用于表示层级关系。在这个配置文件中,每个缩进级别通常代表一个层级,例如:
- 第一个缩进级别(
network:
、version:
、renderer:
、ethernets:
)是顶级配置。 - 第二个缩进级别(
ens33:
)是ethernets
下的一个接口配置。 - 第三个缩进级别(
dhcp4:
、addresses:
、gateway4:
、nameservers:
)是ens33
接口下的配置项。 - 第四个缩进级别(
no
、[192.168.74.1/24]
、192.168.74.254
、addresses:
)是具体配置项的值或子配置。
比如:
使生效
重启服务:
sudo systemctl restart NetworkManager #
对于使用NetworkManager的系统#或者
sudo systemctl restart networking #
对于不使用NetworkManager的系统
还不好使就重启虚拟机(狗头)。
总结与问题
主要更改的地方:
1.VMware的虚拟网络编辑器
2.主机的网络适配器:
3.虚拟机中的.yaml格式文件
问题
如果遇到问题,可以检查:
以及确保你配置的IP在DHCP的IP范围内:
此外,如果你的虚拟机没有反应过来,比如你配置的是192.168.74.5,但ifconfig后显示的是192.168.74.1之类的情况,可以reboot重启一下虚拟机(狗头)