通过 SSH 隧道转发流量
INFO
在外网访问内网资源时,我个人更青睐于使用 WireGuard,但是 WireGuard 的配置比较抽象,没有提前部署 wg-easy 等 webui 的情况下十分难用。因此最好能有一个简单方便的 Plan B。
有关 WireGuard 和 wg-easy 的部署,参见:使用 wg-easy 更简单的在群晖(Linux)上搭建 WireGuard
SSH 支持动态转发的功能,基于这点,我们很容易就能实现基于 SSH 隧道转发流量。SSH 的优点在于它几乎是所有操作系统(Windows、Linux、MacOS)默认携带的工具,因此十分适合用来作为一个简单易用的 Plan B。
具体操作,只需要在 SSH 命令中添加一个 -D <Local Port>
参数即可,即:
bash
ssh -D <Local Port> -p <Remote SSH Port> user@remote_domain/IP
INFO
<Remote SSH Port>
是远程主机的 SSH 端口,默认是22
;<Local Port>
是指定的一个本地端口,数据将从此端口转发到远程主机。
此时在本地的 <Local Port>
上会打开一个 SOCKS 代理,即:127.0.0.1:<Local Port>
。我们可以将这一 SOCKS 代理填入所需代理软件的「代理设置」中,也可以结合 Clash、V2Ray 等软件实现 TUN 或分流。
WARNING
当你运行上方命令后,会打开一个 SSH 会话,在使用 SSH 转发流量时不要关闭终端,否则隧道会被关闭。