使用 Putty,我设置了一个反向代理,它允许我通过服务器的端口 8080 连接server.tld
到启动 SSH 连接的机器的端口 80。
服务器允许我连接并返回我连接服务器时localhost:8080
的结果。initiator:80
这个问题表示启用 GatewayPorts 并绑定到所有地址。
使用 Putty,如何在服务器上公开端口 8080,以便当请求通过外部接口(例如 Web 请求)时,该端口被转发到initiator:80
?
答案1
设置 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 [email protected]
效果也很好。
# 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,则 GatewayPorts 在您的 sshd 配置中仍然设置为 no。
另外,不要忘记更新目标服务器上的防火墙以允许外部连接到端口 8080。