1. 简介
一般的校园网/企业网往往都设置有防火墙,在内网可以访问外网,但在外网却无法访问内网。比如校园的服务器,当我们在校外时,只能通过学校的 VPN 访问校园网。然而,这个 VPN 一来可能不稳定,二来往往只有 Windows 平台有(气抖冷),对于 Linux 用户极其不友好。在朋友的推荐下,我使用了 ZeroTier 这款跨平台的虚拟局域网构建工具,使用它能够进行内网穿透,使得外网也能访问内网~~,妈妈再也不用担心我连不上校网服务器了~~。
2. ZeroTier
2.1 创建虚拟局域网
- 首先去 ZeroTier 官网注册一个帐号;
- 然后创建一个私有网络并记下创建的网络 ID;
- 接着在需要连接到同一个虚拟局域网的设备上安装好 ZeroTier 客户端(不同平台安装方式查看 ZeroTier 官网安装指南);
- 然后在设备上加入第二步创建的网络;
以 Linux 平台为例,在终端执行
sudo zerotier-cli join ssssttttxxxxyyyy
,其中ssssttttxxxxyyyy
是你的网络 ID。 - 最后回到 ZeroTier 个人帐号 my.zerotier.com 中查看已加入的设备,并勾选授权即可。
这样加入到虚拟局域网的设备之间即可使用 SSH 等直接登录,再也不需要 VPN 啦~
2.2 SSH 跳板
如果你有多个校园服务器帐号,且它们之间是可以相互访问的。此时如果把每个服务器都加入到虚拟局域网,则会有些麻烦。更好的做法是使用 SSH 的跳板功能,将其中一台校园服务器当做跳板,通过它来访问其它校园服务器:
代码语言:javascript复制# 跳板机名称,可以随便取
Host JumpMachine
# 跳板机 IP,用 ZeroTier 分配给跳板机的 IP
HostName 1.1.1.1
# 登入的用户名
User username
# 目标机名称,可以随便取
Host TargetMachine
# 目标机 IP,用真实的校园服务器 IP
HostName 1.1.1.1
# 登入的用户名,
User username
# 跳转代码,JumpMachine 为前面跳板机的名称
ProxyCommand ssh -W %h:%p JumpMachine
设置成功后,就可以登录到 TargetMachine
服务器啦~不过麻烦的是要输入两次密码,可以将当设备的 SSH 公有证书上传到 JumpMachine
,这样可以减少一次密码输入的次数嗷。
附录
- ZeroTier - Docs