Я установил одно приложение «phanthomjs», которое работает на определенном порту 6423. Я хочу, чтобы оно было доступно для сценариев, которые запускаются локально в поле «localhost» и недоступны извне.
phantomjs--webdriver=6324
мой текущий скрипт использует TCP и запускается в том же окне, и мы используем имя сервера как localhost
для подключения к приложению.
Есть ли способ в Redhat Linux заблокировать доступ к этому порту извне?
Если ваше приложение прослушивает только localhost, с ним нельзя связаться извне. Если можно настроить "привязанный" адрес, то поставьте 127.0.0.1. Чтобы проверить, что это работает, введите lsof -i -n -P :6423
(или 6324...). На выходе вы должны увидеть строку, заканчивающуюся на
TCP 127.0.0.1:6423 (LISTEN)
Если ты видишь
TCP *:6423 (LISTEN)
тогда ваше приложение прослушивает любой порт и, таким образом, с ним можно связаться из Интернета.
Если вы не можете заставить ваше приложение прослушивать только 127.0.0.1, вам нужно будет использовать iptables.
Вам не нужно блокировать доступ к порту при привязке к localhost
: только локальные процессы могут получить к нему доступ, другие хосты не имеют к нему доступа.
Чтобы убедиться, что цены привязаны к localhost
только, а не к внешнему сетевому интерфейсу, выполните эту команду:
netstat -ntl | grep 6423
Если на выходе вы видите что-то вроде 127.0.0.1:6423
тогда вы можете быть уверены, что служба недоступна с других хостов, только для локальных процессов.
Если же вы видите что-то вроде *:6423
или IP-адрес, доступный в сети, тогда услуга доступна, и вам необходимо настроить конфигурацию для привязки к localhost
вместо.