先绑定后连接

先绑定后连接

我是 ubuntu 和网络新手

Linux 中是否有方法可以检查剩余的临时端口数?由于临时端口用完,我遇到了“地址已在使用中”错误

我该如何做呢?1-设置 tcp_tw_reuse sysctl 以启用 TIME_WAIT 套接字的重用。

答案1

例如参见(https://serverfault.com/questions/261663/on-linux-how-can-i-tell-how-many-ephemeral-ports-are-left-available)。

临时端口范围在 中指定/proc/sys/net/ipv4/ip_local_port_range。您可以将其扩展到从 16k 到 64k。

您可以使用 查看打开的连接数netstat -an。如果您打开和关闭大量连接,套接字可能会卡在 TIME_WAIT 状态。在某些地方,这是不可避免的,但如果是这种情况,您可能需要考虑是否需要连接池。

如果问题在于 TIME_WAIT,您可以设置net.ipv4.tcp_tw_reuse/net.ipv4.tcp_tw_recycle来加快连接周转。

后者指的是/proc/sys/net/ipv4/tcp_tw_reuse/proc/sys/net/ipv4/tcp_tw_recycle因此可以设置为 1 或 0。例如,

echo 1 | /proc/sys/net/ipv4/tcp_tw_reuse

这样做会将标志设置为下次重启。如果您希望在重启后也设置该设置,则需要将相应的行添加到/etc/sysctl.conf。例如,

net.ipv4.tcp_tw_reuse=1

文件中的任何地方都可以,并且您可能还会添加一些关于它的评论。

另外,如果你的 netstat 输出过多,可以考虑通过传呼机进行管道传输,例如

netstat -an | less

相关内容