Ich muss jede Internetseite an meine lokale Adresse weiterleiten, dh 127.0.0.1 mit OS X.
Ich habe folgenden Befehl versucht, aber er hat keine Wirkung:
echo " rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080 " | sudo pfctl -ef -
Ich habe versucht, die genaue Bedeutung der obigen Zeile zu recherchieren, aber ich kann keine gute Erklärung finden. Wie führe ich diese Weiterleitung durch?
Bearbeiten 1 :
Nehmen wir an, ein Benutzer gibt "www.google.com" in den Browser ein; das sollte sich so auswirken -->
Der Benutzer sollte auf meine lokale Seite umgeleitet werden, die sich unter 127.0.0.1:8080 befindet
Wenn ich jetzt 127.0.0.1:8080 drücke, sehe ich mein lokales Portal.
Aber ich möchte, dass es nach der Weiterleitung von "Google.com" angezeigt wird.
Ich schreibe folgende Erklärung. Aber sie zeigen keinerlei Wirkung.
rdr pass on lo0 proto {tcp, udp} from any to any port 80 -> 127.0.0.1 port 7894
pass out log(all) on em0 route-to lo0 inet proto {tcp, udp} from any to any port 80 keep state
Ich schreibe die obigen Zeilen in meine Ankerdatei und füge Anker zu pf.conf mit rdr-anchor hinzu
Wenn ich Ihre Frage und Ihren Kommentar richtig verstehe, versuchen Sie, so etwas wie ein lokales Captive-Portal zu erreichen.
pf
Dies kann nicht mit und einer einfachen Weiterleitung erfolgen . Es sind viel mehr Dinge und Konfigurationen erforderlich. Hier (der Link zu bsdguides.org in der Github-Readme funktioniert nicht: richtiger Link ) findest du ein Beispiel, wie man das in OpenBSD macht. Die dortige Lösung kann unter Umständen an OS X angepasst werden.
Die Regel rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
macht Folgendes:
rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
| | | |
| | | #from any IP (all source IPs) to any IP (all destination IPs of the local machine)
| | | from any to any
| | #IPv4 Protocol TCP
| | inet proto tcp
| #allow
| pass
#redirect from port 80 to localhost:8080
rdr port 80 -> 127.0.0.1 port 8080
Oder: Jeder eingehende ( rdr
leitet nur eingehende Pakete um) IPv4-TCP-Verkehr (auf jeder Schnittstelle) an Port 80 von jeder IP zu jeder IP (auf jeder Schnittstelle) des lokalen Computers wird weitergeleitet und an 127.0.0.1:8080 umgeleitet.
Die Regel leitet Anfragen von einem lokalen Clientcomputer für google.com:80 (z. B. 216.58.201.206:80) oder 175.68.9.102:80 nicht an 127.0.0.1:80 weiter, da keine dieser IPs eine IP des lokalen ( www-)Server-Rechner noch weiß der lokale (www-)Server von den Anfragen.
Dies gilt nicht für den ausgehenden Datenverkehr des lokalen Computers, da dies kein eingehender Datenverkehr ist. Sie müssen diesen Verkehr zuerst loopen:
rdr pass on lo0 proto {tcp, udp} from any to any port 80 -> 127.0.0.1 port 7894 pass out log(all) on em0 route-to lo0 inet proto {tcp, udp} from any to any port 80 keep state
aber es funktioniert nicht
techraf
Benutzer3439894
PrafulD
techraf
google.com
leitet Sie sofort auf https um und umgeht Ihre Umleitung, wenn Sie die Umleitung für Port 443 konfigurieren, erhalten Sie einen Zertifikatfehler im Browser. Ist es das, was Sie erreichen wollen?klanomath
PrafulD
klanomath
PrafulD