一、整体方案说明
通过给 Ubuntu 虚拟机配置双网卡,实现:
- 网卡1(NAT模式):负责虚拟机正常上网,不受外部网络环境影响
- 网卡2(仅主机Host-Only模式):给 Windows 主机提供一个永久固定IP,切换公司/家里/热点都不影响 SSH/MySQL 访问
二、VMware 虚拟机硬件配置(关键步骤)
1. 关闭虚拟机,添加第二块网卡
- 选中你的 Ubuntu 虚拟机 → 点击「编辑虚拟机设置」
- 点击「添加」→ 选择「网络适配器」→ 下一步
- 第一块网卡(默认):选择NAT模式,用于上网
- 第二块网卡(新增):选择仅主机模式(Host-Only),用于固定IP
- 确认设置,启动 Ubuntu 虚拟机
2. 确认 VMware 虚拟网络信息
打开 VMware → 编辑 → 虚拟网络编辑器,查看:
- VMnet8(NAT):子网地址
192.168.110.0/24(你的虚拟机上网网段) - VMnet1(Host-Only):子网地址
192.168.69.0/24(固定IP网段,后续用这个配置)
三、Ubuntu 端配置步骤
步骤1:查看网卡名称,确认双网卡识别
打开 Ubuntu 终端,执行:
ipaddr show你会看到两块网卡:
ens33:NAT网卡(IP 为192.168.110.xxx,负责上网)ens37:Host-Only网卡(当前动态IP,后续改成固定IP)
步骤2:创建 netplan 网络配置文件
sudotee/etc/netplan/01-hostonly-static.yaml<<-'EOF' network: version: 2 renderer: NetworkManager ethernets: ens33: dhcp4: true ens37: dhcp4: no addresses: [192.168.69.100/24] EOFens33:保持dhcp4: true,自动获取NAT网段IP,不影响上网ens37:关闭DHCP,设置固定IP192.168.69.100/24(和VMnet1网段匹配)
步骤3:应用配置并生效
sudochmod600/etc/netplan/*.yamlsudonetplan apply注:若提示
systemd-networkd is not running无需担心,我们已指定renderer: NetworkManager,配置依然会生效
步骤4:验证配置是否成功
- 检查固定IP是否生效:
输出中出现ipaddr show ens37inet 192.168.69.100/24即成功 - 检查上网是否正常:
能收到回复说明NAT网卡上网正常pingwww.baidu.com-c3
四、Windows 端连接配置
1. SSH 连接(PowerShell/CMD 直接用)
sshnpe@192.168.69.100- 用户名:
npe(你的Ubuntu用户名) - 密码:你的Ubuntu登录密码
- 首次连接输入
yes确认即可登录
2. MySQL 远程访问配置(已提前完成,补充说明)
- 登录 MySQL,创建允许远程连接的用户:
CREATEUSER'root'@'%'IDENTIFIEDBY'你的MySQL密码';GRANTALLPRIVILEGESON*.*TO'root'@'%'WITHGRANTOPTION;FLUSHPRIVILEGES; - 修改 MySQL 配置文件,允许外部访问:
找到sudonano/etc/mysql/mysql.conf.d/mysqld.cnfbind-address = 127.0.0.1,改为bind-address = 0.0.0.0 - 重启 MySQL 并放行端口:
sudosystemctl restart mysqlsudoufw allow3306 - Windows 端连接信息:
- 主机:
192.168.69.100 - 端口:
3306 - 用户名:
root - 密码:你设置的MySQL密码
- 主机:
五、最终核心信息(记住这几个即可)
| 用途 | 信息 |
|---|---|
| 永久固定IP | 192.168.69.100 |
| SSH连接命令 | ssh npe@192.168.69.100 |
| MySQL连接主机 | 192.168.69.100:3306 |
| 网卡说明 | ens33上网、ens37固定IP访问 |
六、常见问题排查
- Windows 无法 ping 通
192.168.69.100- 检查 VMware 虚拟网络编辑器中,VMnet1 是否已勾选「将主机虚拟适配器连接到此网络」
- 检查 Ubuntu 防火墙:
sudo ufw allow 22放行SSH端口
- SSH 连接提示「拒绝连接」
- 确认 Ubuntu 已安装并启动SSH服务:
sudo systemctl status ssh,显示active (running)为正常
- 确认 Ubuntu 已安装并启动SSH服务:
- MySQL 连接失败
- 确认 MySQL 配置文件中
bind-address已改为0.0.0.0 - 确认用户权限配置正确,且3306端口已放行
- 确认 MySQL 配置文件中