VPN 挂了怎么办?利用 SSH 隧道穿透内网远程访问群晖 NAS
前言
假期在家,学校的 VPN 突然罢工,导致无法访问我在实验室的 NAS
与此同时,师兄为了保证计算服务器的正常使用,使用VPS运行wireguard搭建了一个VPN作为临时顶替,因此我可以连接到内网里的docker虚拟机,从而以此为跳板连接同在学校内网的NAS
本文将介绍如何利用 SSH 隧道(SSH Tunneling) ,在不依赖极不可靠的 CUMTB VPN 的情况下,顺畅地打开内网 NAS 的 web 管理页面。
场景描述
- 目标设备:群晖 NAS(内网地址:
10.25.116.249,Web 端口:5000) - 跳板服务器:Ubuntu Server(已通过虚拟局域网连接,可远程 SSH,内网地址:
10.66.0.203,SSH 端口:25500) - 当前困境:VPN 故障,本地电脑无法直连
10.25.x.x网段,但跳板服务器可以访问该网段。
单个端口转发
1 | ssh -p 25500 -L 5000:10.25.116.249:5000 root@10.66.0.203 |
参数拆解:
-p 25500:指定连接跳板机的 SSH 端口。-L:表示本地端口转发。5000:本地端口。你可以自定义,只要不被占用即可。10.25.116.249:5000:目标地址与端口。即 NAS 在内网中的实际 IP 和 Web 管理端口。root@10.66.0.203:跳板机的登录账号与地址。
运行上述命令并成功登录后,不要关闭该终端窗口。打开浏览器,在地址栏输入:
http://127.0.0.1:5000
此时,你会发现群晖 NAS 的登录界面奇迹般地出现了!所有的流量都会经过 SSH 加密隧道,由 Ubuntu 服务器中转给 NAS。
SOCKS5 动态转发(全局代理)
如果你不仅想访问 NAS 的 Web 页面,还想访问内网其他端口的服务器,频繁设置本地转发会很麻烦。这时可以使用 动态端口转发。
1. 建立隧道
1 | ssh -p 25500 -D 1080 root@10.66.0.203 |
-D 1080 会在本地建立一个 SOCKS5 代理服务器。
2. 浏览器配置
配合浏览器插件 SwitchyOmega:
- 新建一个情景模式,代理协议选择
SOCKS5。 - 代理服务器填
127.0.0.1,端口填1080。 - 启用该模式后,你可以直接在浏览器输入内网原始 IP:
http://10.25.116.249:5000即可访问。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Triority's blog!
评论