Sono passato a macOS Sierra e non riesco a far funzionare il port forwarding per localhost (http e https) usando l'interfaccia loopback lo0. Sto usando pf e seguendo le istruzioni esistenti per El Capitan ma senza successo:
Fondamentalmente, ho configurato ifconfig:
sudo ifconfig lo0 10.0.0.1 alias
Quindi creo un file% ancorepf
: /etc/pf.anchors/myorganization
rdr pass on lo0 inet proto tcp from any to 10.0.0.1 port = 80 -> 127.0.0.1 port 3000
rdr pass on lo0 inet proto tcp from any to 10.0.0.1 port = 443 -> 127.0.0.1 port 7000
Aggiungi un riferimento ad esso in pf.conf (dovevi disabilitare e riabilitare SIP per farlo):
rdr-anchor "myorganization"
...
load anchor "myorganization" from "/etc/pf.anchors/myorganization"
Controllo le ancore:
sudo pfctl -vnf /etc/pf.anchors/myorganization
e il risultato sembra buono:
...
TRANSLATION RULES:
nat-anchor "com.apple/*" all
rdr-anchor "com.apple/*" all
rdr-anchor "myorganization" all
...
Li ho abilitati:
sudo pfctl -evf /etc/pf.conf
Ho aggiunto localhost
al mio / etc / hosts
127.0.0.1 localhost
Ma quando sfoglio a http://localhost
ottengo ERR_CONNECTION_REFUSED
. Se sfoglio a http://localhost:3000
il sito funziona correttamente.
Aggiorna Ho attivato la registrazione pf e ho provato senza l'alias 10.0.0.1:
rdr pass log (all) on lo0 inet proto tcp from any to any port 80 -> 127.0.0.1 port 3000
rdr pass log (all) on lo0 inet proto tcp from any to any port 443 -> 127.0.0.1 port 7000
E la prima volta che ho colpito link , vedo il registro:
00:00:00.000000 rule 4294967295/8(ip-option): pass in on en0: (tos 0x0, ttl 1, id 59674, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
192.168.0.106 > 224.0.1.60: igmp v2 report 224.0.1.60
00:00:00.204784 rule 4294967295/8(ip-option): pass in on en0: (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto IGMP (2), length 32, options (RA))
192.168.0.3 > 224.0.0.252: igmp v2 report 224.0.0.252
00:00:00.093232 rule 4294967295/8(ip-option): pass out on en0: (tos 0x0, ttl 1, id 11047, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
192.168.0.77 > 224.0.0.251: igmp v2 report 224.0.0.251
00:00:00.111608 rule 4294967295/8(ip-option): pass in on en0: (tos 0x0, ttl 1, id 60629, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
192.168.0.106 > 239.255.255.250: igmp v2 report 239.255.255.250
00:00:00.102426 rule 4294967295/8(ip-option): pass in on en0: (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto IGMP (2), length 32, options (RA))
192.168.0.3 > 224.0.0.251: igmp v2 report 224.0.0.251
00:00:00.000120 rule 4294967295/8(ip-option): pass in on en0: (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto IGMP (2), length 48, options (RA))
192.168.0.3 > 224.0.0.22: igmp v3 report, 2 group record(s) [gaddr 224.0.0.251 is_ex, 0 source(s)] [gaddr 224.0.0.252 is_ex, 0 source(s)]
I successi successivi a localhost non aggiungono nulla ai log e vedo che l'interfaccia loopback lo0 non compare in quel log, solo en0 (Ethernet), quindi non sono convinto che questa uscita di log sia rilevante per il problema. Ho anche provato ad aggiungere en0 e en1 al file /etc/pf.anchors/myorganization
ma gli stessi risultati.