Unable to start Kestrel. Failed to bind to address http://0.0.0.0:54430:
address already in use
System.IO.IOException: Failed to bind to address http://0.0.0.0:54430: address already in use. ---> Microsoft.AspNetCore.Connections.AddressInUseException: Address already in use ---> System.Net.Sockets.SocketException (98): Address already in use at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, String callerName) at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.Sockets.Socket.Bind(EndPoint localEP) at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind()
Причина ошибки
В случае, если в WEB-Сервер-КС приложение не запускается после остановки, а в логах появляется указанная ошибка, это свидетельствует о том, что порт занят оставшимся файлом сокета.
Решение:
sysctl net.ipv4.ip_local_port_range="32768 54429"
Для работоспособности после рестарта операционной системы необходимо создать файл /etc/sysctl.d/777-keysystems.conf
:
nano /etc/sysctl.d/777-keysystems.conf
С содержимым:
net.ipv4.ip_local_port_range="32768 54429"
Проверить диапазон портов TCP можно командой:
sysctl net.ipv4.ip_local_port_range