Привязать перед подключением
Я новичок в 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