6 votos

El Reenvío de puertos en macOS Sierra

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.

6voto

klanomath Puntos 19587

Mi respuesta a la pregunta: ¿Cuál es la forma moderna de hacer el reenvío de puertos para El Capitan? (redirigir el puerto 80 y 8080) sigue siendo válida.

Usted tiene varias fricciones/errores de configuración en la configuración:

  • No hay necesidad de establecer un adicional de direcciones de red (es decir, 10.0.0.1) para lo0 si usted no tiene un segundo de http/https de host.
  • Una redirección:

    rdr pass on lo0 inet proto tcp from any to 10.0.0.1 port = 80 -> 127.0.0.1 port 3000
    

    sólo redirigir una petición para 10.0.0.1:80 a 127.0.0.1:3000.

    Una solicitud para localhost:80 (que se traduce en 127.0.0.1:80 y no 10.0.0.1:80) no será redirigido porque no es adecuado rdr ... línea y obtendrá un error de conexión.

  • Incluso la adición de la línea 10.0.0.1 localhost a /etc/hosts no va a salvar el problema porque localhost parece ser codificado a 127.0.0.1.

Para obtener su redirección de trabajo descargar pf.conf con sudo pfctl -d. A continuación, echa el ancla y pf.conf:

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

...
scrub-anchor "com.apple/*"
nat-anchor "com.apple/*"
rdr-anchor "com.apple/*"
rdr-anchor "myorganization"
dummynet-anchor "com.apple/*"
anchor "com.apple/*"
load anchor "com.apple" from "/etc/pf.anchors/com.apple"
load anchor "myorganization" from "/etc/pf.anchors/myorganization"

Luego de analizar/check myorganization con sudo pfctl -vnf /etc/pf.anchors/myorganization de carga y pf.conf con sudo pfctl -evf /etc/pf.conf.

En algunos casos puede que tenga que agregar una línea adicional:

::1     127.0.0.1 

a su archivo /etc/hosts.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X