и из упомянутой статьи, чтобы удалить ее sudo pfctl -F all -f /etc/pf.confи отобразить текущие правила переадресации портов,sudo pfctl -s nat
Брэд Паркс
4
имейте в виду, что это решение не добавляет правила, но заменяет любое другое правило, загруженное ранее, включая pf.confфайл
erandros
36
Используется современный способ переадресации портов в Эль-Капитане pf. В приведенном ниже примере все запросы порта 80 перенаправляются на порт 8080 на одном хосте. Пожалуйста, настройте перенаправления в соответствии с вашими потребностями.
Создайте файл привязки org.user.forwarding в /private/etc/pf.anchors
со следующим содержанием и завершающей пустой строкой
rdr pass on lo0 inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
rdr pass on en0 inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
rdr pass on en1 inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
или же
rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
Измените файл /private/etc/pf.conf, но оставьте завершающую пустую строку
Вы должны отключить защиту целостности системы для достижения этой цели. После редактирования файла повторно включите SIP. После перезагрузки Mac будет включен pf (это опция -e).
После обновления системы или обновления некоторые из указанных выше исходных файлов могут быть заменены, и вам придется повторно применить все изменения.
Если вы хотите перенаправить через разные интерфейсы, вы должны включить это в /etc/sysctl.conf:
Почему нет простой команды, чтобы сделать это больше? Это слишком сложно сейчас.
Dr.Knowitall
@klanomath - это работает, и я могу перенаправить порт x на порт y на 127.0.0.1 и т. д., но я не могу перенаправить порты на мой windows vm, работающий на рабочем столе paralles, есть идеи? вот мой вопрос stackoverflow.com/questions/40695684/…
Судхир N
Кажется, не работает при пересылке порта на виртуальную машину, которая работает на рабочем столе Parallels
Sudhir N
@sudhir Вы не успешно связались со своим новым Вопросом. По умолчанию виртуальная машина Parallels не видна в сети в качестве меры безопасности. Вы можете изменить настройку в конфигурации виртуальной машины, чтобы сделать виртуальную машину видимой. И помните, pingэто ваш друг в диагностике сетевых проблем.
Чтобы расширить решение от ответа @ sal-ferrarello, я создал два суперосновных сценария оболочки для включения или отключения перенаправления без ущерба для уже существующих записей в pf.
I. Сначала найдите, какие записи у вас уже есть:
sudo pfctl -s nat
Мой вывод был как:
No ALTQ support in kernel
ALTQ related functions disabled
nat-anchor "com.apple/*" all
rdr-anchor "com.apple/*" all
Нас интересуют реальные записи, поэтому пропустите первые две информационные строки.
II. Создать enable.shскрипт:
#!/bin/sh
echo "
nat-anchor \"com.apple/*\" all
rdr-anchor \"com.apple/*\" all
rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
" | sudo pfctl -ef -
sudo pfctl -s nat
Первые две строки после echo- записи, которые уже были там. Третья строка с новым перенаправлением - в данном случае от 80 до 8080. В конце мы звоним, sudo pfctl -s natчтобы узнать, были ли внесены изменения.
III. Создать disable.shскрипт:
Подобно тому, как enable.shмы создаем скрипт, но без перенаправления 80-> 8080, но с предыдущими уже существующими записями:
#!/bin/sh
echo "
nat-anchor \"com.apple/*\" all
rdr-anchor \"com.apple/*\" all
" | sudo pfctl -ef -
sudo pfctl -s nat
Ответы:
Чтобы перенаправить весь трафик с порта 80 на порт 8080, вы можете ввести следующее из командной строки терминала.
Взято с https://salferrarello.com/mac-pfctl-port-forwarding/
источник
sudo pfctl -F all -f /etc/pf.conf
и отобразить текущие правила переадресации портов,sudo pfctl -s nat
pf.conf
файлИспользуется современный способ переадресации портов в Эль-Капитане
pf
. В приведенном ниже примере все запросы порта 80 перенаправляются на порт 8080 на одном хосте. Пожалуйста, настройте перенаправления в соответствии с вашими потребностями.Создайте файл привязки org.user.forwarding в /private/etc/pf.anchors
со следующим содержанием и завершающей пустой строкой
или же
Измените файл /private/etc/pf.conf, но оставьте завершающую пустую строку
исходный файл:
в
Проанализируйте и проверьте ваш файл привязки, чтобы убедиться в отсутствии ошибок:
Теперь измените /System/Library/LaunchDaemons/com.apple.pfctl.plist из
в
Вы должны отключить защиту целостности системы для достижения этой цели. После редактирования файла повторно включите SIP. После перезагрузки Mac будет включен pf (это опция -e).
В качестве альтернативы вы можете создать свой собственный демон запуска, подобный ответу здесь: Использование сервера 5.0.15 для общего доступа в Интернет БЕЗ общего доступа в Интернет .
После обновления системы или обновления некоторые из указанных выше исходных файлов могут быть заменены, и вам придется повторно применить все изменения.
Если вы хотите перенаправить через разные интерфейсы, вы должны включить это в /etc/sysctl.conf:
источник
ping
это ваш друг в диагностике сетевых проблем.Чтобы расширить решение от ответа @ sal-ferrarello, я создал два суперосновных сценария оболочки для включения или отключения перенаправления без ущерба для уже существующих записей в
pf
.I. Сначала найдите, какие записи у вас уже есть:
sudo pfctl -s nat
Мой вывод был как:
Нас интересуют реальные записи, поэтому пропустите первые две информационные строки.
II. Создать
enable.sh
скрипт:Первые две строки после
echo
- записи, которые уже были там. Третья строка с новым перенаправлением - в данном случае от 80 до 8080. В конце мы звоним,sudo pfctl -s nat
чтобы узнать, были ли внесены изменения.III. Создать
disable.sh
скрипт:Подобно тому, как
enable.sh
мы создаем скрипт, но без перенаправления 80-> 8080, но с предыдущими уже существующими записями:источник