Ich habe mein Kabelmodem (10.0.0.1) an meinen iMac (10.0.0.36) und meinen iMac (10.0.0.36) mit einer (bridge100 192.168.2.1) Internet Shared IP an meinen Debian-Rechner (192.168.2.34) und alles davon funktioniert einwandfrei. Ich möchte jetzt Port 80 aus dem Internet über die Bridge auf meinem iMac auf meinen Debian-Rechner weiterleiten ...
10.0.0.1:80 <-> 10.0.0.36:8080 <-> 192.168.2.1:8080 <-> 192.168.2.34:80
Ich habe den folgenden Link gefunden , der mich zu führte
rdr on bridge100 inet proto tcp from any to 10.0.0.36 port = 8080 -> 192.168.2.34 port 80
Es funktioniert jedoch nicht ... Jetzt gehen sie in dem Link zu localhost, und ich habe diesen Link gefunden , der besagt, dass ich möglicherweise so etwas brauche
pass out route-to (bridge100 192.168.2.1) from any to 10.0.0.36
Aber ich konnte pfctl
die obige Zeile nicht richtig analysieren
Irgendwelche Ideen, wie ich von 10.0.0.36:80 <-> 192.168.2.1 <-> 192.168.2.34:80 weiterleiten kann?
Bearbeiten: Das Kabelmodem / Router ist ein TG852G von Xfinity ...
Bearbeiten: pfdump
r scrub-anchor "com.apple/*" all fragment reassemble
r anchor "com.apple/*" all
r anchor "usr.home/*" all
n nat-anchor "com.apple/*" all
n rdr-anchor "com.apple/*" all
A com.apple
A com.apple.internet-sharing
A usr.home
com.apple r anchor "200.AirDrop/*" all
com.apple r anchor "250.ApplicationFirewall/*" all
com.apple A com.apple/200.AirDrop
com.apple A com.apple/250.ApplicationFirewall
com.apple/200.AirDrop A com.apple/200.AirDrop/Bonjour
com.apple/200.AirDrop/Bonjour r pass in on p2p0 inet6 proto udp from any to any port = 5353 keep state
com.apple/200.AirDrop/Bonjour r pass out on p2p0 proto tcp all flags any keep state
com.apple.internet-sharing r scrub-anchor "base_v4" all fragment reassemble
com.apple.internet-sharing r anchor "base_v4" all
com.apple.internet-sharing n nat-anchor "base_v4" all
com.apple.internet-sharing n rdr-anchor "base_v4" all
com.apple.internet-sharing A com.apple.internet-sharing/base_v4
com.apple.internet-sharing/base_v4 r scrub on en1 all no-df fragment reassemble
com.apple.internet-sharing/base_v4 r scrub on bridge100 all no-df max-mss 1460 fragment reassemble
com.apple.internet-sharing/base_v4 r scrub on bridge100 proto esp all no-df fragment reassemble
com.apple.internet-sharing/base_v4 r pass on en1 all flags any keep state
com.apple.internet-sharing/base_v4 r pass on en1 proto esp all no state
com.apple.internet-sharing/base_v4 r pass on bridge100 all flags any keep state rtable 7
com.apple.internet-sharing/base_v4 n nat on en1 inet from 192.168.2.0/24 to any -> (en1:0) extfilter ei
com.apple.internet-sharing/base_v4 n no nat on bridge100 inet from 192.168.2.1 to 192.168.2.0/24
com.apple.internet-sharing/base_v4 n rdr on bridge100 inet proto tcp from 192.168.2.0/24 to any port = 21 -> 127.0.0.1 port 8021
usr.home r anchor "SSH" all
usr.home A usr.home/SSH
usr.home/SSH n rdr on en1 inet proto tcp from any to 10.0.0.36 port = 8080 -> 192.168.2.34 port 80
Der richtige Befehl zum Umleiten des HTTP-Verkehrs in Ihrem Fall lautet:
echo "rdr on $ext inet proto tcp from any to 10.0.0.36 port = 80 -> 192.168.2.34 port 80" | sudo pfctl -a com.apple/HTTP -f -
Mit $ext: die Schnittstelle des mit dem Router/Modem verbundenen iMac (wahrscheinlich entweder en0 oder en1). Auf der eingehenden Schnittstelle und dem Datenverkehr wird eine Umleitung durchgeführt! Daher rdr on bridge100 ...
macht es hier keinen Sinn: Sie erwarten keinen HTTP-Verkehr mit dem Ziel 192.168.2.34 von der Bridge100 zum Netzwerk hinter derselben Bridge100.
Der obige Befehl verwendet den temporären Unteranker com.apple/HTTP und ist nach einem Neustart verschwunden.
Wenn Sie es dauerhaft aktivieren möchten, erstellen Sie einen separaten Anker, wie in dieser Antwort beschrieben: pfctl - Howto Add an Anchor and Make It Active / Load It oder hier: Port Forwarding on Mac Pro with macOS Sierra .
A pass out route-to ...
ist nur erforderlich, wenn Sie ausgehenden Datenverkehr vom iMac umleiten möchten.
Theoretisch wird auf dem Router/Modem (TG852G) eine zusätzliche statische Route benötigt:
route to 192.168.2.0/24 via 10.0.0.36
Hier (allerdings anderer Router) ging es auch ohne.
Double-NAT-Lösungen werden in SOHO-Umgebungen im Allgemeinen nicht empfohlen, und ich schlage vor, den Debian-Linux-Server direkt an einen der Ethernet-Ports des Routers/Modems oder eines zwischengeschalteten Switches anzuschließen.
Jeffrey L. Roberts
klanomath
Jeffrey L. Roberts