通过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
相关推荐
字节逆旅20 小时前
ubuntu应用深度守护
ubuntu
Johny_Zhao2 天前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
阿白的白日梦2 天前
winget基础管理---更新/修改源为国内源
windows
chlk1233 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑3 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件3 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
深紫色的三北六号4 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash4 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI4 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行5 天前
Linux和window共享文件夹
linux