使用PuTTy进行SSH反向端口转发-如何指定绑定地址


16

使用Putty,我设置了一个反向代理,该代理使我可以在服务器的端口8080上连接server.tld至启动SSH连接的计算机的端口80。

服务器允许我连接,localhost:8080并返回initiator:80我在服务器上连接时的结果。

这个问题说启用网关端口并绑定到所有地址。

使用Putty,如何在服务器上公开端口8080,以便在外部接口上通过请求(例如Web请求)时将端口转发到initiator:80

在此处输入图片说明


您能详细说明要在PuTTY对话框中创建隧道的内容吗?
EightBitTony

添加了屏幕截图-端口与示例文本不同,但是这不允许外部接口上的请求通过隧道进行路由(例如1.2.3.4:8080)。内部请求被路由(localhost:8080)。
达比奥(Darbio)

netstat -an是什么?grep 8080显示吗?当您说不允许时,您是什么意思?您是否有防火墙阻止与端口8080的连接?
EightBitTony

Answers:


17

设置PuTTY隧道时有两个复选框,

  • 本地端口接受来自其他主机的连接
  • 远程端口也是如此(仅SSH-2)

其中第二个可以满足您的需求。

我刚刚测试过

PuTTY隧道对话框,

  • 勾选远程端口...
  • 将8080放入源端口
  • 将127.0.0.1:80放入目标端口
  • 选择“远程”单选按钮
  • 点击添加
  • 连接

工作正常,这是生成的netstat,

# netstat -an | grep 8080
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN
tcp6       0      0 :::8080                 :::*                    LISTEN

您还可以使用PuTTY随附的plink.exe,例如,

plink -R *:8080:localhost:80 user@remote.host.example

效果也不错。

# netstat -an | grep 8080
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN
tcp6       0      0 :::8080                 :::*                    LISTEN

如果您仍在主机上获得127.0.0.1:8080,则sshd配置中的GatewayPorts仍设置为no。

另外,不要忘记更新目标服务器上的防火墙以允许到端口8080的外部连接。


不-它似乎没有给我同样的行为ssh -R *:8080:localhost:80
达比奥(Darbio)

GatewayPorts设置为yes。它与ssh -R \*:8080:localhost:80命令配合使用,只是无法完成;在
PuTTy中

@Darbio你有没有发现腻子?
barlop

我确实使用了很多端口转发功能,通常以local2remote方式(vnc,代理等)使用,而这次我无法使用remote2local端口,无论我选择了什么选项,端口在远程上都不会显示为打开状态。plink与常规ssh相比,直接使用确实可以毫无问题地使用相同的命令。我不明白腻子是什么原因使其无法工作...
m3nda
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.