joe@server:~$ sudo lsof -i :36168
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 23059 activemq 15u IPv6 109382 0t0 TCP *:36168 (LISTEN)
Из вывода выше я хочу отключить порт 36168, но не знаю где. Как мне найти файл конфигурации этого порта, чтобы изменить его?
grep Это не дает результата. И я не хочу вместо этого использовать брандмауэр.
netstat -putan | grep 80 | grep LISTEN
дает
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1682/apache2
Как видите, apache2 с PID = 1682 - это процесс, прослушивающий порт 80 в этом примере.
Я всегда считал термоэлемент проще
fuser 80/tcp
Он перечислит все pid, работающие на порту 80, используя tcp
От твоего lsof
выход, у вас есть PID
номер процесса, у которого открыт порт. Делать ps -AH
чтобы увидеть иерархический список процессов и найти конкретный PID
. Этот процесс будет с отступом «под» другими процессами, просканируйте дерево вверх, пока не найдете родительский процесс (если вы дойдете до init
вы зашли слишком далеко, вернитесь на один уровень ниже).
После того, как вы определили родительский процесс, вы сможете остановить этот процесс, используя свой дистрибутив init
скрипты.
Хорошо известные порты находятся в / etc / services. Упомянутый порт, похоже, используется activemq, возможно, он не стандартизирован. См. Конфигурацию activemq или развернутые веб-приложения, если они работают в веб-контейнере. Вы можете защитить установку, если сделаете привязку к локальному адресу (127.0.0.1 или :: 1). Если вам не нужен activemq, просто остановите приложение.