SSH 远程端口转发
03 Nov 2016今天想调试下新版本服务端支付宝支付确认消息的处理流程, 但是因为本机没有公网 IP, 所以想到利用远程服务器做端口转发. 于是执行下面的命令:
ssh -R 8080:localhost:8080 <remote>
然后在浏览器里访问 <remote>:8080
, 提示连接被拒绝. 于是登录到远程服务器执行:
curl localhost:8080
发现访问正常, 所以连接被拒绝应该是因为 ssh 只绑定了本地的网口. 于是修改了下 ssh 的命令:
ssh -R 0.0.0.0:8080:localhost:8080 <remote>
测试了下发现还是拒绝. 到网上搜了好久才找到答案, 原来 ssh 默认只转发发往本地网口的请求.
要转发所有请求需要将 GatewayPorts
设置成 yes
(在 /etc/ssh/sshd_config
中设置)
其实这问题之前遇到过, 也搜了好久, 所以还是要记下来才行!