SSH 隧道不起作用

SSH 隧道不起作用

我正在尝试使用我的服务器作为 ssh 的“代理”。但是,使用

ssh -D localhost:8000 user@myserver

不起作用。

我在多台机器上用 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

我究竟做错了什么?

答案1

这是一个老话题,但我认为值得发布可能的解决方案。

我在使用多个浏览器时都遇到了同样的问题,结果发现是配置问题。如果是这样,以下命令应该可以工作并显示远程计算机的 IP 地址:

links -socks-proxy localhost:8000 www.myipaddress.com

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

答案2

正确的命令是:

ssh user@server -D 8000

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

netstat --listen |grep 8000

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

答案3

-g我遇到了同样的问题,我的解决方法是在命令中添加选项:

$ ssh -D 12324 localhost:8000 user@myserver -g

答案4

sshd_config另外在 ssh 服务器上启用:

PermitTunnel yes

而且当然:

service ssh restart

相关内容