我正在尝试将我的服务器用作 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 代理。完成后,一切都按预期开始工作。
正确的命令是:
ssh user@server -D 8000
Run Code Online (Sandbox Code Playgroud)
如果仍然无法连接,请检查是否有其他进程正在使用此端口。最简单的方法是:
netstat --listen |grep 8000
Run Code Online (Sandbox Code Playgroud)
如果是这种情况,请使用另一个端口。
| 归档时间: |
|
| 查看次数: |
16080 次 |
| 最近记录: |