我想通过mosh连接到NAT后面的服务器。我无法触摸路由器将其设置为upnp支持,但我已申请UDP端口转发9807-> 60000,以及ssh端口转发原因。
那么,无论如何通过命令行args或客户端和/或服务器端的conf文件指定服务器端口?
注意:以下不起作用!!
mosh -p 9807 user@my_server
修改
我首先尝试ssh到我的服务器,然后手动运行mosh-server -p 60000,然后从另一个终端运行mosh -p 9807 my_server。这会导致错误:
Error binding to IP my_server_ip: bind: Address already in use
那说:
感谢。
答案 0 :(得分:0)
让我建议以下概念验证方法连接到NAT后的mosh服务器。可以说我们有以下计算机:
ssh -R ... relay_host
可能会有帮助。我们这样做:
relay_host> udprelay 0.0.0.0 34730 34731
上面提到的端口号已硬编码到客户端脚本中,但可以轻松更改。另外请注意,目前udprelay并不安全。socat
工具。client_host> mosh-nat-client.sh SERVER_SSH_NAME RELAY_IP
该脚本使用ssh SERVER_SSH_NAME <mosh-nat-server.sh ARGS>
调用 server_host ,记录密钥并使用它来运行mosh-client。棘手的部分是在服务器的NAT上打一个洞,让双方在udprelay
见面。另请参见不错的blog post,它描述了一种稍有不同的情况。在以上术语中,它显示了如何从 relay_host 连接到 server_host 。作者不使用udp中继,但他仍然需要笨重的LD_PRELOAD
机械。令人惊讶的是,它确实起作用。