有时候人在国外,但需要访问一些仅允许中国大陆 IP 访问的网站。最直接的办法是在国内服务器上搭建代理服务,例如 SOCKS5、WireGuard 或 OpenVPN。不过对于临时使用或者个人用途,其实有一个更简单的方法:利用 SSH 自带的动态端口转发功能(Dynamic Port Forwarding)创建一个本地 SOCKS5 代理。
这个方案不需要安装额外软件,不需要 Docker,也不需要在服务器上开放新的端口。如果服务器已经可以通过 SSH 登录,那么几乎可以立即使用。
本文仅用于介绍 SSH 动态端口转发的技术原理及合法用途。请仅在拥有服务器控制权或获得授权的情况下使用本文方法,并遵守当地法律法规及相关服务条款。因不当使用本文内容造成的任何后果,由使用者自行承担。
假设你有一台位于国内的服务器:
你的电脑(海外)
│
▼
SSH 加密隧道
│
▼
国内服务器
│
▼
目标网站
浏览器的流量先发送到本地 SOCKS5 代理,然后通过 SSH 隧道转发到国内服务器,再由国内服务器访问目标网站。
因此,目标网站看到的来源 IP 将是国内服务器的公网 IP,而不是你当前所在国家或地区的 IP。
在本地终端执行:
ssh -D 1080 username@your_server_ip
例如:
ssh -D 1080 [email protected]
参数说明:
D 1080:在本地监听 1080 端口,并创建一个 SOCKS5 代理。username:服务器用户名。your_server_ip:服务器公网 IP。连接成功后,不要关闭终端窗口。
此时本地已经有一个 SOCKS5 代理: