Fix*_*xee 5 ssh port-forwarding
我想在具有不可路由 IP 的机器 X 上转发 sshd(端口 22)。转发选项是 nc(这太可怕了)、inetd(需要 privs)、iptables(需要 privs)和 ssh。所以我使用 ssh,它具有提供加密隧道的额外好处。
我有一台带有公共 IP 的机器 Y。我想将 X:22 公开为 Y:8022。
X $ ssh -R8022:localhost:22 Y
Run Code Online (Sandbox Code Playgroud)
这有效,但端口 8022 绑定到环回:
Y $ netstat -ant
. . .
tcp 0 0 127.0.0.1:8022 0.0.0.0:* LISTEN
Run Code Online (Sandbox Code Playgroud)
这意味着我无法从任何外国机器连接。由于GatewayPorts是noY中的/etc/ssh/sshd_config,我不能具体另一个绑定地址。有任何想法吗?
注意:我确实通过使用从 Y 到 Y 的另一个隧道设法使事情正常工作:
Y $ ssh -g -L9022:localhost:8022 localhost
Run Code Online (Sandbox Code Playgroud)
这是一个非常低效的解决方案:它localhost从端口 9022加密/解密到 8022,然后在发送到 X 之前再次加密。当然必须有更好的方法吗?
由于 GatewayPorts 已关闭,我没有任何解决方案<-- 回答者自己的评论。
在主机 Y 上:
ssh -f -N -q -L :8022:localhost:22 user@X应该能解决问题
-f:守护进程
-N:无命令
-q:安静
-L:端口转发
-:leading::用于通过所有接口启用本地端口,而不仅仅是 localhost
| 归档时间: |
|
| 查看次数: |
3643 次 |
| 最近记录: |