我现在在工作,端口 80/443 被屏蔽了。我尝试通过 SSH 隧道访问互联网。我目前已连接到 VPN,可以访问外部网络,但当然无法浏览。因此,我尝试按照本教程使用 putty 连接到我家里的 SSH 服务器http://anotheritblog.net/2012/11/26/ssh-tunneling-on-windows-with-putty/。我的服务器正在监听端口 222,并且确实GatewayPorts yes
配置了该选项,但 PuTTY 告诉我该选项在我的服务器上已被禁用,但事实并非如此?
2016-03-16 11:09:08 Requesting remote port 80 forward to myserver.com:222
2016-03-16 11:09:08 Remote debug message: Server has disabled port forwarding.
2016-03-16 11:09:08 Remote port forwarding from 80 refused
由于我正在转发端口 80,我想这可能是我服务器上的防火墙问题,所以我将此规则添加到IPTABLES
# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
但这并没有解决问题。我甚至将 改为 ,GatewayPorts yes
但这GatewayPorts clientspecified
也没有解决问题。有什么想法吗?
答案1
如果您收到一条消息,表明服务器已禁用端口转发,则AllowTCPForwarding no
SSHD 配置文件中是否有?配置文件可能位于/etc/ssh/sshd_config
Linux SSH 服务器上。如果是,请将其更改为AllowTCPForwarding yes
并重新启动 SSH 服务器服务。
你是否配置 PuTTY 使用 SOCKS 代理连接进而配置浏览器以使用 SOCKS 代理连接? 对于端口 80 (HTTP) 和 443 (HTTPS) 上的 Web 访问,我通常通过隧道 SSH 连接。
答案2
从日志中可以看出,您正尝试创建一个反向隧道,从 Putty 会话的目标返回 Putty,再到端口 222 上的 myserver.com。我有点困惑,不知道您如何使用它从运行 Putty 的 PC 浏览互联网。所以,也许我不明白您要做什么,或者您是如何设置的。VPN 有几种类型,因此,命名产品或描述 VPN 的性质会很有帮助。
当远程服务器已经有一个会话在侦听相关远程端口(在本例中为端口 80)时,我会看到此特定消息。但是,如果您用于登录的远程用户帐户没有权限创建在端口 80 上侦听的套接字,则也可能会出现问题。在 UNIX 和 Linux 下,只有 root 用户才能创建接受 1024 以下端口上的连接的侦听套接字。
尝试将远程端口号从 80 更改为 8080 之类的数字,看看是否继续出现相同的错误。
答案3
与问题间接相关——以防有人遇到同样的问题:
当我尝试运行端口转发时,我开始收到以下错误
Event Log: Local port 2001 SOCKS dynamic forwarding failed: Network error: Permission denied
经过一段时间的努力后,安装了 Bitwise SSH,出现以下错误:
Failed to enable SOCKS/HTTP proxy forwarding on 127.0.0.1:2001: Address is already in use; bind() in ListeningSocket::StartListening() failed: Windows error 10013: An attempt was made to access a socket in a way forbidden by its access permissions.
之后很明显端口正在使用中 - 虽然它没有显示在 CurrPorts 中。所以我通过更改端口号解决了这个问题