通过 ssh socks 代理浏览 -> 通过反向隧道

通过 ssh socks 代理浏览 -> 通过反向隧道

我的 HostA 位于防火墙后面,与 HostB 建立反向 ssh 隧道。我想在 HostB 上设置一个代理,该代理将通过反向 ssh 隧道转发连接并通过 HostA 转发出去。

我尝试了 ssh -D 5678 user@localhost -p 1234,但 Firefox 在尝试以 socks 代理的形式连接到 HostB 的端口 5678 时超时。1234 是 HostB 上设置到 HostA 的反向代理的端口。有人对设置这个有什么建议吗?

在 HostA 上设置反向代理为 ssh -R 1234:localhost:22 user@HostB

答案1

我在我的系统上测试了这一点并且没有发现任何问题。

  1. 主机A:$ ssh -R 1234:localhost:22 user@hostb

  2. 主机B:$ ssh -p 1234 localhost -D 5678

  3. 主机B:

    $ curl http://portquiz.net
    Port 80 test successful!
    Your IP: 66.77.88.159
    
    
    $ curl --socks5 localhost:5678 http://portquiz.net
    Port 80 test successful!
    Your IP: 23.31.31.35
    

curl 命令有效吗?如果有效,在 Firefox 中你需要 setHTTP Proxy: localhost Port: 5678和 check Use this proxy server for all protocols

如果 curl 命令不起作用,我会检查它iptables是否selinux不会妨碍。为了进行故障排除,我建议在两台主机上禁用它iptablesselinux这只是暂时的,不应被视为永久的解决方案。

答案2

HostA$ ssh -R 1080 user@HostB
HostB$ curl --socks5 localhost https://example.com

从 OpenSSH 7.6

ssh(1):添加对反向动态转发的支持。在此模式下,ssh 将充当 SOCKS4/5 代理并将连接转发到远程 SOCKS 客户端请求的目的地。此模式是使用 -R 和 RemoteForward 选项的扩展语法请求的,并且由于它仅在客户端上实现,因此不需要更新服务器即可获得支持。

来源:OpenSSH 7.6 发行说明

相关内容