VMware Ubuntu 固定IP + 上网 + 远程访问 完整教程

一、整体方案说明

通过给 Ubuntu 虚拟机配置双网卡,实现:

  • 网卡1(NAT模式):负责虚拟机正常上网,不受外部网络环境影响
  • 网卡2(仅主机Host-Only模式):给 Windows 主机提供一个永久固定IP,切换公司/家里/热点都不影响 SSH/MySQL 访问

二、VMware 虚拟机硬件配置(关键步骤)

1. 关闭虚拟机,添加第二块网卡

  1. 选中你的 Ubuntu 虚拟机 → 点击「编辑虚拟机设置」
  2. 点击「添加」→ 选择「网络适配器」→ 下一步
  3. 第一块网卡(默认):选择 NAT模式,用于上网
  4. 第二块网卡(新增):选择 仅主机模式(Host-Only),用于固定IP
  5. 确认设置,启动 Ubuntu 虚拟机

2. 确认 VMware 虚拟网络信息

打开 VMware → 编辑 → 虚拟网络编辑器,查看:

  • VMnet8(NAT):子网地址 192.168.110.0/24(你的虚拟机上网网段)
  • VMnet1(Host-Only):子网地址 192.168.69.0/24(固定IP网段,后续用这个配置)

三、Ubuntu 端配置步骤

步骤1:查看网卡名称,确认双网卡识别

打开 Ubuntu 终端,执行:

bash 复制代码
ip addr show

你会看到两块网卡:

  • ens33:NAT网卡(IP 为 192.168.110.xxx,负责上网)
  • ens37:Host-Only网卡(当前动态IP,后续改成固定IP)

步骤2:创建 netplan 网络配置文件

bash 复制代码
sudo tee /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]
EOF
  • ens33:保持 dhcp4: true,自动获取NAT网段IP,不影响上网
  • ens37:关闭DHCP,设置固定IP 192.168.69.100/24(和VMnet1网段匹配)

步骤3:应用配置并生效

bash 复制代码
sudo chmod 600 /etc/netplan/*.yaml
sudo netplan apply

注:若提示 systemd-networkd is not running 无需担心,我们已指定 renderer: NetworkManager,配置依然会生效

步骤4:验证配置是否成功

  1. 检查固定IP是否生效:

    bash 复制代码
    ip addr show ens37

    输出中出现 inet 192.168.69.100/24 即成功

  2. 检查上网是否正常:

    bash 复制代码
    ping www.baidu.com -c 3

    能收到回复说明NAT网卡上网正常


四、Windows 端连接配置

1. SSH 连接(PowerShell/CMD 直接用)

bash 复制代码
ssh npe@192.168.69.100
  • 用户名:npe(你的Ubuntu用户名)
  • 密码:你的Ubuntu登录密码
  • 首次连接输入 yes 确认即可登录

2. MySQL 远程访问配置(已提前完成,补充说明)

  1. 登录 MySQL,创建允许远程连接的用户:

    sql 复制代码
    CREATE USER 'root'@'%' IDENTIFIED BY '你的MySQL密码';
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
  2. 修改 MySQL 配置文件,允许外部访问:

    bash 复制代码
    sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

    找到 bind-address = 127.0.0.1,改为 bind-address = 0.0.0.0

  3. 重启 MySQL 并放行端口:

    bash 复制代码
    sudo systemctl restart mysql
    sudo ufw allow 3306
  4. 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访问

六、常见问题排查

  1. Windows 无法 ping 通 192.168.69.100
    • 检查 VMware 虚拟网络编辑器中,VMnet1 是否已勾选「将主机虚拟适配器连接到此网络」
    • 检查 Ubuntu 防火墙:sudo ufw allow 22 放行SSH端口
  2. SSH 连接提示「拒绝连接」
    • 确认 Ubuntu 已安装并启动SSH服务:sudo systemctl status ssh,显示 active (running) 为正常
  3. MySQL 连接失败
    • 确认 MySQL 配置文件中 bind-address 已改为 0.0.0.0
    • 确认用户权限配置正确,且3306端口已放行
相关推荐
小夏子_riotous2 小时前
Docker学习路径——6、简单微服务
linux·运维·服务器·docker·微服务·容器·云计算
剪刀石头布Cheers2 小时前
Ubuntu Hermes安装关键步骤
linux·运维·ubuntu·ai·agent·hermes
雕刻刀2 小时前
pip离线安装
linux·python·pip
JoyCong19982 小时前
告别频繁输入密码!ToDesk自动解锁功能,实现远程办公“无感”连接
大数据·linux·服务器·网络·电脑·远程操作
楼田莉子2 小时前
仿muduo库的高并发服务器——正则表达式与any类介绍及其简单模拟实现
linux·服务器·c++·学习·设计模式
IT摆渡者2 小时前
Linux 巡检脚本BASH
linux·运维·bash
minji...2 小时前
Linux 网络套接字编程(二)从 0 到 1 实现 UDP 回声服务器,recvfrom,sendto
linux·运维·网络·单片机·udp
不败公爵2 小时前
finsh_thread_entry这个线程是自动启动的
java·linux·服务器
实心儿儿2 小时前
Linux —— 基础IO — 文件描述符 + 重定向
linux·运维·服务器