使用 VSCode Remote-SSH 连接 VMware NAT 模式虚拟机
在日常开发中,我们常将代码运行环境部署在 VMware 虚拟机中,但在虚拟环境中编程容易遭遇卡顿等问题,所以我们希望在宿主机的 VSCode 里直接编辑、调试代码。本文介绍如何通过 Remote-SSH 插件 + NAT 端口转发,实现宿主机与虚拟机的无缝连接
目标:
-
宿主机 VSCode 直接访问虚拟机内文件,实现远程开发
-
理解 NAT 模式与桥接模式的区别,按需选择网络模式
-
解决 NAT 模式下宿主机无法直接访问虚拟机的核心问题
前置准备
-
VMware 虚拟机:已安装 Linux 系统(如 Ubuntu 22.04),网络模式可切换为 NAT 或桥接
-
宿主机:Windows/macOS/Linux,已安装 VSCode
-
虚拟机 SSH 服务:确保 OpenSSH Server 已安装并运行
-
基础网络知识:了解 IP 地址、端口、网段的基本概念(无需深入,后文会补充)
虚拟机端配置
使用 NAT 模式,虚拟机端需要确保 SSH 服务正常运行,这是 SSH 连接的基础。
安装并启动 SSH 服务
在虚拟机终端执行以下命令:
bash
# 更新软件源
sudo apt update
# 安装 OpenSSH 服务端
sudo apt install openssh-server -y
# 启动并设置开机自启
sudo systemctl enable --now ssh
# 验证服务状态(确保为 active (running))
sudo systemctl status ssh
确认防火墙状态
Ubuntu 默认防火墙 ufw 通常为关闭状态,若已启用需放行 22 端口(SSH 默认端口):
bash
# 查看防火墙状态
sudo ufw status
# 若为 active,放行 SSH 端口
sudo ufw allow 22
sudo ufw reload
获取虚拟机 IP
执行以下命令获取虚拟机当前 IP,后续连接需用到:
bash
# 方法 1:查看所有网络接口的 IP(推荐)
ip addr show | grep inet
# 方法 2:直接输出已分配的 IP(更简洁)
hostname -I
说明:桥接模式下,IP 通常为 192.168.1.x(与宿主机同网段);NAT 模式下,IP 通常为 192.168.xxx.x(如 192.168.182.128)。
由于虚拟机处于私有网段,宿主机无法直接访问,需通过 端口转发实现连接------本质是让 NAT 网关"转发流量",将宿主机的某个端口映射到虚拟机的 22 端口(SSH 端口)。
VMware 端口转发配置
-
关闭所有运行中的虚拟机(确保配置生效);
-
在 VMware 主界面,点击顶部菜单编辑 → 虚拟网络编辑器;
-
若弹出 UAC 权限提示,点击 更改设置 获取管理员权限;
-
在列表中选中 VMnet8(默认 NAT 模式网络,对应虚拟机的私有网段);
-
点击右侧 NAT 设置按钮;
-
在弹出的窗口中,找到 端口转发 区域,点击 添加;
-
填写转发规则(核心配置):
-
主机端口 :
2222(自定义,需确保未被宿主机其他程序占用,如 2223、8022 均可); -
类型 :
SSH(或TCP,SSH 基于 TCP 协议); -
虚拟机 IP 地址:步骤 4.3 获取的 NAT 模式 IP(如 192.168.182.128);
-
虚拟机端口 :
22(SSH 服务默认端口,不可修改,除非修改了 SSH 配置);
-
-
点击 确定 保存所有设置,重启虚拟机。
宿主机 VSCode 配置
安装 Remote-SSH 插件
-
打开 VSCode;
-
点击左侧扩展图标(快捷键
Ctrl+Shift+X); -
搜索 Remote - SSH(微软官方插件,图标为蓝色电脑+SSH),点击安装,安装完成后重启 VSCode。
配置 SSH 连接
-
按
Ctrl+Shift+P打开命令面板,输入Remote-SSH: Connect to Host,回车; -
选择 Add New SSH Host(添加新的 SSH 主机);
-
输入连接命令(替换为你的虚拟机用户名和配置的主机端口):
ssh 用户名@127.0.0.1 -p 2222示例:ssh oxythecrack@127.0.0.1 -p 2222(127.0.0.1代表宿主机本身); -
选择保存配置文件的路径(默认路径即可,Windows 为
C:\Users\你的用户名\.ssh\config,macOS/Linux 为~/.ssh/config),点击确定。
连接虚拟机
-
再次按
Ctrl+Shift+P,输入Remote-SSH: Connect to Host,回车; -
在弹出的列表中,选择刚添加的
127.0.0.1:2222配置; -
弹出系统选择窗口,选择 Linux(虚拟机系统类型);
-
输入虚拟机的登录密码(输入时不显示,输完回车即可);
-
连接成功后,VSCode 左下角状态栏将显示
SSH: 127.0.0.1,此时已进入远程开发环境。