Hallo, für eine Kommunikationsanwendung wird ein raspberry pi eingesetzt. Auf dem raspberry pi läuft ein mqtt broker. Dieser soll auch weiterlaufen. Der mqtt broker bekommt von außen udp nachrichten. Genau diese udp Nachrichten möchte ich nun über einen Sniffer anzeigen lassen, ob auch die Nachricht ankommt oder nicht. Ein python Skript mit einem udp server kann ich nicht starten, da dieser bereits geöffnet ist.
Ich bin mir nicht sicher ob ich dein Setup korrekt verbildlicht habe, aber normalerweise ist Wireshark für sowas das mittel der wahl. Alternativ wäre tcpdump geeignet. Mit tcpdump erzeugte Traces kann man übrigens in Wireshark laden und visualisieren lassen.
Ich kann wireshark auf der console vom raspberry pi nicht starten. Der raspberry pi bekommt udp Daten über das Mobilfunknetz.
> Ich kann wireshark auf der console vom raspberry pi nicht starten.
Du kannst unter Unix eigentlich schon immer ein Programm so starten
das es sein Fenster auf einem entfernten Rechner oeffnet.
Nicht das ich es mit Wireshark schon probiert habe, aber das war
eigentlich
schon vor 30Jahren eines der Dinge wo Linux den Windowskram outperformt
hat. .-)
Olaf
tester schrieb: > Hi Olaf was meinst du genau? tester schrieb: > Ich habe ja nur putty und die COnsole. Er meint damit dass man per ssh x-forwarding betreiben kann, d.h. du kannst auf dem Raspi ein GUI-Programm starten selbst wenn dieser keinen Bildschirm angestöpselt hat und siehst die GUI auf deinem PC. Da du als ssh-client aber putty, vermutlich unter Windows nutzt fürchte ich dass das nichts wird. tester schrieb: > Wie müsste ich tcpdump benutzen damit ich UDP Nachrichten sehen kann? Eine google-Frage nach "tcpdump udp" liefert unter anderem Folgendes: https://unix.stackexchange.com/questions/549998/how-can-i-capture-all-the-udp-packets-using-tcpdump
tester schrieb: > Wie funktioniert das mit der GUI genau? Kann dir nicht folgen. Dir hier zu helfen würd den Rahmen des Supports, den ich bereit bin hier zu leisten, sprengen. Mit dem Begriff "x-forwarding" solltest du aber genug Lektüre finden. Ich würde dir aber nicht empfehlen diesen Weg weiter zu bestreiten. An deiner Stelle würde ich versuchen tcpdump am Raspberry zu starten und die UDP-Frames in eine Datei zu loggen. Diese Datei kannst du anschließend auf deinen PC kopieren und in Wireshark importieren. Du kannst die Datei aber auch direkt mit einem Editor deiner Wahl öffnen.
Auf meinem Raspi funktioniert wireshark. Und ich sitze auch nicht direkt davor, sondern mache eine X11 Umleitung mit ssh -X username@IPNummer Username und IPNummer muss dann bei dir passen. Dann bekomme ich das X11 Fenster vom Raspi-wireshark auf meinen normalen Rechner. Und wenn du Windows benutzt, installiere einfach eine VM mit Linux. In der kannst du dich dann mit dem Raspi verbinden.
tester schrieb: > Wie müsste ich tcpdump benutzen damit ich UDP Nachrichten sehen kann?
1 | tcpdump -s 1518 -Xni <interface> udp |
Damit bekommst Du den UDP-Traffic auf dem Interface als Hexdump.
1 | tcpdump -s 1518 -i <interface> -w output.pcap udp |
Damit erzeugst Du ein File, das Du später mit Wireshark analysieren kannst. Beenden mit Ctrl+C.
tester schrieb: > Ok ich danke euch. > > Werde es mal testen. Das X Window System ist selbst schon netzwerkfähig und muß deswegen nicht unbedingt über SSH betrieben werden. Du kannst auch auf dem Windowssystem einen X-Server installieren und ihn für den Raspi mit dem Kommando "xhost +<raspi-ip>" für die IP-Adresse "<raspi-ip>" des RasPi freigeben, mit dem Befehl "xhost -<raspi-ip>" kannst Du die Freigabe wieder aufheben. Nach dem Start und der Freigabe des X-Servers auf Deinem Windows sagst Du dem RasPi mit der Umgebungsvariablen DISPLAY (Befehl: "export DISPLAY=<win-ip:0.0", mit "unset DISPLAY" kannst Du das wieder beenden), daß X-Programme auf dem RasPi ihre grafische Ausgabe an das Display 0.0 auf Deinem Windows senden und darüber bedient werden soll. Da dieser Datenverkehr allerdings nicht verschlüsselt ist, empfehle ich dennoch das X-Forwarding von SSH, aber in beiden Fällen brauchst Du auf Deinem Windows einen X-Server zur grafischen Ausgabe und Bedienung des Programms. Vielleicht möchtest Du es anstelle von Putty mit MobaXTerm [1] versuchen. Das hat direkt einen eingebauten X-Server und Du mußt keinen installieren. Ein passender Filter für Deine Netzwerkdaten wäre zum Beispiel "proto \udp and port 1883", wenn Dein MQTT-Broker auf Port 1883 läuft. Diesen Filter kannst Du sowohl mit Wireshark, als auch mit tcpdump(8) benutzen, eine Dokumentation zur Filtersprache findest Du in der Manpage pcap-filter(7) auf Deinem Linuxsystem. Die kannst Du mit "man 7 pcap-filter" anzeigen und mit einem Druck auf die Taste "q" wieder verlassen. Wenn Du mehr mit Linux machen und nicht immer nachfragen willst, möchte ich Dir das Buch "Linux" von Michael Kofler wärmstens ans Herz legen. Du wirst sehr viel produktiver sein, und deutlich mehr Spaß an und mit Linux haben, wenn Du die Basics beherrschst und das System ein wenig verstehst. [1] https://mobaxterm.mobatek.net/
Ein T. schrieb: > Das X Window System ist selbst schon netzwerkfähig und muß deswegen > nicht unbedingt über SSH betrieben werden. Allerdings sind zumindest unter Linux die Display-Manager meist so konfiguriert, dass sie den X-Server standardmäßig mit -nolisten tcp starten, und dann nimmt der grundsätzlich keine Verbindungsanfragen von außen entgegen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.