今天一个游戏服一直无法启动,报端口监听失败,以前碰到这种情况,直接重启个2-3次就解决了,但今天重启了N多次都无法启动成功
游戏服监听的是40018端口
排查过程
1、使用指令 netstat -lnp | grep 40018
发现没有进程监听此端口
2、nc -l 40018
提示端口被占用
3、lsof -i:40018
发现有进程使用此端口连接别的程序
通过第3步发现了原因,原来是其中一个游戏服去连接跨服服务器的时候占用了40018端口
解决方案:
1、找到是哪个进程占用了40018端口,然后停掉此进程
2、重新启动游戏服,重新启动被停掉的进程
原因
1、程序在连接其他端口的时候也会占用本地的一个端口,而这个端口是一个随机的端口,一般而言比较大,然后就无意中占用了本该被服务端监听的端口,导致服务端启动失败
经验:
游戏服尽量不要去监听太大的端口,尽量控制在30000以下
记录一次linux端口监听失败的处理过程
最新推荐文章于 2024-04-26 16:31:32 发布