所以我有以下设置:
计算机 A、服务器、计算机 B
计算机 A 和 B 可以通过 SSH 连接到服务器,但反之则不行。目标是通过服务器实现从A到B的动态SSH隧道,以便A可以使用B的计算机进行动态浏览。
此外,A 和 B 都不能接受 SSH 连接 - 只能发送(甚至不能来自他们自己)。这意味着使用以下方法向自己打开 SOCKS5 服务器:
ssh -D 8000 localhost
实在是不可能。
我已经能够将所有流量从 A 重定向到在计算机 A 上运行以下命令的服务器:
ssh -D 1080 server_ip
但是现在我想使用反向动态 SSH 隧道,并且在计算机 B 上运行以下命令似乎不起作用:
ssh -R 1080 server_ip
有没有办法做到这一点?我发现的任何其他解决方案都站不住脚。
真正连接到所需地址
ssh -D
的是 SSH服务器(例如,连接到您在浏览器中输入的配置为使用 SOCKS 的地址)。如果你想“使用 B 动态浏览”,那么你需要让 B 上的 SSH 服务器代表你创建连接。但是如果 B 根本无法接受 SSH 连接,那么您就无法访问其 SSH 服务器。在您描述的设置中,B 上可能首先没有 SSH 服务器。
如果 B 可以接受 SSH 连接(至少来自它自己),那将是不同的;或者如果它托管了一个 SOCKS 服务器,接受某个 TCP 端口上的连接(至少来自 B 本身)。