CentOS 5.9 | Прослушивание программы в порту, что не должно связывать

У меня есть игровой сервер, запущенный на моем ящике CentOS, который привязывается к порту 28960, теперь, когда я перезапустил игровой сервер, он заявил, что он не может связывать порт, потому что он используется, но, очевидно, потому, что сервер был перезагружен, но порт не был закрыт? Как проверить, прослушивает ли программа, а если нет, то как мне очистить порт, чтобы я мог запустить сервер на порт 28960?

  • Как изменить значения по умолчанию для директив в systemd?
  • Заголовки ядра для ядра 2.6.32-504.e16.x86_64 не найдены
  • как получилось, что firebird-superserver остановлен и как предотвратить повторение?
  • Как и где настроена команда at?
  • LDAP: один суффикс: поиск нескольких отдельных Active Directory
  • Как создать RAM-диск из среды Kickstart?
  • Блокировать файл от редактирования или удаления
  • как переопределить logrotate для конкретной услуги upstart
  • 2 Solutions collect form web for “CentOS 5.9 | Прослушивание программы в порту, что не должно связывать”

    Я думаю, что вы можете столкнуться с проблемой 2 * MSL . Вот как вы говорите:

    $ netstat -na | grep 28960.*TIME_WAIT 

    Если вы получите что-то от этого, это означает, что сетевой стек ядра ожидает удвоения максимального времени жизни сегмента (MSL) для паразитных пакетов, чтобы обойти это, прежде чем разрешить повторную привязку этого порта. Состояние TIME_WAIT – это хорошо.

    Серверы, предназначенные для перезапуска при нормальной работе, отключают обработку TIME_WAIT , устанавливая опцию сокета SO_REUSEADDR . Если вы посмотрите на документы для своего игрового сервера, возможно, есть опция, позволяющая включить это поведение.

    Если нет, и вы не можете получить источник для изменения игрового сервера, единственный вариант – дождаться истечения состояний TIME_WAIT , что обычно занимает от 30 до 120 секунд.

    Вот сценарий, который я называю showwait который полезен для такого рода вещей:

     #!/bin/sh while [ true ] do netstat -na | grep WAIT sleep 1 done 

    Вы просто запускаете его и ждете, пока он перестанет выставлять линии каждую секунду. Затем вы Ctrl-C и продолжаете все, что вам нужно, чтобы требовать, чтобы не было состояний ожидания.

    Этот сценарий не подходит для использования на занятом сервере, где все ожидания происходят постоянно, но когда вы просто ждёте сервер, в котором ничего не происходит, чтобы достичь покоя, это идеально.

    Вы можете попробовать lsof(8) (проверьте страницу руководства, она довольно обширна, но просто вывести ее вывод на grep 28960 должно дать некоторое представление о том, что происходит). В любом случае порт 28960 не назначен IANA . поэтому ничто не должно его использовать.

    Linux и Unix - лучшая ОС в мире.