如何调试SSH隧道

13

我想在本地机器和互联网上的一台机器之间建立一个简单的ssh隧道。

我正在使用以下命令:

ssh -D 8080 -f -C -q -N -p 12122 <username>@<hostname>

设置应该没问题(我想),因为ssh会要求输入凭据,我会提供它们。

然后我执行以下操作:

export http_proxy=http://localhost:8080wget http://www.google.com

Wget返回请求已发送到代理服务器,但没有收到任何数据。我需要一种查看ssh如何处理请求的方法...


3
应该发布在http://superuser.com上。 - Shawn Chin
1个回答

21

为了从你的SSH连接中获取更多调试信息,省略-q-f选项,并包含-vvv

要从SSH连接中获取更多的调试信息,可以省略掉-q-f选项,同时添加-vvv选项。

ssh -D 8080 -vvv -N -p 12122 <username>@<hostname>
为解决你的实际问题,使用ssh -D相当于设置了一个SOCKS代理,不过我认为这在wget中默认是不支持的。
你可以尝试使用curl,它通过选项--socks提供了SOCKS支持,可能会更好用。
如果你真的需要使用wget,就得重新编译自己的版本以包括socks支持。应该会有一个./configure选项,例如--with-socks之类的。
另外,可以看看tsocks,它可以拦截出站网络连接并将其重定向到SOCKS服务器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接