Ich habe einen einfachen HTTP-Server, der mit einem ausgeführt wird index.html
, den ich versuche, über LAN einem anderen Gerät zu übermitteln. Ich kann mit localhost auf die Website auf dem Hostcomputer zugreifen und sie wird als erfolgreiches HTTP 200 aufgezeichnet. Wenn ich versuche, mit dem anderen Clientgerät darauf zuzugreifen, zeigt der HTTP-Server jedoch keine Anzeichen einer Anfrage und das Gerät hat eine Zeitüberschreitung.
Ich glaube, dass eine Firewall in meinem Mac die Verbindung blockiert, aber ich höre, dass es mehrere Firewalls in einem Mac gibt und sie diese möglicherweise mit jedem Betriebssystem-Update ändern.
z.B
Thread, der zeigt, dass im Betriebssystem mehrere Firewalls vorhanden sind
Firewall-Protokolle sind jetzt verschwunden (appfirewall.log kann nicht angezeigt werden)
Also verwende ich jetzt macOS Mojave und habe sehr wenig Erfahrung mit Netzwerktools, um zu überprüfen, was in meinem Netzwerk vor sich geht (verzeihen Sie also bitte meine Unwissenheit).
Welche Firewalls verwendet macOS Mojave?
Wo finde ich die Protokolle (damit ich sehen kann, ob die HTTP-Anfrage meines anderen Geräts abgelehnt wurde)?
Gibt es noch etwas, das ich vielleicht nicht weiß und das meine HTTP-Anfrage stoppen kann? Wenn ja, welche Tools kann ich zur Überprüfung verwenden?
--------- Zusätzliche Details ---------
---- Weitere Details -----
Danke Franz für deine Antwort.
Unten gezeigt ist meine Routing-Tabelle
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
Schnittstellenhinweise:
Ich konnte den vollständigen Befehl für nicht ausführen
for DUDE in $( ifconfig -lu ); do ifconfig ${DUDE} | grep -q “192.168.0.19” && echo ${DUDE};
Befehle, die mit dem HTTP-Webserver des Knotens an Port 8080 ausgeführt wurden
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
Ich studiere immer noch, was einige dieser Ausgaben bedeuten, und werde daran arbeiten, ein Remote-Gerät dazu zu bringen, sich mit meinem Mac zu verbinden. Werde bald weitere Updates liefern.
------- Nächstes Update ---------
Also habe ich versucht, eine Verbindung mit dem beliebigen Port sowohl auf dem lokalen als auch auf dem Remote-Computer herzustellen.
Beginnen Sie mit dem Abhören von Port 54321
nc -v -b en0 -l 54321
Daran anschließen..
nc -v -z 192.168.0.19 54321
Lokale Antwort =>
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!
Fernantwort =>
nc: connectx to 192.168.0.19 port 54321 (tcp) failed: Operation timed out
Webserver-Verbindungsversuch...
echo -n "GET / HTTP/1.0\r\n\r\n" | nc 192.168.0.19 8080
Lokale Antwort =>
HTTP/1.1 400 Bad Request
Webserver-Antwort von lokaler Anfrage =>
Fernantwort =>
HTTP/1.1 400 Bad Request
Webserver-Antwort von Remote-Anfrage =>
Mein Freund, kommen wir zur Sache:
Öffnen Sie auf der Box, auf der der Webserver ausgeführt wird, die Terminal-App und werden Sie zum Superuser, indem Sie das sudo -s
Kennwort Ihres Benutzers eingeben und eingeben.
Zeigen Sie mir Ihre Firewall-Konfiguration und die Routing-Tabelle. Poste die Ausgabe von pfctl -vvv -s all
, sowienetstat -nr
Starten Sie den Webserver und stellen Sie sicher, dass er ordnungsgemäß für die Bereitstellung konfiguriert ist. Eine Fehlkonfiguration würde den Rahmen dieser Antwort sprengen. Ich gehe davon aus, dass der Webserver auf einem Host mit der NAT/Intranet-IP-Adresse 192.168.0.28 läuft.
Ermitteln Sie die Netzwerkschnittstelle im Intranet und starten Sie einen Listener auf einem beliebigen Port 54321:
for DUDE in $( ifconfig -lu ) ; do ifconfig ${DUDE} | grep -q “192.168.0.28” && echo ${DUDE} ; done
Dadurch erhalten Sie die Netzwerkschnittstelle. Stellen Sie dann sicher, dass etwas an Port 8080 gebunden ist
netstat -an | grep 8080
Wenn hier nichts zurückgegeben wird, ist Ihr Webserver nicht an eine Schnittstelle @ Port 8080 gebunden, und es liegt wahrscheinlich eine Webserver-Fehlkonfiguration oder eine Prozess-Race-Bedingung vor, die an diese Schnittstelle an dieser Portnummer bindet. Letzteres kann passieren, wenn ein anderer Prozess bereits eine bestimmte Schnittstelle / Port gebunden hat. Führen Sie eine aus lsof -i | grep 8080
, um zu sehen, was diesen Port belegt, wenn überhaupt.
Starten Sie einen Listener auf einem beliebigen Port 54321 mitnc -v -b [network interface] -l 54321
Starten Sie auf einem entfernten Mac-, BSD-, Linux- oder sogar UNIX-Host, der mit demselben NAT-/Intranet-Netzwerk verbunden ist, eine Eingabeaufforderung, um auf eine System-Shell zuzugreifen – indem Sie die Terminal-App in den Dienstprogrammen auf einem Mac öffnen … oder weiter Auf einer Windoze-Box führen Sie cmd.exe und Telnet zu 192.168.0.28:8080 aus. Nicht sicher, ob Doppelpunkt die richtige Syntax für die CMD-Shell ist.
Versuchen Sie, sich mit dem Listener zu verbinden, den wir gerade auf Port 54321 eingerichtet habennc -v -z 192.168.0.28 54321
Versuchen Sie, sich mit Ihrem problematischen Webserver über zu verbinden
echo -n "GET / HTTP/1.0\r\n\r\n" | nc 192.168.0.28 8080
Das sollte helfen, das Problem zu isolieren, bis ich die Firewall-Konfiguration und die oben angeforderte Routing-Tabelle sehen kann ...
Es gibt keine Filterregeln in Ihrem PF-Regelsatz, vorausgesetzt, der com.apple-Anker hat keine gesetzt – überprüfen Sie dies mit a
sudo pfctl -vvv -a com.apple -sr
Und bitte vergib mir das Versehen:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
Es ist wahrscheinlich eingeschaltet. Lassen Sie uns, ohne an seiner Konfiguration herumzuspielen, es vorübergehend deaktivieren und dann die oben beschriebenen nc-Tests erneut testen ...:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
Führen Sie dann die obigen Tests erneut aus. Ändern Sie „Aus“ oben in „Ein“, um die App-Firewall danach wieder zu aktivieren. Ich bin ziemlich zuversichtlich, dass dies das Problem lösen wird. Wenn dies der Fall ist, müssen wir nur die App-Firewall konfigurieren – ein Spaziergang im Park, und ich werde beraten, nachdem ich die Ergebnisse kenne …
F.
Mein erster Gedanke ist, dass Sie zunächst keinen klaren Netzwerkpfad von Ihrem iOS-Gerät zum Mac haben. Laden Sie ein Dienstprogramm wie https://apps.apple.com/us/app/ping-network-utility/id576773404 herunter und pingen Sie Ihren Mac an. Berichte mal ob der Ping funktioniert.
Wenn Sie den Mac nicht einmal anpingen können, ist es höchst unwahrscheinlich, dass Sie eine Verbindung zu ihm herstellen können. Bevor Sie in Firewalls eintauchen, überprüfen Sie, ob Ihr Router so eingestellt ist, dass Geräte miteinander kommunizieren können. Einige erlauben standardmäßig keine Verbindungen zwischen Geräten, sondern nur zu Geräten im Internet.
Gummibando
Jonathan002
FiddleDeDee
Benutzer1787331
curl -I [webserver IP Here] -o >(cat >&1) -w "%{http_code}" 1>&2
superuser.com/questions/272265/…