Me cambié a macOS Sierra y no soy capaz de conseguir el reenvío de puertos de trabajo para localhost (http y https), usando la interfaz de bucle invertido de lo0. Yo estoy usando la pf y siguientes del vigente instrucciones para El Capitán, pero sin éxito:
http://apple.stackexchange.com/a/230331/81267, http://blog.brianjohn.com/forwarding-ports-in-os-x-el-capitan.html
Básicamente, tengo que instalar ifconfig:
sudo ifconfig lo0 10.0.0.1 alias
Entonces puedo crear un pf
anclajes de archivo: /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
Agregar una referencia a él en pf.conf (tuve que deshabilitar y volver a habilitar SIP para hacer esto):
rdr-anchor "myorganization"
...
load anchor "myorganization" from "/etc/pf.anchors/myorganization"
I comprobación de 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
...
He habilitado:
sudo pfctl -evf /etc/pf.conf
He añadido localhost
de mi /etc/hosts
127.0.0.1 localhost
Pero cuando me vaya a http://localhost
I get ERR_CONNECTION_REFUSED
. Si me vaya a http://localhost:3000
el sitio está funcionando bien.
Actualización Me volví en pf de registro y juzgado sin la 10.0.0.1 alias:
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 me golpeó http://localhostveo el log:
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)]
Posteriores visitas a localhost no añaden nada a los registros y veo que la interfaz de bucle invertido de lo0 no mostrar en ese registro, sólo en0 (Ethernet), así que no estoy convencido de que este registro de salida es relevante para el problema. También probé agregando en0 y en1 a la /etc/pf.anchors/myorganization
archivo, pero con el mismo resultado.