我是 ubuntu 和网络新手
Linux 中是否有方法可以检查剩余的临时端口数?由于临时端口用完,我遇到了“地址已在使用中”错误
我该如何做呢?1-设置 tcp_tw_reuse sysctl 以启用 TIME_WAIT 套接字的重用。
答案1
临时端口范围在 中指定/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