Проблема с отключением брандмауэра в OS X El Capitan 10.11.2

Я пытаюсь сделать простой веб-сервер на своем компьютере доступным для однорангового узла в той же сети, но без особого успеха. У меня возникла проблема, из-за которой мой брандмауэр постоянно включается или не выключается (не знаю, что именно).

Я захожу в «Системные настройки» -> «Безопасность и конфиденциальность» -> «Брандмауэр», разблокирую настройки и нажимаю «Отключить брандмауэр». Кажется, это работает. Я нажимаю на замок в левом нижнем углу, чтобы сохранить настройки, а затем выхожу из Системных настроек. Но сканирование портов показывает, что ни один из моих портов по-прежнему не доступен для входящих подключений. Затем я возвращаюсь к настройкам брандмауэра, и он показывает, что мой брандмауэр снова включен, хотя я только что его отключил.


Что я пробовал до сих пор:

  • Я искал других с этой проблемой, но ничего не нашел.
  • Я также перезагрузил свою машину, но проблема не устранена.
  • Согласно некоторым результатам Google, я выполнил sudo defaults write /Library/Preferences/com.apple.alf globalstate -int 0в терминале, но defaults read /Library/Preferences/com.apple.alf globalstateвсе равно возвращает 1 (включено).

Как отключить брандмауэр?

РЕДАКТИРОВАТЬ: я думаю, что это может быть связано с тем, что эти настройки брандмауэра были установлены на моем предыдущем Macbook Pro, и с тех пор я обновился до более нового macbook с помощью Time Machine.

Что происходит, когда вы запускаете веб-сервер? Вам должно быть предложено один раз разрешить соединения. Это работает для одного вызова? Если нет, вам может потребоваться исключить профили конфигурации/MDM, если вы не уверены, что полностью управляете Mac. Писать defaultsуже недостаточно, но все мои машины учитывают изменение графического интерфейса, когда вы отключаете брандмауэр.
@bmike Это метеорное приложение, и я много раз запускал метеор. Я не помню, побуждало ли меня когда-либо принимать входящие соединения, как это делает большинство процессов, или то, что я сказал. У меня есть одно приложение node, указанное как блокирующее входящие соединения в диалоговом окне «Параметры брандмауэра ...». Странно, однако, что изменение параметра «Разрешить входящие подключения» не сохраняет, так же как изменение состояния включения / выключения брандмауэра не сохраняет. Бьюсь об заклад, это как-то связано с тем фактом, что я установил эти настройки на своем предыдущем Mac и с тех пор обновил его с помощью машины времени.

Ответы (1)

Я собираюсь дать краткий ответ о том, как я буду устранять эту проблему, поскольку это не предполагаемое поведение.

  1. Сделайте резервную копию вашего Mac — на всякий случай.
  2. Попробуйте простой веб-сервер Python в terminal.app

    python -m SimpleHTTPServer

Вы должны увидеть текст, например: Serving HTTP on 0.0.0.0 port 8000 ...и получить всплывающее окно, например:

введите описание изображения здесь

Если вы этого не сделаете, возможно, удалите все настройки брандмауэра и перезапустите Mac после завершения резервного копирования.

sudo -H mv /Library/Preferences/com.apple.alf.plist ~/Desktop

Таким образом, вы можете проверить/переместить файл настроек обратно, если хотите. Если вы по-прежнему не можете получить всплывающее окно брандмауэра после перезагрузки, перепроверьте системные настройки брандмауэра и, при необходимости, посмотрите, может ли у вас быть профиль конфигурации, который может применять некоторые параметры брандмауэра, которые вы не контролируете.

введите описание изображения здесь

Если у вас нет значка профиля, вы, вероятно, можете это исключить.

Спасибо! Я получаю всплывающее окно с базовым сервером Python (хотя мне пришлось использовать исполняемый файл Python 2.7). Что интересно, однако, так это то, что если я нажму «ОК», а затем уничтожу процесс и запущу его снова, я снова получу приглашение (я думаю, что это не должно работать таким образом, по крайней мере, в том смысле, что он должен помнить, что я уже разрешил ему сеть доступ). Может быть, это связано с возможностью чтения/записи файла plist, поскольку он был создан моим пользователем на предыдущем Mac? Я думаю, что это тот же самый «пользователь», так что, может быть, и нет. Каталог показывает -rw-r--r--@права доступа к этому файлу.
У меня нет значка профиля. Сейчас я сделаю резервную копию машины времени, а затем попробую удалить plist и перезапустить.
Так что я думаю, что решил проблему. Что в итоге сработало, так это перезапустить в режиме восстановления, выполнить csrutil disableв терминале, снова перезапустить, а затем sudo chflags nouchg /Library/Preferences/com.apple.alf.plistразрешить мне редактировать его. Не уверен, какой шаг помог, но теперь я могу включать и выключать брандмауэр в Системных настройках (и, к счастью, мне не пришлось терять все настройки брандмауэра). Спасибо за вашу помощь! Если вы измените свой ответ, включив в него этапы отладки, которые я упомянул, которые сработали, я обязательно отмечу это.