SSH 隧道不起作用

s1c*_*1ck 9 ssh proxy tunnel

我正在尝试将我的服务器用作 ssh 的“代理”。但是,设置隧道

ssh -D localhost:8000 user@myserver
Run Code Online (Sandbox Code Playgroud)

不起作用。

我使用 ssh 和 putty 在各种机器上对此进行了测试 - 它连接得很好,但是当我相应地设置浏览器设置时,我只会收到错误“连接已重置”。我尝试使用wireshark监控流量,但我什至没有看到一些隧道流量。我明确设置AllowTcpForwarding为“是”,但我仍然无法使用隧道。

在详细模式下运行 ssh 时,我没有收到任何错误,但是

debug1: Connection to port 8000 forwarding to socks port 0 requested.
debug1: channel 3: new [dynamic-tcpip]
debug1: channel 3: free: dynamic-tcpip, nchannels 4
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

小智 6

这是一个旧线程,但我认为值得发布可能的解决方案。

我在几个浏览器上遇到了同样的问题,结果是配置问题。如果是这种情况,以下命令应该可以工作并显示远程机器的 IP 地址:

links -socks-proxy localhost:8000 www.myipaddress.com
Run Code Online (Sandbox Code Playgroud)

关于该问题的第一条评论是正确的,因为浏览器可能会尝试使用 HTTP 代理而不是 SOCKS 代理,在这种情况下,我看到的输出ssh与 OP 帖子中的输出完全相同。虽然我确实设置了 SOCKS 代理,但问题是我没有取消设置 HTTP 代理。完成后,一切都按预期开始工作。

  • 我有同样的问题。无论我做什么,接受的答案都不起作用。你的额外答案为我解决了一切。大家听好!不要忘记取消其他代理设置,以及像这样的“无代理...”地址:http://imgur.com/h4Q28ek (3认同)

Luc*_*man 2

正确的命令是:

ssh user@server -D 8000
Run Code Online (Sandbox Code Playgroud)

如果仍然无法连接,请检查是否有其他进程正在使用此端口。最简单的方法是:

netstat --listen |grep 8000
Run Code Online (Sandbox Code Playgroud)

如果是这种情况,请使用另一个端口。