Как узнать, какой IP:PORT отслеживает веб-сервер Apache? Есть несколько сетевых команд, но они показывают используемый порт TCP. У машины несколько сетевых интерфейсов, и раздел Listen
в httpd.conf
закомментирован. Таким образом, один из них используется по умолчанию, и я не знаю, какой из них установлен по умолчанию.
Например, следующая команда показывает только номер порта
root@cluster:~# netstat -pat | grep httpd
tcp 0 0 *:ulistproc *:* LISTEN 3940/httpd
tcp 0 0 *:https *:* LISTEN 3940/httpd
Кроме того, я ожидаю, что правильный номер порта должен быть 80, а не 3940!
Есть идеи, как это найти?
решение1
Последний столбец — это процесс (номер процесса / имя процесса), а не порт. Порт находится в четвертом столбце, в вашем случае он показывает два открытых порта ulistproc и https. Оба порта открыты по адресу "*", что означает все адреса на вашей машине (это обычное значение по умолчанию для большинства демонов, есть конфигурация, ограничивающая его). Если вам нужны фактические номера портов, используйте "netstat -pant", чтобы не делать символическое преобразование.
решение2
Как пользователь root, введите:
netstat -pat | grep httpd
(или grep apache
в зависимости от вашего дистрибутива)
решение3
nmap localhost
cat httpd.conf | grep port
решение4
Помимо использования netstat, вы также можете использовать его lsof
для вывода списка открытых файлов (потоков, сокетов, блочных файлов и т. д.).
root@host: lsof -i -n -P |grep httpd
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 4291 root 3u IPv4 124715 0t0 TCP *:80 (LISTEN)
lsof (8) - список открытых файлов
-i = показывать файлы IPv4/6
-n = не разрешать имена хостов (т.е. показывать IP-адреса)
-P показывать номера портов вместо понятных имен (т.е. 80 вместо HTTP).