弹性云服务器通过SNAT访问公网上服务器,出现TCP建链失败的情况,可通过以下方法进行排查。
- 执行以下命令,查看远端服务器是否开启了“tcp_tw_recycle”。
sysctl -a|grep tcp_tw_recycle
tcp_tw_recycle取值为1时,表示开启。
- 执行以下命令,查看远端服务器内核丢包数量。
cat /proc/net/netstat | awk '/TcpExt/ { print $21,$22 }'
如果ListenDrops数值非0,表示存在丢包,即存在网络问题。
处理方法:修改远端服务器的内核参数
- 永久修改参数方法:
- 执行以下命令,修改“/etc/sysctl.conf”文件。
vi /etc/sysctl.conf
在该文件中添加以下内容:
net.ipv4.tcp_tw_recycle=0
- 按“Esc”输入“:wq!”,保存后退出文件。
- 执行以下命令,生效配置。
sysctl -p