一种跳板机实践
仅供某学院同学放假回家使用集群参考,对产生的一切安全风险概不负责。
Tailscale
在跳板机和主设备安装 tailscale 并登录。所有登录同一个 tailnet 的设备将被组成一个虚拟局域网。tailscale 在连接时会优先尝试直连或打洞,如果不通会通过公网中继建立连接。通过 tailscale 进行点对点 ssh 连接是端到端加密的,非常安全,没有公网暴露风险。
获取跳板机的 Tailscale IP
从学院提供的控制台或说明里找到跳板机的 Tailscale IP,形如 100.x.x.x。
测试连接
在终端里测试:
1 | |
如果能连上,说明 Tailnet 和 SSH 都没问题。
使用 SSH SOCKS5 代理 + 浏览器插件(最精准,不影响网速)
这是最“无缝”且副作用最小的方案。你可以在浏览器里指定:“只有访问这个管理页面时,才走学院的跳板机通道,访问 B 站、百度依然走家里宽带。”
1) 建立 SOCKS5 隧道
在你家里的终端(Windows PowerShell 或 Mac/Linux Terminal)运行:
1 | |
建议配合 autossh 使用,或者每次用之前连一下。
注意,如果跳板机是 windows,默认是没有 ssh 连入的(学院办公机)。
只需要在设置中进入“系统->可选功能->查看或编辑可选功能->查看可用功能“,添加“OpenSSH 客户端“。然后右键单击控制栏的 windows logo,选择“终端管理员“,输入net start sshd和sc config sshd start=auto即可打开 windows 的 ssh 接入服务。账号密码同系统登录的账号密码。
2) 配置浏览器 (SwitchyOmega)
Chrome 或 Edge 浏览器安装插件 SwitchyOmega(非常推荐)。
新建一个情景模式,叫 schoolProxy:
- 代理协议:SOCKS5
- 地址:127.0.0.1
- 端口:1080
然后点击左侧 自动切换 (Auto Switch),添加一条规则:
- 条件类型:域名通配符
- 条件设置:
*.sensecore.cn和*.sensecoreapi.cn - 情景模式:选择 schoolPROXY
记得点击左下角的 应用选项。
当然你可以直接直接修改默认的 proxy 设置。如下图所示。总之平时默认档位放在系统代理就行(这个插件也可以让浏览器不走系统代理,单独设置代理方式和端口)。


3) 效果
当你打开管理页面时,插件检测到域名匹配,自动把流量扔进 SSH 隧道,从学院跳板机出去,服务器看到的是学院 IP,放行。
当你打开其他网页,流量直连,互不干扰。
另外,集群的 eip 本身似乎是没有 ip 限制的,所以这里就不进行额外处理了。如果有限制的话可以在 ssh config 里进行 jumphost 配置。
其他方案
- 远程桌面:向日葵/todesk/rustdesk 等远程桌面方案也可以用,缺点是免费版带宽低,同时只能一个人使用。tailscale share 的方法允许多人同时使用且账号等互不干扰。另外远程桌面需要一直开着显示器,或者使用可用的 hdmi 诱骗器,否则无法工作。
- tailscale + RDP。相对来说 rdp 比较吃带宽,仅限你有自己的国内中继服务器可用。RDP 主要是可以实现无显示器的远程登录。
- 内网穿透(zerotier、自建 vpn)安全性比较低,打洞可能失败,不建议。
后记
这是我认为结合对系统的侵入程度、安全性、便捷性的最佳方法。
使用 tailscale 可以解决跨公网、暴露端口、固定 ip 等问题。而且可以直接开 ssh 隧道,约等于原生体验。配合 SwitchyOmega 可以达到近似原生的透明代理体验。
不过需要注意,tailscale 的公网中继在国外,延迟可能会比较高(视具体情况而定),某学院没有 IPV6 所以很难跨公网直连。如果想要低延迟、高带宽的公网中继服务,可以去阿里云租个小服务器配 tailscale peer relay。
由于 tailscale 透明代理虚拟局域网的特性,也可以拿来给 nas 之类的用,总之功能很多,强烈推荐。