问题与解决方案

问题与解决方案

服务器上已设置 freeSSHd。Putty 已成功通过 SSH 连接到服务器。我尝试配置 SOCKS5 和 HTTP 隧道,但未能成功。特别是在 Opera 上进行了测试,其中代理设置为127.0.0.1和端口1080

我正在尝试通过这种方式在 Putty 中设置 SOCKS5 代理/隧道:Connection>SSH>Tunnels我在那里设置:

Source port1080

Destination127.0.0.1

Dynamic

IPv4

为什么 SOCKS5 代理隧道不起作用?


更新:

Firefox 提示“代理服务器拒绝连接”


更新2:

设置全部相同但留空Destination

Firefox 消息:

连接被重置

The connection to the server was reset while the page was loading.

    The site could be temporarily unavailable or too busy. Try again in a few moments.
    If you are unable to load any pages, check your computer's network connection.
    If your computer or network is protected by a firewall or proxy, make sure that Firefox is permitted to access the Web.

更新 3

Firefox 拒绝连接google.com并显示错误:The connection was reset。Opera 无法运行。(重置代理配置后即可运行)


更新 4

Putty 如何处理网络连接?此 cmd 中有时会出现TCP 127.0.0.1:1080 LISTENING。其余 2 个具有 1080 端口的 TCP 连接是什么?客户端命令: 客户


更新 5:

服务器上的 freeSSHd 配置:

在此处输入图片描述


更新 6:

我让Delugetorrent 客户端成功通过 SSH 隧道运行(使用 SOCKS5)!互联网浏览器仍然无法连接到网络(SOCKS5 或 HTTP 代理设置均不起作用)。

答案1

假设您的意思是从 Windows 访问外部 SOCKS 代理,请看这里。如果您的意思是设置 Windows 中的 SSH 服务器,cygwin 可以使用 来完成此操作sshd

在 Windows 中,cygwin 使这变得简单,但如果您还没有 cygwin,这里是 PuTTY 说明。


像这样设置:
将端口 2222 替换为 22 或任何用于 SSH 的端口。将其留空也应该有效。22 是默认值,但我将其设置为非标准端口。将此处的 127.0.0.1 替换为您的实际地址。

设置 PuTTY - 1

在这里,将 127.0.0.1 保留原位。它应该在那里。您可以将 8080 更改为您希望 SOCKS 代理所在的任何端口。
设置 PuTTY - 2

确保将登录用户名设置为您自己的用户名。我的 iPhone 上的用户名是“mobile”,我在为 Apple Stack Exchange 制作此示例时使用的是这个用户名。 设置 PuTTY - 3

如果需要,您可以为此保存一个配置文件,以避免每次遇到问题时都重新设置。这可以在最顶部的“会话”部分中完成。

Linux/Unix/BSD/Solaris/OSX/HP-UX/其他我还缺少什么

你可以运行ssh -D 8080 user@address

现在,您需要打开您选择的 Web 浏览器;我使用 Firefox,因此我将使用它作为示例。我使用过 Chrome 和 Opera,但由于我不喜欢它们并且目前没有安装它们,因此目前无法将其用作示例。但您可以将其设置为 SOCKS 代理,无论使用哪种浏览器。

这些截图是用转发的 X11 完成的,所以字体很丑,但不要介意。
首先,转到首选项窗口(tools -> optionsedit -> preferences,取决于操作系统)。然后,转到Advanced -> Network -> Settings...Firefox 配置 1

对浏览器使用以下配置。
Firefox 配置 2

问题与解决方案

问题:

我的应用程序不允许设置 SOCKS 代理。

解决方案:

我在玩 Minecraft 等游戏时也遇到过这个问题。这里有一些修复方法。
对于 minecraft,我向 添加了参数ssh。我经常在 nerd.nu reddit minecraft 服务器 (reddit.com/r/mcpublic) 上玩游戏。自 minecraft 1.6 以来,设置为命令行参数的 SSH 隧道和 SOCKS 代理已不起作用。以前您可以添加 java 参数-DSocksProxyHost=127.0.0.1 -DSocksProxyPort=8080,这样就可以正常工作。但是,现在的解决方案不是那么好,但它确实有效。

启动时,请执行ssh而不是。然后,当您想要连接到服务器时,只需将 URL 添加到服务器列表中即可!得益于 SSH 隧道的奇迹,远程服务器将出现在 127.0.0.1/localhost 上!ssh -D 8080 user@address
ssh -D 8080 -L 127.0.0.1:25565:p.nerd.nu:25565 user@address
127.0.0.1:25565

对于其他程序/游戏,同样的规则也适用。如果您无法设置 SOCKS 代理,并且其他方法都不起作用,只需添加-L 127.0.0.1:<port>:<remote URL to access>:<remote port>

没有什么强迫您使用与127.0.0.1通常相同的端口,因此我可以例如映射p.nerd.nu:25565127.0.0.1:1025,只要我指定端口,游戏就不会在意。并非所有程序都如此宽容,但记住这一点很有用。

相关内容