He cambiado a macOS Sierra y no puedo hacer que el reenvío de puertos funcione para localhost (http y https) mediante la interfaz de bucle invertido lo0. Estoy usando pf y sigo las instrucciones existentes para El Capitán pero sin éxito:
Básicamente, instalo ifconfig:
sudo ifconfig lo0 10.0.0.1 alias
Luego creo un archivo de anclas pf
: /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
Agregue una referencia a él en pf.conf (tuvo que deshabilitar y luego volver a habilitar SIP para hacer esto):
rdr-anchor "myorganization"
...
load anchor "myorganization" from "/etc/pf.anchors/myorganization"
Pruebo los anclajes:
sudo pfctl -vnf /etc/pf.anchors/myorganization
y el resultado se ve bien:
...
TRANSLATION RULES:
nat-anchor "com.apple/*" all
rdr-anchor "com.apple/*" all
rdr-anchor "myorganization" all
...
Los he habilitado:
sudo pfctl -evf /etc/pf.conf
He agregado localhost
a mi / etc / hosts
127.0.0.1 localhost
Pero cuando navego a http://localhost
obtengo ERR_CONNECTION_REFUSED
. Si navego a http://localhost:3000
, el sitio funciona bien.
Actualizar Activé el registro de pf y probé sin el 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
Y la primera vez que presioné enlace , veo el 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)]
Los accesos posteriores a localhost no agregan nada a los registros y veo que la interfaz de loopback lo0 no se muestra en ese registro, solo en0 (Ethernet), por lo que no estoy convencido de que la salida del registro sea relevante para el problema. También intenté agregar en0 y en1 al archivo /etc/pf.anchors/myorganization
pero con los mismos resultados.