我有一个 SOCKS 代理服务器列表这地点。
我读过有关创建动态隧道的内容,ssh -D
说实话我已经尝试过。不幸的是,由于某种原因,我无法连接到列表中的任何代理服务器。
OpenSSH_5.3p1 Debian-3ubuntu7, OpenSSL 0.9.8k
我在 BackTrack 上使用。如果有人愿意提供帮助或指出对我有用的分步指南,我将非常感激。
我想要实现的是通过 Machine to MachineA
上的 ssh 隧道从 Machine 连接。假设机器上的 sshd正在侦听端口 21,机器代理正在侦听端口 1080。B
C
C
B
附加问题:
我还想创建一个到socks代理服务器的隧道,这将允许我在firefox中设置localhost:8080作为代理,并允许我B
使用机器B
IP地址从机器浏览网络。
答案1
在我看来,您需要一个 socks 客户端,或者一个能够理解 socks 的 ssh 客户端。-D
是让 ssh 成为 socks 服务器/代理。
tsocks
您可以在或其他 SOCKS 包装器下使用 ssh 。或者将 ssh 的 ProxyCommand 与socat
或结合使用nc -X
:
ssh -o ProxyCommand='socat - socks:B:%h:21,socksport=1080' C
要拥有使用 SOCKS 服务器发送 HTTP 请求的 HTTP 代理,您可以tinyproxy
在 tsocks 下运行一个小型代理(如 )。
请注意,并非所有应用程序都能很好地与tsocks
依赖于 的或任何类似的包装器配合使用LD_PRELOAD
,但tinyproxy
确实如此。
另请注意,您可能会遇到域名解析问题(取决于您是否希望在隧道的任一侧解析名称)。tsocks
不适用于远程解析名称。它可以工作的唯一方法是当您的名称服务器(在/etc/resolv.conf
)可以从另一端访问并且您使用 TCP 进行域解析时(tsocks
可以尝试强制执行,但根据我的经验通常会失败)。socksify
fromdante
的 SOCKS 客户端/服务器在这种情况下工作得更好,因为它还包装了解析函数,并且还可以使用一个很好的小技巧来伪造名称解析,以便可以使用 SOCKS 按名称连接。