欢迎光临
我们一直在努力

【反向 SSH + SOCKS5 内网穿透终极配置教程】

反向 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 (本地电脑上开启的入口)

第一阶段:服务端与路由端准备 (基础建设)

在开始本地电脑配置前,必须确保“路”是通的。

这一部分请参考上一个教程:反向SSH配置教程-内网穿透&防火墙克星

下面只对关键修改部分进行说明

1. 阿里云 VPS:开放安全组端口

你需要允许外部流量访问 20022 端口,否则反向 SSH 无法建立或无法连接。 (或者与上个教程一样,开发所有端口)

  • 登录 阿里云控制台 -> ECS 实例 -> 安全组。
  • 进入 配置规则 -> 入方向 -> 手动添加。
  • 填写信息:
    • 端口范围: 20022/20022
    • 授权对象: 0.0.0.0/0 (允许所有 IP)
    • 协议: TCP
  • 保存。
  • 2. 补充Autossh开机自启 (OpenWrt)

    为了保证 OpenWrt 的22端口重启后隧道自动恢复,我们将命令加入启动脚本。

  • 在 OpenWrt 上编辑 /etc/rc.local:

    vi /etc/rc.local

  • 在对应位置插入以下内容开放端口:

    -R 20022:localhost:22 \\

  • 在这里插入图片描述

  • 保存退出(在 vi 中按 Esc,输入 :wq 回车)。

  • 手动测试运行一次(或者直接重启路由器测试):

    执行 /etc/rc.local 看有没有报错。需要先赋予权限。

    chmod +x /etc/rc.local

    先执行多次 killall autossh,直到提示 no process found:

    killall autossh
    killall autossh

    然后再执行:

    /etc/rc.local

  • 3. OpenWrt:开启 TCP 转发权限

    默认情况下 OpenWrt 允许 SSH 登录,但禁止转发流量(会导致 method SSH_SOCKS5_NOAUTH not found 错误)。

  • SSH 登录 OpenWrt。

  • 编辑配置:vi /etc/config/dropbear

  • 确保包含以下两行(改为 ‘on’):

    option AllowTcpForwarding 'on'
    option GatewayPorts 'on'

    同时把option Interface 'lan'注释,不启用:

    # option Interface 'lan'

    在这里插入图片描述

  • 重启服务:/etc/init.d/dropbear restart

  • 确保 Autossh 已经在后台运行(指向 VPS 的 20022 端口)。


  • 第二阶段:本地电脑建立 SOCKS5 隧道 (造桥)

    这一步是在你的笔记本/办公电脑上操作,目的是打通 本地 1080 <-> 家里 OpenWrt 的通道。

    方式 A:Mac 终端 / Windows CMD 命令行 (推荐mac用)

    请在终端输入以下命令:

    # 语法:ssh -p [VPS跳板端口] -D [本地代理端口] root@[VPS公网IP]
    # 建议加 -v 查看调试日志,确认连接建立
    ssh -v -p 20022 -D 1080 root@47.94.xxx.xx

    或者无日志输出命令(二选一):

    ssh -p 20022 -D 1080 root@47.94.xxx.xx`

    • 输入 OpenWrt 的密码。
    • 成功标志:看到 OpenWrt 的欢迎界面,或者日志停止滚动且无报错。
    • 注意:不要关闭这个黑色窗口,最小化即可。

    方式 B:Bitvise SSH Client (Windows 推荐,更稳定)

    命令行窗口容易关掉,Windows 建议用 Bitvise 软件。

  • Login 页:
    • Host: 47.94.xxx.xx, Port: 20022
    • Username: root, Password: [OpenWrt密码]
  • Services 页 (核心设置):
    • 找到 SOCKS/HTTP Proxy Forwarding。
    • 勾选 Enabled。
    • Listen Interface: 127.0.0.1
    • Listen Port: 1080
  • 点击 Log in,连接成功后最小化。

  • 第三阶段:配置 Proxifier (分流与接管)

    这一步是配置“交警”,指挥流量走隧道。

    1. 设置代理服务器 (Proxy Server)

    告诉 Proxifier 隧道入口在哪。

  • 打开 Proxifier,点击菜单 Profile -> Proxy Servers。
  • 点击 Add。
  • 填写信息:
    • Address: 127.0.0.1
    • Port: 1080
    • Protocol: 勾选 SOCKS Version 5
  • ⚠️ 极其关键的设置:
    • Authentication (认证):必须 取消勾选 (Uncheck)!
    • 原因:SSH 的 -D 模式不支持 SOCKS 认证,勾选会导致“method not found”报错。
  • 点击 OK。
    • 提示“是否设为默认”? -> 选 NO (否)。
  • 2. 设置防死循环规则 (安全保障)

    防止 Proxifier 把 SSH 隧道本身的流量也塞进隧道,导致“贪吃蛇咬尾巴”连接断开。

  • 点击菜单 Profile -> Proxification Rules。
  • 点击 Add 添加规则:
    • Name: VPS Direct
    • Target hosts: 47.94.xxx.xx (你的 VPS IP)
    • Action: Direct (直连)
  • 3. 设置内网分流规则 (核心业务)

    告诉 Proxifier 只有去家里的流量才走代理。

  • 继续点击 Add 添加规则:
    • Name: SSH-R
    • Target hosts: 192.168.66.* (使用通配符匹配全网段)
    • Action: 选择刚才添加的 Proxy SOCKS5 127.0.0.1
  • 点击 OK 保存。
  • 重要:将这条规则拖动到 上一条规则的下方。
  • 在这里插入图片描述


    第四阶段:实战验证

    保持 SSH 终端开启(或 Bitvise 连接中),保持 Proxifier 开启。

  • Web 测试:
    • 浏览器访问 http://192.168.66.1。
    • 结果:应该秒开 OpenWrt 后台。
  • RDP 测试:
    • Windows 远程桌面连接 192.168.66.x。
    • 结果:应该能弹出密码输入框。
  • 常见故障自查

    • 报错 Proxy closed the connection unexpectedly:
      • 检查 Proxifier 规则顺序,确认 VPS IP 是 Direct。
      • 检查 SSH 命令是否加了 -p 20022(没加就是连到 VPS 系统里去了,而不是 OpenWrt)。
    • 报错 method SSH_SOCKS5_NOAUTH not found:
      • 检查 Proxifier -> Proxy Server -> Authentication 是否已取消勾选。
      • 检查 OpenWrt 的 /etc/config/dropbear 里是否开启了 AllowTcpForwarding。
    赞(0)
    未经允许不得转载:171主机测评 » 【反向 SSH + SOCKS5 内网穿透终极配置教程】
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址