【问题标题】:Force a router to keep a an IDLE UDP port open强制路由器保持空闲 UDP 端口打开
【发布时间】:2012-09-21 11:22:02
【问题描述】:

客户端打开到我的服务器的 UDP 连接,一段时间后(10 分钟到 24 小时),服务器需要将数据发送回客户端,但发现客户端的 UDP 端口已关闭!。

经过测试,我们发现客户端仍然打开了UDP端口,但是路由器(nat)可能因为不活动而关闭了端口!

有什么方法可以强制路由器保持 UDP 端口打开而不发送 keep-alive 数据包? (服务器或客户端)。

在 ICMP 中有类似的东西吗?

谢谢。

【问题讨论】:

    标签: udp router nat hole-punching


    【解决方案1】:

    我遇到了同样的问题,我找到了这个解决方案,不是针对路由器,而是针对服务器:

    尝试配置keep alive。

    实现方式取决于您使用的服务/程序/操作系统。

    例如,在客户端中使用 OpenSSH,您必须在文件 ./ssh/config/etc/ssh/ssh_config 中添加/配置这些行:

    ServerAliveInterval 30
    ServerAliveCountMax 60
    

    在服务器中(我进行更改的地方)在文件/etc/ssh/sshd_config 中添加/配置此行:

    ClientAliveInterval 30
    ClientAliveCountMax 60
    

    当然这取决于操作系统等,但想法是在服务中配置保持活动权限。

    祝你好运!

    【讨论】:

    • 问题是服务总是在 UDP 端口而不是 TCP 上打开,所以当没有数据通过 ROUTER 上的开放端口发送时,路由器将假定 UDP 连接丢失并关闭港口。
    猜你喜欢
    • 2014-06-25
    • 1970-01-01
    • 2014-10-04
    • 1970-01-01
    • 2011-08-18
    • 2015-09-21
    • 2013-01-27
    • 1970-01-01
    • 2012-01-21
    相关资源
    最近更新 更多