OSX 10.11 (El Capitan beta) Поведение pf.conf изменилось?

3195
Tyler Sebastian

Я вроде ожидал что-то сломать, но ...

Мои правила пересылки pf, которые ранее работали на Yosemite, больше не работают на 10.11.

Мое правило пересылки следующее: rdr pass on lo0 inet proto tcp from any to any port = 80 -> 127.0.0.1 port 8080

Я могу получить доступ к контенту, перейдя localhost:8080, но не только к localhost,ожидаемому (и предыдущему) поведению.

Они упоминали где-то изменения в утилите pf? Что я должен сделать, чтобы сделать эту работу?

6
Вы передаете правило pf в `pfctl`? Если да, можете ли вы обновить свой вопрос, чтобы включить этот пример. Cory 8 лет назад 0
Я столкнулся с той же проблемой после обновления до 10.11. Я следовал [этому совету] (https://echo.co/blog/os-x-1010-yosemite-local-development-environment-apache-php-and-mysql-homebrew) для пересылки запросов порта 80 на 8080 с помощью следующее: `echo" rdr передает proto tcp с любого на любой порт -> 127.0.0.1 порт 8080 "| pfctl -a "com.apple/260.HttpFwdFirewall" -Ef` Spencer Williams 8 лет назад 0
У меня та же проблема ... Но я не могу заставить ее работать. Вы только что вставили эту команду в терминал? Я получаю эту ошибку: `pfctl: опция требует аргумента - f` http://stackoverflow.com/questions/31517368/using-pfctl-on-mac-os-10-11-el-capitan-to-forward- порты? noredirect = 1 # comment51030050_31517368 Dafen 8 лет назад 0
@Dafen команда -f требует файл. Я думаю, что если вы отбросите этот аргумент, ошибка исчезнет. Tyler Sebastian 8 лет назад 0
^ следуя вышесказанному, команда @williamcwilliams не работает для меня. Tyler Sebastian 8 лет назад 0
Я обновился до бета-версии 4, и она снова работает. Тот же файл, что и на Йосемити. Я разместил свой конфиг здесь: http://stackoverflow.com/questions/31517368/using-pfctl-on-mac-os-10-11-el-capitan-to-forward-ports/31570667#31570667 Dafen 8 лет назад 0

1 ответ на вопрос

1
Cory

This only applies to OSX 10.11 - El Capitan - Public Beta 1

In the latest 10.11 beta, 127.0.0.1 is blocked. The solution? Use 127.0.0.2. To do this:

First add 127.0.0.2 to the loopback alias sudo ifconfig lo0 alias 127.0.0.2 up

Modify your pf rule to use the the new alias. rdr pass proto tcp from any to any port 80 -> 127.0.0.2 port 8080

For @williamcwilliams (in comments above), just drop the anchor and it'll work.

echo "rdr pass proto tcp from any to any port -> 127.0.0.2 port 8080" | pfctl -Ef - <-- Be sure to add this last tick, you're piping in STDIN)

Почему 127.0.0.1 заблокирован? Tyler Sebastian 8 лет назад 0
Вероятно, ошибка в бета-версии. Cory 8 лет назад 0
Снова работает с 10.11 Beta 4 =) Dafen 8 лет назад 1