通过tailscale实现一台电脑上vscode通过ssh连接另一台电脑上的VMware Linux 虚拟机

当需要通过一台windows电脑上的vscode来ssh连接另一台电脑上的linux虚拟机进行远程操作,可以通过tailscale来实现。

Linux虚拟机上安装tailscale

由于挂代理下载仍然很慢,而清华镜像源又没有tailscale的软件包,所以可以通过下载 DEB 包安装:

bash 复制代码
wget https://pkgs.tailscale.com/stable/tailscale_1.86.2_amd64.deb

如果下载仍然很慢,可在windows主机浏览器下载后再拖入虚拟机。

接下来手动安装:

bash 复制代码
sudo dpkg -i tailscale_*.deb
sudo apt-get install -f  # 自动修复依赖

启动并登陆:

bash 复制代码
sudo tailscale up

复制弹出来的链接,在windows主机的浏览器中打开,建议登陆谷歌邮箱账号,登陆成功linux虚拟机中即可同步读取到登陆结果。

检查是否安装成功:

bash 复制代码
tailscale version

弹出类似这样的信息安装成功:tailscale version: 1.86.2

另一台Windows电脑上安装tailscale

登陆同样的谷歌邮箱后在下载页直接下载官方客户端:Download | Tailscale

建立ssh连接

在linux虚拟机终端输入下面命令查看ip地址:

bash 复制代码
tailscale ip

通常是 100.x.y.z 格式的 IPv4 地址,比如是100.87.234.55。

确保另一台电脑上的 Windows 也安装并登录了 Tailscale​(使用同一个账号)。

打开windows电脑的vscode,点击左下角的蓝色图标打开远程窗口,点击连接到主机,选择添加新的ssh主机,输入这个格式的命令:ssh 《linux虚拟机的用户名》@<你的-Tailscale-IP>,比如:

bash 复制代码
ssh ljy@100.87.234.55

配置好后选择连接,输入虚拟机的密码即可成功连接。

通过固定昵称和MagicDNS 域名进行连接

由于IP可能会发生变化,所以可以通过固定的昵称和MagicDNS 域名进行连接会更稳定。

可以在linux虚拟机的终端中输入

bash 复制代码
tailscale status --json | grep DNSName

或者在安装了tailscale的这台windows电脑的powershell中输入

bash 复制代码
tailscale status --json | findstr "DNSName"

都可以看到相同的结果,比如

"DNSName": "ljy.tailb55a8b.ts.net.",

"DNSName": "ljy-virtual-machine.tailb55a8b.ts.net.",

所以直接在windows电脑的vscode 添加新的ssh主机 处输入以下命令:

bash 复制代码
ssh ljy@ljy-virtual-machine.tailb55a8b.ts.net

按照同样的步骤连接并输入密码即可成功连接。

永久生效配置

如果重新启动虚拟机或者安装了tailscale的windows电脑,那么tailscale需要重新开启一下才能连接。即虚拟机需要通过 sudo tailscale up 来重新登陆认证,windows电脑需要打开tailscale客户端进行连接。

也可以配置一下让虚拟机启动后自动生效:

先去tailscale的管理后台:Keys - Tailscale

点击 ​​"Generate auth key"​

选择 ​​"Reusable"​

点击 ​​"Generate key"​生成密钥。

回到machines选项卡下:Machines - Tailscale

点击虚拟机的 ​​"Disable key expiry"(由于我点过了所以变成了Enable),设置为永不过期。

配置自动登录:

bash 复制代码
# 启用 tailscale 系统服务开机自启
sudo systemctl enable tailscaled

# 使用永久密钥登录(替换你的密钥)
sudo tailscale up --auth-key=tskey-auth-xxxxxxxxx

# 检查服务状态(应显示 "active (running)")
sudo systemctl status tailscaled
相关推荐
tangwangbi5 小时前
Linux 系统配置文件:/etc/profile、~/.bashrc 和 ~/.bash_profile 三者之间的区别与作用
linux·运维·bash
Akiyama_Mio-Kon5 小时前
2026 最新:Dify 本地 Docker 部署完整教程(Windows + Git Bash)
windows·git·docker
蜀道山老天师5 小时前
Shell Bash变量与运算符(含条件测试与流程控制)
linux·运维·bash
孙小l懒_keep_update5 小时前
【VSCODE中的Codex 打不开(页面空白,一直 Loading)】
vscode
Mr.朱鹏5 小时前
Linux 服务器 LVM 根分区在线动态扩容
linux·服务器·数据库
mengge.cloud5 小时前
存储技术基础小白教程
linux·运维·服务器·wpf·存储
霸道流氓气质6 小时前
Spring AI 输出解析器进阶
人工智能·windows·spring
tang777896 小时前
反爬虫场景下代理IP池的动态扩容与失效IP自动清理方案实现
linux·服务器·网络·爬虫代理·住宅代理ip
新时代牛马7 小时前
Linux 系统调用与IPC 完整篇:从syscall 入口、VDSO 到pipe/shm/futex 选型
linux·运维·服务器
黄一一9112438 小时前
跨平台视频图片压缩互转!离线视频压缩工具!Github开源轻松无损压缩视频!Win/Mac/Linux三端通用开源工具
windows·macos·音视频·开源软件