%20.png)
Ich habe eine Client-(Linux)-Server-(Windows)-Anwendung. Als Hauptbetriebssystem verwende ich Windows 7 und Ubuntu 18.04 auf einer VirtualBox. Ich muss testen, ob der Client über IPv6 eine Verbindung zum Server herstellen kann. Wie richte ich das ein?
Antwort1
Ich mussprüfendass der Client über IPv6 eine Verbindung zum Server herstellen kann.
Sie müssen sich beide Enden ansehen. Nur Linux-Endpunkte wären für diese Site relevant. (Aber Sie können sehen, wie weit Sie kommen. Und wenn Sie weit genug kommen, können Sie nachsehen, was unter Windows funktioniert :-).
Es gibt nur etwa vier Möglichkeiten.
Führen Sie diesen Befehl aus:ip -6 addr
1. Keine IPv6-Adresse: Sie haben keine Zeilen, die mit beginnen inet6
. Test fehlgeschlagen.
2. Nur IPv6-Link-Local-Adressen: Die inet6
Zeilen unter der Netzwerkschnittstelle, die zu Ihrem Zielnetzwerk zeigt, beginnen alle mit fe80::
. Technisch ist es möglich, Link-Local-Adressen zu verwenden, einige Apps unterstützen diese jedoch nicht. Wenn möglich, beheben Sie diese Situation, d. h. behandeln Sie sie als Testfehler.
Welche Netzwerkschnittstelle ist Ihrem Zielnetzwerk zugewandt?
- Die Linux-Loopback-Schnittstelle heißt
lo
. Ignorieren Sie sie. - Die meisten physischen Schnittstellen unter Linux beginnen mit
e
(Ethernet),wl
(Wireless),ww
(Wide-Area-Wireless) oder, weniger wahrscheinlich,ppp
(sonstiger Unsinn :-P). In Ihrem Fall werden Sie diese ignorieren. - Linux-Schnittstellen zu virtuellen Maschinenneigenmuss mit beginnen
v
. VirtualBox verwendetvboxnet
und libvirt (virt-manager) verwendetvirbr
. In Ihrem Fall ist die gewünschte Schnittstelle mit ziemlicher Sicherheit eine davon.
3. Potenziell routbare IPv6-Adresse: also mindestens eine Adresse, die nicht startet fe80::
. Der Test ist noch nicht fehlgeschlagen – bisher :-). Weiter mit dem nächsten Schritt.
Nachdem Sie eine routingfähige IPv6-Adresse identifiziert haben, können Sie vom anderen System aus eine Verbindung zu dieser Adresse testen.
ping6
ist in Ordnung -WennSie wissen, dass Ping nicht von einer Firewall blockiert wird.
Blockieren Sie Ping in Ihren Firewalls nicht, es sei denn, die Firewall blockiertalleeingehende Verbindungen. Ansonsten macht es keinen Sinn und Sie machen sich das Leben nur schwerer.
Wenn Sie Ping nicht zulassen können
Ihrer Bewerbung liegen Anweisungen beiirgendwowelche Portnummer (und welchen Porttyp) es verwendet, um es durch eine Firewall zu lassen.
Um die Verbindung zu einem TCP-Port zu testen, würde ich verwenden sudo nmap -sT -p 1,$MYPORT $MYADDRESS
. Sie können auch verwenden, sudo nmap -sT -F $MYADDRESS
um allgemeine Ports zu scannen. Letzteres kann nützlich sein, wenn es zeigt, dass eine Verbindung zu einem Port hergestellt werden kann.andersPort, z. B. haben Sie vielleicht vergessen, den richtigen Port durch eine Firewall zu lassen.
Um UDP-Ports zu testen, verwenden Sie -sU
anstelle von -sT
. Ich würde mich nicht mit beschäftigen, nmap -sU -F
da UDP-Scansviel langsamerals TCP-Scans.
Um zu sehen, wie ein erfolgreicher Test aussieht, scannen Sie die Adresse ::1
(localhost). Wenn Sie noch keinen offenen Port auf localhost haben, öffnen Sie ein zweites Terminalfenster und führen Sie aus ncat -l ::1 22
, um einen gefälschten SSH-Dienst auszuführen, der nmap
dies erkennt.
Link-Local-Adressen
Wenn Sie eine Verbindung zu einer Link-Local-Adresse herstellen müssen, müssen Sie eine Link-ID angeben. Beispiel: to ping
fe80::1 on link vboxnet0
, run ping6 fe80::1%vboxnet0
. Dies ist ein Grund, warum Link-Local-Adressen weniger nützlich sind: Nicht alle Anwendungen wissen, wie die Link-ID angegeben wird.