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

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

  • Как обновить Apache, чтобы позволить Pseudostreaming на CENTOS 5.5 & WHM
  • Где будут настроены дополнительные IP-адреса, назначенные сетевому адаптеру для CentOS 4.4?
  • rsync: samba vs ftp для резервного копирования
  • Как я могу проверить, установлен ли каталог / tmp на моей системе CentOS 5.x на tmpfs?
  • Установка репозитория Epel на CentOS не выполняется
  • Плохое выполнение Java-приложения и плохого сервера
  • Создание почтового сервера на CentOS 6
  • Скрипт для запрета IP-адресов, которые пытаются ввести root на сервере
  • 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 - лучшая ОС в мире.