第1章:初识Linux系统——连接网络NAT模式
1.检查虚拟网络编辑器设置(针对 VMware 环境)
- 打开虚拟网络编辑器:在 VMware 界面中找到 “编辑” -> “虚拟网络编辑器”。
- 选择 NAT 模式的网络(通常是 VMnet8):点击 “NAT 设置” 按钮。
- 检查子网 IP 和网关 IP:确保子网 IP(例如
192.168.41.0
)和网关 IP(例如192.168.41.2
)设置正确,并且没有与宿主机或其他网络设备冲突。 - 检查 DHCP 设置:点击 “DHCP 设置” 按钮,确认分配的 IP 地址范围与你的 Linux 系统中配置的 IP 地址不冲突。如果冲突,调整 DHCP 的 IP 地址池范围或者修改 Linux 系统中的 IP 地址。
示例:
2.检查 Linux 系统中的网络配置文件
如果没有这个路径的红色文件,用下面代码新建:/etc/sysconfig/network-scripts/ifcfg-ens33
sudo mkdir -p /etc/sysconfig/network-scripts
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
检查ifcfg-ens33
配置文件:
- 确保
IPADDR
设置为与虚拟网络编辑器中的子网 IP 在同一网段且不冲突的地址。 - 确认
NETMASK
(子网掩码)、GATEWAY
(网关)和DNS
设置正确。 - 示例配置:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static # 设置为静态IP
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=你的网卡UUID
DEVICE=ens33
ONBOOT=yes # 开机启动网络
IPADDR=192.168.学号.100 # 确保与DHCP范围不冲突的静态IP
NETMASK=255.255.255.0
GATEWAY=192.168.学号.2
DNS1=114.114.114.114
DNS2=8.8.8.8
网卡UUID查询方法
nmcli connection show
执行后,会列出所有网络连接的信息,其中
UUID
列对应的就是该网卡的唯一标识符,DEVICE
列会显示网卡名称(例如ens33
)。例如,输出可能类似:
NAME UUID TYPE DEVICE ens33 5f969b90-xxxx-xxxx-xxxx-xxxxxxxxxxxx ethernet ens33
这里的
5f969b90-xxxx-xxxx-xxxx-xxxxxxxxxxxx
就是ens33
网卡的 UUID,将其复制到配置文件的UUID=
后面即可。注意:
- 每个网卡的 UUID 是唯一的,不同系统或网卡的 UUID 不同,必须使用你自己系统中实际查询到的 UUID。
- 如果配置文件中的 UUID 与实际网卡不匹配,可能会导致网络服务启动失败,因此务必确保 UUID 正确。
3.重启网络服务:
- 在修改完配置文件后,使用以下命令重启网络服务:
sudo nmcli c reload
sudo nmcli c up ens33
4.检查宿主机的 VMnet8 虚拟网卡设置
- 打开网络连接:在 Windows 宿主机中,打开 “控制面板” -> “网络和 Internet” -> “网络连接”。
- 找到 VMware Network Adapter VMnet8:右键点击它,选择 “属性”。
- 检查 TCP/IPv4 设置:确保 IP 地址与虚拟网络编辑器中的设置匹配,且没有冲突。
- 尝试自动获取 IP 地址:可以先尝试将 VMnet8 的 TCP/IPv4 设置为 “自动获取 IP 地址” 和 “自动获取 DNS 服务器地址”,然后再重新配置为静态 IP,看是否能解决问题。
5.检查防火墙设置
- 在 Linux 系统中:
- 关闭防火墙(仅用于测试,生产环境不建议长期关闭):
sudo systemctl stop firewalld
sudo systemctl disable firewalld
- 如果关闭防火墙后可以正常联网,那么需要配置防火墙规则,允许网络流量通过。例如,对于 CentOS 10 的 firewalld 防火墙,开放 ping(ICMP)的规则:
sudo firewall-cmd --permanent --add-service=ping
sudo firewall-cmd --reload