ngm*_*ode 18 networking linux ssh port port-forwarding
问题:为什么会ssh -N -R 2222:localhost:22 <bluehost_user>@<bluehost_ip>导致“监听端口的远程端口转发失败”错误?目标是建立一个带有端口转发的反向隧道,以便始终如一地通过 ssh 连接到具有动态私有 IP 的 NAT 路由器后面的主机。详情见图片。
已经尝试过:
反向SSH隧道

更新
我在第 2 步中尝试使用以下命令:
reduser@redhost:~ ssh greenuser@greenhost -p 2222
它应该是:
reduser@redhost:~ ssh greenuser@bluehost -p 2222
您想在 bluehost IP 上使用 greenuser 凭据,因为您在使用端口 2222 时登录的主机实际上是 greenhost。
Kam*_*ski 27
为什么会
ssh -N -R 2222:localhost:22 <bluehost_user>@<bluehost_ip>导致“监听端口的远程端口转发失败”错误?
当我尝试使用已在远程端使用的端口时,我收到了这个确切的警告。
netstatfrom的输出bluehost表明某些东西已经在2222那里监听端口。它没有显示它是什么。
解决方案:
2222将您的ssh调用更改为在 上未使用的某个其他端口bluehost。只是让它更大,1023因为普通用户无法绑定到众所周知的端口;否则,无论端口是否在使用中,您都会收到相同的警告。bluehost用sudo lsof -i TCP:2222;标识收听过程 (on ) 终止或重新配置它以使端口2222可用。编辑:
在您的情况下,这部分man ssh似乎很重要:
Run Code Online (Sandbox Code Playgroud)-R [bind_address:]port:host:hostport -R [bind_address:]port:local_socket -R remote_socket:host:hostport -R remote_socket:local_socket[…] 默认情况下,服务器上的 TCP 侦听套接字将仅绑定到环回接口。这可以通过指定一个
bind_address. 空值bind_address或地址“*”表示远程套接字应侦听所有接口。bind_address只有GatewayPorts启用了服务器的选项(请参阅参考资料),指定远程才会成功sshd_config(5)。
这意味着你应该GatewayPorts yes在sshd_configon bluehost。阅读man 5 sshd_config以了解更多信息。之后不要忘记重新加载服务。
小智 7
确保在 bluehost 的端口 2222 上没有挂起的连接。在 bluehost 上测试lsof -t -i:2222是否有任何进程 ID 正在使用端口 2222。此外,终止此进程(例如使用kill $(lsof -t -i:2222))。
这为我解决了这个问题。希望这些信息对其他人有用。:)
| 归档时间: |
|
| 查看次数: |
81695 次 |
| 最近记录: |