Как открыть определенный порт в брандмауэре? Я не могу использовать «разрешить соединения из приложения», так как хочу открыть порт для Jenkins, которого нет в списке ...
ipfw
актуальным? apple.stackexchange.com/questions/33871/...
Как открыть определенный порт в брандмауэре? Я не могу использовать «разрешить соединения из приложения», так как хочу открыть порт для Jenkins, которого нет в списке ...
ipfw
актуальным? apple.stackexchange.com/questions/33871/...
Ответы:
Apple OS X Mavericks содержит три брандмауэра. Прежде всего, брандмауэр прикладного уровня, который можно настроить с помощью системных настроек. Но есть также ipfw, межсетевой экран фильтрации пакетов, такой как netfilter / iptables в GNU / Linux и pf (FreeBSD / OpenBSD).
Вы можете настроить ipfw с помощью командной строки или с помощью графического интерфейса, такого как free / libre WaterRoof .
Вы можете начать с команды ipfw, например:
sudo ipfw add 31010 allow tcp from any to any dst-port 8080
У меня была такая же проблема под OS X Yosemite (10.10.3). Нашел этот пост в блоге, который содержит четкие инструкции. Мы больше не можем использовать ipfw, так как он устарел. Вместо этого используйте pfctl, который, к сожалению, не имеет хорошего способа командной строки, чтобы сказать ему, чтобы открыть порт. Вместо этого вам необходимо:
# Откройте порт 8080 для TCP на всех интерфейсах
перейти в прото TCP с любого на любой порт 8080
sudo pfctl -f /etc/pf.conf
Если вам нужно открыть порт udp, измените tcp
на udp
, если вам нужно оба, добавьте вторую строку. Дополнительные детали можно найти в man pf.conf
.
Также убедитесь, что ваш сервер прослушивает фактический интерфейс, через который вы хотите, чтобы он был доступен (или все интерфейсы, использующие 0.0.0.0
или ::0
), а не localhost ( 127.0.0.1
или ::1
).
-n
в pfctl проверяет правила и не загружает их. Используйте только -f /etc/pf.conf
для загрузки правил. Убедитесь, что они загружены pfctl -sr
. Тем не менее, хотя правила pfctl необходимы, сами по себе они не являются достаточными для предоставления доступа к El Capitan через данный порт.
localhost
); каждый получает имя хоста $ hostname
в командной строке. Кроме того, вместо перезагрузки можно перезагрузить брандмауэр, перейдя в «Системные настройки» -> «Безопасность и конфиденциальность» -> «Брандмауэр» -> «Выключить брандмауэр», а затем включите «Брандмауэр».
ipfw устарела Apple. Mountain Lion и позже используйте pfctl.
Вот один вкладыш, вместо того, чтобы требовать от пользователя возиться с Vim. Полезно для автоматизации.
sed -i '' -e '$a\pass in proto tcp from any to any port 8080' /etc/pf.conf; pfctl -vnf /etc/pf.conf
Или альтернатива для пользователей Linux
sed -i -e '$a\pass in proto tcp from any to any port 8080' /etc/pf.conf; pfctl -vnf /etc/pf.conf
Просто убедитесь, что вы изменили 8080
в примере то, что вы имеете в виду. Поменяйте местами tcp с udp, если хотите.