Tengo un servidor http simple que se ejecuta con un index.html
, que estoy tratando de enviar a otro dispositivo a través de LAN. Puedo acceder al sitio web en la computadora host usando localhost y se registra como un HTTP 200 exitoso. Aunque cuando intento acceder con el otro dispositivo cliente, el servidor http no muestra ninguna solicitud y el dispositivo se agota.
Creo que un firewall en mi Mac está bloqueando la conexión, pero escuché que hay múltiples firewalls dentro de una Mac y es posible que sigan cambiándolo con cada actualización del sistema operativo.
p.ej
Hilo que muestra que el sistema operativo tiene varios cortafuegos en su lugar
El cortafuegos puede cambiar en la actualización del sistema operativo
Registros de firewall ahora desaparecidos (no se puede ver appfirewall.log)
Así que ahora estoy usando macOS Mojave y tengo muy poca experiencia en el uso de herramientas de red para verificar lo que sucede en mi red (así que disculpe mi ignorancia).
¿Qué cortafuegos usa macOS Mojave?
¿Dónde puedo encontrar los registros (para poder ver si la solicitud http de mi otro dispositivo fue denegada)?
¿Hay alguna otra cosa que no sepa que pueda detener mi solicitud http? Si es así, ¿qué herramientas puedo usar para verificar?
--------- Detalle Adicional ---------
---- Más detalles -----
Gracias Francisco por tu respuesta.
A continuación se muestra mi tabla de enrutamiento
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.0.1 UGSc 147 0 en0
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 9 277366 lo0
169.254 link#5 UCS 0 0 en0 !
192.168.0 link#5 UCS 3 0 en0 !
192.168.0.1/32 link#5 UCS 2 0 en0 !
192.168.0.1 b0:c2:87:51:37:e7 UHLWIir 58 52 en0 583
192.168.0.2 link#5 UHLWIi 1 152 en0 !
192.168.0.13 0:71:47:32:79:99 UHLWI 0 81 en0 285
192.168.0.19/32 link#5 UCS 1 0 en0 !
192.168.0.19 80:e6:50:a:23:64 UHLWI 0 2 lo0
192.168.0.255 ff:ff:ff:ff:ff:ff UHLWbI 0 1 en0 !
224.0.0/4 link#5 UmCS 3 0 en0 !
224.0.0.251 1:0:5e:0:0:fb UHmLWI 0 0 en0
224.6.7.8 1:0:5e:6:7:8 UHmLWI 0 8 en0
239.255.255.250 1:0:5e:7f:ff:fa UHmLWI 0 149 en0
255.255.255.255/32 link#5 UCS 1 0 en0 !
255.255.255.255 ff:ff:ff:ff:ff:ff UHLWbI 0 1 en0 !
Internet6:
Destination Gateway Flags Netif Expire
default fe80::b2c2:87ff:fe51:37e7%en0 UGc en0
default fe80::%utun0 UGcI utun0
default fe80::%utun1 UGcI utun1
::1 ::1 UHL lo0
2606:6000:609b:1200::/64 link#5 UC en0
2606:6000:609b:1200::4 80:e6:50:a:23:64 UHL lo0
2606:6000:609b:1200:14c1:e8b6:1ff0:8ef1 80:e6:50:a:23:64 UHL lo0
2606:6000:609b:1200:81e5:bdd5:155e:a21d 80:e6:50:a:23:64 UHL lo0
fe80::%lo0/64 fe80::1%lo0 UcI lo0
fe80::1%lo0 link#1 UHLI lo0
fe80::%en0/64 link#5 UCI en0
fe80::14d6:6308:5edd:9f41%en0 80:e6:50:a:23:64 UHLI lo0
fe80::b2c2:87ff:fe51:37e7%en0 b0:c2:87:51:37:e7 UHLWIir en0
fe80::%awdl0/64 link#7 UCI awdl0
fe80::74f1:5eff:fefa:3028%awdl0 76:f1:5e:fa:30:28 UHLI lo0
fe80::%utun0/64 fe80::1d55:b5dc:3cd5:864%utun0 UcI utun0
fe80::1d55:b5dc:3cd5:864%utun0 link#11 UHLI lo0
fe80::%utun1/64 fe80::df6e:b1c3:74ea:f75c%utun1 UcI utun1
fe80::df6e:b1c3:74ea:f75c%utun1 link#12 UHLI lo0
ff01::%lo0/32 ::1 UmCI lo0
ff01::%en0/32 link#5 UmCI en0
ff01::%awdl0/32 link#7 UmCI awdl0
ff01::%utun0/32 fe80::1d55:b5dc:3cd5:864%utun0 UmCI utun0
ff01::%utun1/32 fe80::df6e:b1c3:74ea:f75c%utun1 UmCI utun1
ff02::%lo0/32 ::1 UmCI lo0
ff02::%en0/32 link#5 UmCI en0
ff02::%awdl0/32 link#7 UmCI awdl0
ff02::%utun0/32 fe80::1d55:b5dc:3cd5:864%utun0 UmCI utun0
ff02::%utun1/32 fe80::df6e:b1c3:74ea:f75c%utun1 UmCI utun1
--PF--
pfctl -vvv -s all
=>
No ALTQ support in kernel
ALTQ related functions disabled
TRANSLATION RULES:
@0 nat-anchor "com.apple/*" all
[ Owner : nil Priority : 0 ]
[ Evaluations: 1003456 Packets: 0 Bytes: 0 States: 0 ]
[ Inserted: uid 0 pid 89 ]
@0 rdr-anchor "com.apple/*" all
[ Owner : nil Priority : 0 ]
[ Evaluations: 2053469 Packets: 0 Bytes: 0 States: 0 ]
[ Inserted: uid 0 pid 89 ]
FILTER RULES:
@0 scrub-anchor "com.apple/*" all fragment reassemble
[ Owner : nil Priority : 0 ]
[ Evaluations: 3848799 Packets: 0 Bytes: 0 States: 0 ]
[ Inserted: uid 0 pid 89 ]
@0 anchor "com.apple/*" all
[ Owner : nil Priority : 0 ]
[ Evaluations: 2053469 Packets: 0 Bytes: 0 States: 0 ]
[ Inserted: uid 0 pid 89 ]
DUMMYNET RULES:
@0 dummynet-anchor "com.apple/*" all
[ Owner : nil Priority : 0 ]
[ Evaluations: 0 Packets: 0 Bytes: 0 States: 0 ]
[ Inserted: uid 0 pid 89 ]
INFO:
Status: Enabled for 1 days 15:36:27 Debug: Urgent
Hostid: 0x995c6c3b
Checksum: 0x79872649e3817f920d20509d6509b712
State Table Total Rate
current entries 0
searches 2551721 17.9/s
inserts 0 0.0/s
removals 0 0.0/s
Source Tracking Table
current entries 0
searches 0 0.0/s
inserts 0 0.0/s
removals 0 0.0/s
Counters
match 2053469 14.4/s
bad-offset 0 0.0/s
fragment 0 0.0/s
short 0 0.0/s
normalize 0 0.0/s
memory 0 0.0/s
bad-timestamp 0 0.0/s
congestion 0 0.0/s
ip-option 1451 0.0/s
proto-cksum 0 0.0/s
state-mismatch 0 0.0/s
state-insert 0 0.0/s
state-limit 0 0.0/s
src-limit 0 0.0/s
synproxy 0 0.0/s
dummynet 0 0.0/s
Limit Counters
max states per rule 0 0.0/s
max-src-states 0 0.0/s
max-src-nodes 0 0.0/s
max-src-conn 0 0.0/s
max-src-conn-rate 0 0.0/s
overload table insertion 0 0.0/s
overload flush states 0 0.0/s
TIMEOUTS:
tcp.first 120s
tcp.opening 30s
tcp.established 86400s
tcp.closing 900s
tcp.finwait 45s
tcp.closed 90s
tcp.tsdiff 30s
udp.first 60s
udp.single 30s
udp.multiple 60s
icmp.first 20s
icmp.error 10s
grev1.first 120s
grev1.initiating 30s
grev1.estblished 1800s
esp.first 120s
esp.estblished 900s
other.first 60s
other.single 30s
other.multiple 60s
frag 30s
interval 10s
adaptive.start 6000 states
adaptive.end 12000 states
src.track 0s
LIMITS:
states hard limit 10000
app-states hard limit 10000
src-nodes hard limit 10000
frags hard limit 5000
tables hard limit 1000
table-entries hard limit 200000
OS FINGERPRINTS:
696 fingerprints loaded
Notas de la interfaz:
No pude ejecutar el comando completo para
for DUDE in $( ifconfig -lu ); do ifconfig ${DUDE} | grep -q “192.168.0.19” && echo ${DUDE};
Comandos que se ejecutaron con el servidor web http del nodo en el puerto 8080
ifconfig ${DUDE}
=>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP>
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
nd6 options=201<PERFORMNUD,DAD>
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
XHC20: flags=0<> mtu 0
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 80:e6:50:0a:23:64
inet6 fe80::14d6:6308:5edd:9f41%en0 prefixlen 64 secured scopeid 0x5
inet 192.168.0.19 netmask 0xffffff00 broadcast 192.168.0.255
inet6 2606:6000:609b:1200:14c1:e8b6:1ff0:8ef1 prefixlen 64 autoconf secured
inet6 2606:6000:609b:1200:d9dc:a4c3:7c4b:14e4 prefixlen 64 autoconf temporary
inet6 2606:6000:609b:1200::4 prefixlen 64 dynamic
nd6 options=201<PERFORMNUD,DAD>
media: autoselect
status: active
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
ether 02:e6:50:0a:23:64
media: autoselect
status: inactive
awdl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1484
ether 76:f1:5e:fa:30:28
inet6 fe80::74f1:5eff:fefa:3028%awdl0 prefixlen 64 scopeid 0x7
nd6 options=201<PERFORMNUD,DAD>
media: autoselect
status: active
en1: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
options=60<TSO4,TSO6>
ether 72:00:05:09:7f:80
media: autoselect <full-duplex>
status: inactive
en2: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
options=60<TSO4,TSO6>
ether 72:00:05:09:7f:81
media: autoselect <full-duplex>
status: inactive
bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=63<RXCSUM,TXCSUM,TSO4,TSO6>
ether 72:00:05:09:7f:80
Configuration:
id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
ipfilter disabled flags 0x2
member: en1 flags=3<LEARNING,DISCOVER>
ifmaxaddr 0 port 8 priority 0 path cost 0
member: en2 flags=3<LEARNING,DISCOVER>
ifmaxaddr 0 port 9 priority 0 path cost 0
nd6 options=201<PERFORMNUD,DAD>
media: <unknown type>
status: inactive
utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 2000
inet6 fe80::1d55:b5dc:3cd5:864%utun0 prefixlen 64 scopeid 0xb
nd6 options=201<PERFORMNUD,DAD>
utun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380
inet6 fe80::df6e:b1c3:74ea:f75c%utun1 prefixlen 64 scopeid 0xc
nd6 options=201<PERFORMNUD,DAD>
netstat -an | grep 8080
=>
tcp4 0 0 *.8080 *.* LISTEN
Todavía estoy estudiando lo que significa parte de esta salida y trabajaré para que un dispositivo remoto se conecte a mi Mac. Proporcionará más actualizaciones pronto.
------- Próxima actualización ---------
Así que intenté conectarme al puerto arbitrario tanto en la máquina local como en la remota.
Empezar a escuchar en el puerto 54321
nc -v -b en0 -l 54321
Conectando con el..
nc -v -z 192.168.0.19 54321
Respuesta local =>
found 0 associations
found 1 connections:
1: flags=82<CONNECTED,PREFERRED>
outif lo0
src 192.168.0.19 port 49845
dst 192.168.0.19 port 54321
rank info not available
TCP aux info available
Connection to 192.168.0.19 port 54321 [tcp/*] succeeded!
Respuesta Remota =>
nc: connectx to 192.168.0.19 port 54321 (tcp) failed: Operation timed out
Intento de conexión al servidor web...
echo -n "GET / HTTP/1.0\r\n\r\n" | nc 192.168.0.19 8080
Respuesta local =>
HTTP/1.1 400 Solicitud incorrecta
Respuesta del servidor web de la solicitud local =>
Respuesta Remota =>
HTTP/1.1 400 Bad Request
Respuesta del servidor web desde una solicitud remota =>
Amigo, vamos al grano:
En el cuadro que ejecuta el servidor web, abra la aplicación Terminal y conviértase en superusuario escribiendo sudo -s
e ingresando su contraseña de usuario.
Muéstrame la configuración de tu cortafuegos y la tabla de enrutamiento. Publique la salida de pfctl -vvv -s all
, así comonetstat -nr
Encienda el servidor web y asegúrese de que esté configurado correctamente para servir. Una mala configuración está más allá del alcance de esta respuesta. Supongo que el servidor web se ejecuta en un host con la dirección IP de NAT/intranet de 192.168.0.28.
Determine la interfaz de red en la intranet y active un oyente en el puerto arbitrario 54321:
for DUDE in $( ifconfig -lu ) ; do ifconfig ${DUDE} | grep -q “192.168.0.28” && echo ${DUDE} ; done
Esto le dará la interfaz de red. Luego, asegúrese de que algo esté vinculado al puerto 8080
netstat -an | grep 8080
Si no se devuelve nada aquí, su servidor web no está vinculado a una interfaz @ puerto 8080, y es probable que haya una configuración incorrecta del servidor web o una condición de carrera del proceso que se vincule a esa interfaz en ese número de puerto. Esto último puede suceder cuando otro proceso ya tiene un límite de interfaz/puerto particular. Haga una lsof -i | grep 8080
para ver qué ocupa ese puerto, si es que hay algo.
Encienda un oyente en el puerto arbitrario 54321 connc -v -b [network interface] -l 54321
En un host Mac, BSD, Linux o incluso UNIX remoto que esté conectado a la misma red NAT/intranet, inicie un símbolo del sistema para acceder a un shell del sistema, abriendo la aplicación Terminal en Utilidades en una Mac... O en un cuadro de windoze ejecute cmd.exe y telnet a 192.168.0.28:8080. No estoy seguro de si los dos puntos son la sintaxis adecuada para el shell CMD.
Intente conectarse al oyente que acabamos de configurar en el puerto 54321 connc -v -z 192.168.0.28 54321
Intente conectarse a su servidor web problemático a través de
echo -n "GET / HTTP/1.0\r\n\r\n" | nc 192.168.0.28 8080
Eso debería ayudar a aislar el problema hasta que pueda ver la configuración del firewall y la tabla de enrutamiento que solicité anteriormente...
No hay reglas de filtro en su conjunto de reglas de PF, suponiendo que el ancla com.apple no haya establecido ninguna; verifique dos veces con un
sudo pfctl -vvv -a com.apple -sr
Y por favor perdóname el descuido de esto:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
Es probable que esté encendido. Sin alterar su configuración, deshabilitémoslo temporalmente y luego volvamos a probar las pruebas nc que describí anteriormente...:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
Luego vuelva a ejecutar las pruebas anteriores. Cambie el 'apagado' anterior a 'encendido' para volver a habilitar el firewall de la aplicación después de eso. Estoy bastante seguro de que esto resolverá el problema. Si es así, solo tenemos que configurar el firewall de la aplicación: un paseo por el parque, y te aconsejaré después de conocer los resultados...
F.
Mi primer pensamiento es que, para empezar, no tiene una ruta de red clara desde su dispositivo iOS a la Mac. Descargue una utilidad como https://apps.apple.com/us/app/ping-network-utility/id576773404 y haga ping a su Mac. Informe si el ping funciona.
Si ni siquiera puede hacer ping a la Mac, es muy poco probable que pueda conectarse a ella. Antes de sumergirse en los firewalls, verifique que su enrutador esté configurado para permitir que los dispositivos se comuniquen entre sí. Algunos no permitirán conexiones entre dispositivos por defecto, solo a dispositivos en Internet.
Gummibando
jonathan002
FiddleDeDee
usuario1787331
curl -I [webserver IP Here] -o >(cat >&1) -w "%{http_code}" 1>&2
superusuario.com/questions/272265/…