基于 tailscale 实现内网穿透,并通过 vscode ssh 链接主机

Tailscale 是一个可以实现组网和内网穿透的工具,实现设备之间的 P2P 链接。它的使用很简单,就是在不同设备上下载 talscale 软件并登陆自己的账号,同一个账号下设备可以互相访问。
优势在于,建立连接成功后,P2P 直连带宽会比较大,相比于一些基于转发的内网穿透服务商限制的几 Mbps 的速度来说;而缺点在于每个设备都需要下载软件并登陆自己的账号,因此应用场景更受限于个人访问自己的设备,或少数可信的人共享设备。

Tailscale 配置过程

  1. 注册账号
  2. 设备1下载(windows)
  3. 设备2下载 (Linux)
    参考:https://tailscale.com/download/linux

每个设备软件下载完成后,需要登录账号。windows 下直接点开软件,Linux 为命令行工具,需要 sudo tailscale up 打开。

最后:更详细的 Tailscale 安装过程可以参考 https://www.bilibili.com/video/BV1dX4y147KH/ 等。

配置 SSH

Tailscale 默认支持使用其自带的 SSH,因为设备之间的验证已经通过账号登录实现了,所以不需要通过 openssh 等第三方 SSH 了。

host: Linux

首次建立连接前,服务器端需要先运行 sudo tailscale up --ssh (后续可以通过 tailscale up --ssh=false 禁用)

启用 ssh 后,可以通过网页进入:

注意:启用后,其他非 Tailscale SSH 链接会断开,因为它已经占用了 22 端口,后续大概可以通过端口转发实现与 openssh 的共存。

client: windows

客户端 ssh server-name 进行连接,其中 server-name 是网页端 console 里面设置的设备名称。
客户端 ssh user@server-name 指定用户进行登录。

注意这里有个坑,ssh server-name 尝试登陆时,没有指定用户名,则会使用当前客户端登陆的用户名。但是这个用户名需要存在于主机 host 才可以正常建立连接。

如果没有意外的话,就可以成功建立 ssh 链接了。

vscode

远程资源管理器链接即可,vscode 会自动在对应的 ~/.vscode-server/ 下安装相应组件。如果遇到错误,在控制台输出查看调整。

这里我拿 streamlit 做实验,需要手动在“端口”设置端口转发,才可以在当前电脑查看。

posted @ 2023-09-29 22:27  BuckyI  阅读(1538)  评论(0编辑  收藏  举报