Wie kann Netcat keine UDP-Pakete empfangen?

Wie kann Netcat keine UDP-Pakete empfangen?

Ich habe ein einfaches UDP-Gerät (ENC28J60) über ein Direktkabel mit meinem Computer verbunden. Das Gerät ist so konfiguriert, dass es UDP-Pakete an die IP-Adresse 192.168.133.1 und den Port 6661 sendet.

Der Computer, Fedora 22 OS, Schnittstellenname ist enp7s0. Wenn der Schnittstelle eine IP-Adresse zugewiesen ist, bleibt tcpdump hängen, netcat stumm. Wenn der Schnittstelle keine IP-Adresse zugewiesen ist, bleibt netcat stumm (keine Ausgabe), tcpdump empfängt Pakete.

Dass die Pakete wirklich von einem Gerät kommen, kann ich mit tcpdump nur sehen, wenn die Schnittstelle aktiv ist, aber keine IP-Adresse zugewiesen wurde.

Versuchen Sie zunächst, die Schnittstelle mit einer IP-Adresse aufzurufen:

[root@d7520 ~]#  nmcli connection up toArd                                                                          
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/20)
[root@d7520 ~]# ip a s dev enp7s0                            
2: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 74:86:7a:1e:e0:85 brd ff:ff:ff:ff:ff:ff
    inet 192.168.133.1/24 brd 192.168.133.255 scope global enp7s0
       valid_lft forever preferred_lft forever
    inet6 fe80::7686:7aff:fe1e:e085/64 scope link 
       valid_lft forever preferred_lft forever

Versuchen Sie es mit Netcat und TCPdump. Keine Antwort. TCPdump hängt.

[root@d7520 ~]# ncat -u -l 6661                                                                                                                      
^C
[root@d7520 ~]# tcpdump -vvv -i enp7s0 -X
tcpdump: listening on enp7s0, link-type EN10MB (Ethernet), capture size 262144 bytes


[root@d7520 ~]# nc -v -l -u 6661                                                                                                                                                                                                              
Ncat: Version 6.47 ( http://nmap.org/ncat )
Ncat: Listening on :::6661
Ncat: Listening on 0.0.0.0:6661
^C

Versuchen Sie nun, die IP-Adresse zu entfernen. tcpdump hat die UDP-Pakete erhalten, aber netcat bleibt stumm.:

[root@d7520 ~]# nmcli connection down toArd 
Connection 'toArd' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/21)

 [root@d7520 ~]# ip a s dev enp7s0
2: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 74:86:7a:1e:e0:85 brd ff:ff:ff:ff:ff:ff
[root@d7520 ~]# tcpdump -vvv -i enp7s0 -X                                                                                                                     
tcpdump: listening on enp7s0, link-type EN10MB (Ethernet), capture size 262144 bytes
13:41:39.423449 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 37)
    192.168.133.2.6660 > 192.168.133.1.6661: [udp sum ok] UDP, length 9
        0x0000:  4500 0025 0000 4000 4011 af73 c0a8 8502  E..%..@[email protected]....
        0x0010:  c0a8 8501 1a04 1a05 0011 0630 7465 7374  ...........0test
        0x0020:  2031 3233 0000 0000 0000 0000 0000       .123..........
^C
1 packet captured
1 packet received by filter
0 packets dropped by kernel

Antwort1

Ich bin nicht sicher, ob das Ihr Problem ist, aber warum verwenden Sie nmcliüberhaupt? nmcliist die Netzwerk-Manager-Befehlszeilenschnittstelle, die istviel mehrals Sie beim Aufrufen Ihrer Schnittstellen erwartet haben.

Ich an deiner Stelle würde folgendermaßen vorgehen sudo:

         service network-manager stop  # halt NM
         ip link set dev enp7s0 down   # bring the interface down, in order to...
         ip addr flush dev enp7s0      # ... get rid of its ip address

Entweder eine manuelle Konfiguration...

         ip addr add 192.168.133.133/24 dev enp7s0 # we give it a brand new address...
         ip link set dev enp7s0 up     # now we try again...
         ip route add default via 192.168.133.1 # and a gateway

oder eine automatische:

         ip link set dev enp7s0 up
         dhclient -v enp7s0

(Abhängig von Ihrer Distribution müssen Sie das Flag möglicherweise weglassen -v).

Jetzt würde ich es noch einmal versuchen und beides tcpdumpsollte ncfunktionieren.

verwandte Informationen