i ze wspomnianego artykułu, aby go usunąć sudo pfctl -F all -f /etc/pf.confi wyświetlić swoje obecne reguły przekierowania portów,sudo pfctl -s nat
Brad Parks
4
należy pamiętać, że to rozwiązanie nie dodaje reguł, ale zastępuje wszelkie inne reguły załadowane wcześniej, w tym pf.confplik
erandros
36
Korzysta z nowoczesnego sposobu przekazywania portów w El Capitan pf. W poniższym przykładzie wszystkie żądania portu 80 są przekazywane do portu 8080 na tym samym hoście. Dostosuj przekierowania do swoich potrzeb.
Utwórz plik kotwicy org.user.forwarding w /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
lub
rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
Zmodyfikuj plik /private/etc/pf.conf, ale pozostaw końcową pustą linię
Aby to zrobić, musisz wyłączyć ochronę integralności systemu. Po edycji pliku można ponownie włączyć SIP. Po ponownym uruchomieniu komputera Mac pf zostanie włączony (jest to opcja -e).
Dlaczego nie ma już prostego polecenia, aby to zrobić? To jest teraz zbyt skomplikowane.
Dr.Knowitall,
@klanomath - to działa i mogę przekierować port x do portu y na 127.0.0.1 itd., ale nie jestem w stanie przekierować portów do mojego vm systemu Windows działającego na pulpicie Paralles, jakiś pomysł? oto moje pytanie stackoverflow.com/questions/40695684/...
Sudhir N,
Wydaje się, że nie działa, gdy przekierowuje port do maszyny wirtualnej działającej na równoległym pulpicie
Sudhir N
@sudhir Nie udało się utworzyć linku do nowego pytania. Domyślnie maszyna wirtualna Parallels nie jest widoczna w sieci ze względów bezpieczeństwa. Możesz zmienić ustawienie w konfiguracji maszyny wirtualnej, aby maszyna wirtualna była widoczna. I pamiętaj, pingjest twoim przyjacielem w diagnozowaniu problemów z siecią.
Aby rozszerzyć rozwiązanie z @ sal-ferrarello odpowiedź, stworzyłem dwa super podstawowy Shell Scripts aby włączyć lub wyłączyć przekierowanie bez narażania już istniejących wpisów w pf.
I. Najpierw znajdź wpisy, które już masz:
sudo pfctl -s nat
Moje wyniki były następujące:
No ALTQ support in kernel
ALTQ related functions disabled
nat-anchor "com.apple/*" all
rdr-anchor "com.apple/*" all
To, co nas interesuje, to faktyczne wpisy, więc odrzuć dwie pierwsze linie informacyjne.
II. Utwórz enable.shskrypt:
#!/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
Pierwsze dwa wiersze po nim echoto wpisy, które już tam były. Trzecia linia zawiera nowe przekierowanie - w tym przypadku od 80 do 8080. Na końcu dzwonimy, sudo pfctl -s nataby sprawdzić, czy zmiany zostały zastosowane.
III. Utwórz disable.shskrypt:
Podobnie jak enable.shmy tworzymy skrypt, ale bez przekierowania 80-> 8080, ale z poprzednimi już istniejącymi wpisami:
#!/bin/sh
echo "
nat-anchor \"com.apple/*\" all
rdr-anchor \"com.apple/*\" all
" | sudo pfctl -ef -
sudo pfctl -s nat
Odpowiedzi:
Aby przekierować cały ruch z portu 80 na port 8080, możesz wpisać następujące polecenie w wierszu polecenia Terminal.
Zaczerpnięte z https://salferrarello.com/mac-pfctl-port-forwarding/
źródło
sudo pfctl -F all -f /etc/pf.conf
i wyświetlić swoje obecne reguły przekierowania portów,sudo pfctl -s nat
pf.conf
plikKorzysta z nowoczesnego sposobu przekazywania portów w El Capitan
pf
. W poniższym przykładzie wszystkie żądania portu 80 są przekazywane do portu 8080 na tym samym hoście. Dostosuj przekierowania do swoich potrzeb.Utwórz plik kotwicy org.user.forwarding w /private/etc/pf.anchors
o następującej treści i końcowym pustym wierszu
lub
Zmodyfikuj plik /private/etc/pf.conf, ale pozostaw końcową pustą linię
oryginalny plik:
do
Analizuj i testuj plik kontrolny, aby upewnić się, że nie ma błędów:
Teraz zmodyfikuj /System/Library/LaunchDaemons/com.apple.pfctl.plist z
do
Aby to zrobić, musisz wyłączyć ochronę integralności systemu. Po edycji pliku można ponownie włączyć SIP. Po ponownym uruchomieniu komputera Mac pf zostanie włączony (jest to opcja -e).
Alternatywnie możesz utworzyć własnego demona uruchamiania podobnego do odpowiedzi tutaj: Używanie serwera 5.0.15 do udostępniania Internetu BEZ udostępniania Internetu .
Po aktualizacji systemu lub aktualizacji niektóre oryginalne pliki powyżej mogły zostać zastąpione i trzeba ponownie zastosować wszystkie zmiany.
Jeśli chcesz przekazywać dalej przez różne interfejsy, musisz włączyć to w /etc/sysctl.conf:
źródło
ping
jest twoim przyjacielem w diagnozowaniu problemów z siecią.Aby rozszerzyć rozwiązanie z @ sal-ferrarello odpowiedź, stworzyłem dwa super podstawowy Shell Scripts aby włączyć lub wyłączyć przekierowanie bez narażania już istniejących wpisów w
pf
.I. Najpierw znajdź wpisy, które już masz:
sudo pfctl -s nat
Moje wyniki były następujące:
To, co nas interesuje, to faktyczne wpisy, więc odrzuć dwie pierwsze linie informacyjne.
II. Utwórz
enable.sh
skrypt:Pierwsze dwa wiersze po nim
echo
to wpisy, które już tam były. Trzecia linia zawiera nowe przekierowanie - w tym przypadku od 80 do 8080. Na końcu dzwonimy,sudo pfctl -s nat
aby sprawdzić, czy zmiany zostały zastosowane.III. Utwórz
disable.sh
skrypt:Podobnie jak
enable.sh
my tworzymy skrypt, ale bez przekierowania 80-> 8080, ale z poprzednimi już istniejącymi wpisami:źródło