反向 SSH + SOCKS5 内网穿透配置教程
技术背景
用最生活化的比喻,把这套系统想象成你在拉一根超长的网线:
1. 反向 SSH = '一根私有网线'
- 作用:你在家里的路由器(OpenWrt)和公网服务器(阿里云)之间,硬牵了一根'虚拟网线'。
- 特点:这根线是从家里主动抛出去的,所以无视宽带没有公网 IP 的问题。
2. SOCKS5 = '万能转换插头'
- 作用:光有网线不行,你的浏览器、远程桌面、游戏不懂怎么直接用这根线。
- 关系:SOCKS5 就是把这根网线的头,变成了一个标准的、通用的接口(即本地的 1080 端口)。谁插上谁就能通回家里。
3. Proxifier = '强行插入'
- 作用:有些软件(如远程桌面)很笨,不知道这儿有个插头。
- 关系:Proxifier 负责把这些软件强行按在 SOCKS5 这个插头上,逼它们走这根线回家。
一句话总结:
你用反向 SSH 铺了一条回家的路,用 SOCKS5 规定了路上能跑什么车,用 Proxifier 把你电脑上的数据装上车,运回家。
正式开始
目标:
在外网通过 Proxifier 自动分流,实现直接访问家里 OpenWrt 下的所有设备(如 192.168.66.x 网段),支持浏览器、远程桌面 (RDP)、Ping 等所有协议。
环境信息:
- 公网 VPS: 47.94.xxx.xx (阿里云 Ubuntu)
- 内网 OpenWrt: 192.168.66.1
- 隧道跳板端口: 20022 (公网 VPS 上用于转发的端口)
- 本地 SOCKS 端口: 1080 (本地电脑上开启的入口)
第一阶段:服务端与路由端准备 (基础建设)
在开始本地电脑配置前,必须确保'路'是通的。
1. 阿里云 VPS:开放安全组端口
你需要允许外部流量访问 20022 端口,否则反向 SSH 无法建立或无法连接。
- 登录阿里云控制台 -> ECS 实例 -> 安全组。
- 进入配置规则 -> 入方向 -> 手动添加。
- 填写信息:
- 端口范围: 20022/20022
- 授权对象: 0.0.0.0/0 (允许所有 IP)
- 协议: TCP
- 保存。
2. 补充 Autossh 开机自启 (OpenWrt)
为了保证 OpenWrt 的 22 端口重启后隧道自动恢复,我们将命令加入启动脚本。
在对应位置插入以下内容开放端口:
-R 20022:localhost:22 \
在 OpenWrt 上编辑 /etc/rc.local:
vi /etc/rc.local
- 保存退出(在 vi 中按 Esc,输入 :wq 回车)。
手动测试运行一次(或者直接重启路由器测试):执行 /etc/rc.local 看有没有报错。需要先赋予权限。
+x /etc/rc.local


