一、网络拓扑
假设你的局域网参数是:
路由器网关: 192.168.1.1
Windows 宿主机: 192.168.1.2
CentOS 虚拟机: 192.168.1.200
其他实体电脑: 192.168.1.100
子网掩码: 255.255.255.0
那么三台设备必须都处于:
192.168.1.0/24
也就是同一个网段。
二、VMware 配置桥接模式
1. 打开虚拟网络编辑器
VMware:
编辑
→ 虚拟网络编辑器
→ 更改设置
需要管理员权限。
正常应该看到:
VMnet0 桥接模式
VMnet1 仅主机模式
VMnet8 NAT模式
如果没有 VMnet0,可以点击:
还原默认设置
让 VMware 重建。
2. 配置 VMnet0
选择:
VMnet0
配置为:
桥接模式
已桥接至:你的真实 Wi-Fi 网卡
例如:
scss
Intel(R) Wi-Fi 6 AX201
Intel(R) Wi-Fi 6E AX211
Realtek Wireless LAN
不要选择:
Automatic
VMnet1
VMnet8
VPN
Docker
Hyper-V
Bluetooth
最好明确指定真实无线网卡。
3. 检查 Windows Wi-Fi 网卡
按:
Win + R
输入:
ncpa.cpl
找到当前使用的:
Wi-Fi / WLAN
右键:
属性
确认:
arduino
☑ VMware Bridge Protocol
是勾选状态。
4. 配置虚拟机网卡
关闭 CentOS 虚拟机。
进入:
虚拟机设置
→ Network Adapter
推荐选择:
自定义:特定虚拟网络
→ VMnet0
也可以使用:
桥接模式:直接连接物理网络
但我更推荐:
vbnet
Custom → VMnet0
因为配置关系更明确。
三、确认 Windows 当前网络参数
Windows CMD:
ipconfig
例如你当前实际是:
css
IPv4 Address: 192.168.1.2
Subnet Mask: 255.255.255.0
Default Gateway:192.168.1.1
那么 CentOS 必须设置为同一个网段。
例如:
192.168.1.200
四、CentOS 7.9 配置静态 IP
先查看网卡:
ip addr
假设网卡为:
ens33
编辑:
bash
vi /etc/sysconfig/network-scripts/ifcfg-ens33
推荐配置:
ini
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.200
PREFIX=24
GATEWAY=192.168.1.1
DNS1=192.168.1.1
DNS2=8.8.8.8
注意三个核心参数:
ini
IPADDR=192.168.1.200
PREFIX=24
GATEWAY=192.168.1.1
特别注意
不能写:
ini
GATEWAY=192.168.1.2
因为:
192.168.1.2
是你的 Windows 电脑,不是路由器。
正确网关是:
192.168.1.1
五、重启 CentOS 网络
执行:
systemctl restart network
然后检查:
sql
ip addr show ens33
应该看到:
inet 192.168.1.200/24
检查路由:
ip route
应该类似:
scss
default via 192.168.1.1 dev ens33
192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.200
六、按照顺序测试网络
CentOS → 路由器
r
ping -c 4 192.168.1.1
应该成功。
CentOS → 外网
r
ping -c 4 8.8.8.8
成功说明路由正常。
测试 DNS
r
ping -c 4 www.baidu.com
成功说明 DNS 正常。
七、CentOS → Windows
CentOS:
r
ping -c 4 192.168.1.2
如果:
192.168.1.1 能 ping
8.8.8.8 能 ping
192.168.1.2 不能 ping
通常是 Windows 防火墙禁止 ICMP。
Windows 管理员 CMD 可以执行:
ini
netsh advfirewall firewall add rule name="Allow ICMPv4 Echo Request" protocol=icmpv4:8,any dir=in action=allow
然后重新:
ping 192.168.1.2
八、Windows → CentOS
Windows:
ping 192.168.1.200
应该返回:
csharp
Reply from 192.168.1.200
如果 CentOS 防火墙阻止,可以检查:
css
firewall-cmd --state
九、另一台实体电脑 → CentOS
假设另一台电脑连接同一个 Wi-Fi:
192.168.1.100
执行:
ping 192.168.1.200
如果成功,说明:
arduino
实体电脑
↓
Wi-Fi
↓
VMware Bridge
↓
CentOS
完全正常。
十、CentOS → 另一台实体电脑
CentOS:
ping 192.168.1.100
如果实体电脑 Windows 防火墙允许 Ping,则应该成功。
十一、实际访问服务
假设 CentOS 上运行 Spring Boot:
yaml
8080
另一台电脑直接访问:
arduino
http://192.168.1.200:8080
CentOS 放行:
css
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
检查服务监听:
perl
ss -lntp | grep 8080
应该看到:
makefile
0.0.0.0:8080
而不要是:
makefile
127.0.0.1:8080
Spring Boot 可以配置:
ini
server.address=0.0.0.0
server.port=8080
十二、如果同 Wi-Fi 设备仍然不能互访
检查路由器有没有开启:
css
AP Isolation
Client Isolation
无线隔离
客户端隔离
终端隔离
访客网络隔离
如果开启,需要关闭。
尤其不要让设备连接:
Guest Wi-Fi / 访客网络
很多访客网络默认禁止设备之间互访。
最终推荐配置
css
Wi-Fi 路由器
192.168.1.1
│
┌────────────────┼────────────────┐
│ │ │
Windows 宿主机 实体电脑 B 其他设备
192.168.1.2 192.168.1.100
│
│ Wi-Fi物理网卡
│
VMware
│
VMnet0
Bridged
│
CentOS 7.9
192.168.1.200
最终应该实现:
Windows → CentOS ✅
CentOS → Windows ✅
实体电脑 → CentOS ✅
CentOS → 实体电脑 ✅
Windows → 实体电脑 ✅
实体电脑 → Windows ✅
最核心的 5 个配置
markdown
1. VMware 使用 VMnet0 Bridged
2. VMnet0 明确桥接到真实 Wi-Fi 网卡
3. Windows Wi-Fi 勾选 VMware Bridge Protocol
4. CentOS 使用和 Wi-Fi 相同网段的静态 IP
5. CentOS Gateway 必须是真实路由器地址
按你现在的环境,最终 CentOS 推荐就是:
ini
IPADDR=192.168.1.200
PREFIX=24
GATEWAY=192.168.1.1
DNS1=192.168.1.1
DNS2=8.8.8.8
这套配置最适合你现在这种 VMware CentOS 作为局域网服务器,让同 Wi-Fi 的其他开发电脑直接访问 MySQL、Redis、Spring Boot、XXL-JOB 等服务 的场景。