Привязать перед подключением

Я новичок в 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 , Вы, вероятно, можете расширить его для запуска с 16К до 64К.

Вы можете увидеть количество открытых соединений, используя 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
Другие вопросы по тегам