Über mein Setup

Über mein Setup

Manchmal kann mein Client meinen Server nicht erreichen. Wenn das passiert, kann ich pingden Client auf meinem Server manuell erreichen und er kann den Server sehen.

Meine Frage:Was kann getan werden, um das Problem zu beheben, ohne zu verwenden ping?

Ich hoffe wirklich, dass Sie helfen können, Licht in dieses sporadische Problem zu bringen. An einem schlechten Tag passiert es bis zu 5 Mal. An einem guten Tag vielleicht 1 Mal. An einem wirklich guten Tag gibt es keine Probleme, aber es ist selten.

Ich entwickle in meiner Freizeit ein Projekt, das eine iOS-App mit einem C++-Server ist. Das soll irgendwann Open Source werden.


Über mein Setup

Sowohl Server als auch Client befinden sich im selben WLAN.

Beide Geräte können www.google.comeinen Browser öffnen und haben somit Internetzugang.

Server

macOS version 10.11.6 - El Capitan
NGINX version 1.10.0
IP address: 192.168.0.13 (proxy disabled)
The server is not connected to the router via cable.
The NGINX server is running on port 12345 and controls a FastCGI script.

Link zu meinemNGINX-KonfigurationUndHostname, ifconfig, resolv.

Klient

iPad Pro (I'm also experiencing the same problem with my iPhone)
iOS 9.3.5 (13G36)
IP address: 192.168.0.18 (proxy disabled)
The client is not connected to the server via cable.

Router

Netgear CG3000, hardware version 1.04, software version 3.9.21.13.mp3.V1.32.02
I'm experiencing the same problem with other routers, can't remember which ones.

Es wurde nichts in das Ereignisprotokoll des Routers geschrieben.


Schritte zum Reproduzieren

Ich gehe diese Schritte durch.

Schritt 1: Client kann Server nicht erreichen

Auf dem Client:

Ich gebe in einem Browser die IP-Adresse und den Port des Servers ein: http://192.168.0.13:12345/status Aber nichts passiert. Der Client kann den Server nicht erreichen.

Der Client kann problemlos auf das Internet zugreifen.

Schritt 2: Server pingt Client an – damit alles funktioniert

Auf dem Server:

Ich pingden Client durch seine IP-Adresse, wie folgt

PROMPT> ping 192.168.0.18
PING 192.168.0.18 (192.168.0.18): 56 data bytes
64 bytes from 192.168.0.18: icmp_seq=0 ttl=64 time=102.210 ms
64 bytes from 192.168.0.18: icmp_seq=1 ttl=64 time=102.966 ms
64 bytes from 192.168.0.18: icmp_seq=2 ttl=64 time=21.176 ms
^C
--- 192.168.0.18 ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 21.176/75.451/102.966/38.379 ms
PROMPT>

Dieser pingBefehl sorgt dafür, dass der Client den Server erreichen kann. Warum funktioniert pingdas?

Schritt 3: Der Client kann nun den Server erreichen

Auf dem Client:

Ich gebe in einem Browser die Server-IP und den Port ein: http://192.168.0.13:12345/status Jetzt bekomme ich eine Antwort vom Server. Es funktioniert.

Wenn ich einen Proxy starte und den Datenverkehr abfange, sieht die Anfrage/Antwort folgendermaßen aus:

Anfrage

GET /status HTTP/1.1
Host: 192.168.0.13:12345
Accept-Encoding: gzip, deflate
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (iPad; CPU OS 9_3_5 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13G36 Safari/601.1
Accept-Language: da-dk
Cache-Control: max-age=0
Connection: keep-alive

Antwort

HTTP/1.1 200 OK
Server: nginx/1.10.0
Date: Sun, 04 Sep 2016 16:11:39 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive

{
    "request_index": 1047,
    "time": "1473005499"
}

Antwort1

Ping führt eine ARP-Anfrage aus, die plötzlich Ihr Routing korrigiert. Es aktualisiert Ihre ARP-Tabelle mit der MAC-Adresse und IP des Servers oder Clients.

Klingt, als ob in Ihrem Netzwerk ein IP-Konflikt vorliegt.

So können Sie das Problem beheben:

  • Wenn das Problem auftritt, geben Sie ein, arp -aum die ARP-Tabelle auszudrucken. Speichern Sie anschließend eine Kopie dieser Liste.

  • Löschen Sie den Eintrag für die IP des Servers (oder Clients) durch Eingabe von:arp -d ipaddress-of-server-or-client

  • Pingen Sie den Server (oder Client)

  • Geben Sie erneut einen arp -aBefehl ein und prüfen Sie, welche MAC-Adresse jetzt für diese IP angezeigt wird.

  • wenn es anders ist, liegt irgendwo ein IP-Konflikt vor.

Hier eine Auffrischung zu ARP:https://www.tummy.com/articles/networking-basics-how-arp-works/

verwandte Informationen