通过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
相关推荐
乱蜂朝王5 小时前
Ubuntu 20.04安装CUDA 11.8
linux·运维·ubuntu
梁洪飞6 小时前
clk学习
linux·arm开发·嵌入式硬件·arm
Lw老王要学习6 小时前
Windows基础篇第一章_01VMware虚拟机安装window10
运维·windows·虚拟机
~光~~6 小时前
【嵌入式linux驱动——点亮led】基于鲁班猫4 rk3588s
linux·点灯·嵌入式linux驱动
yuanmenghao7 小时前
车载Linux 系统问题定位方法论与实战系列 - 车载 Linux 平台问题定位规范
linux·运维·服务器·网络·c++
a不是橘子8 小时前
03在Ubuntu中验证PV操作
笔记·ubuntu·操作系统·虚拟机·os·pv操作
qq_589568108 小时前
centos6.8镜像源yum install不成功,无法通过镜像源下载的解决方式
linux·运维·centos
我是苏苏8 小时前
C#高级:使用ConcurrentQueue做一个简易进程内通信的消息队列
java·windows·c#
weixin_516023078 小时前
linux下fcitx5拼音的安装
linux·运维·服务器
hunter14509 小时前
Linux 进程与计划任务
linux·运维·服务器