通过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
相关推荐
menge23331 小时前
Linux DNS域名解析服务器练习
linux·运维·服务器
wsad05321 小时前
CentOS 7 更换腾讯云 yum 源及 EPEL 源
linux·centos·腾讯云
wdfk_prog1 小时前
[Linux]学习笔记系列 -- [kernel]kallsyms
linux·笔记·学习
emiya_saber2 小时前
Linux 进程调度管理
linux·运维·服务器
不脱发的程序猿2 小时前
嵌入式Linux:线程同步(读写锁)
linux·嵌入式
yangzhi_emo2 小时前
配置dns主从服务
linux·运维·服务器
AimerDaniil2 小时前
windows 根据端口号关闭进程脚本
windows
SongYuLong的博客4 小时前
Linux开源代码汇总
linux·运维·服务器
JiMoKuangXiangQu4 小时前
Linux 内存管理 (5):buddy 内存分配简要流程
linux·内存管理·buddy 分配器
铭哥的编程日记4 小时前
【Linux网络】应用层协议HTTP
linux·运维·http