
У меня есть простое устройство UDP (ENC28J60), подключенное к моему компьютеру прямым кабелем. Устройство настроено на отправку пакета UDP на IP 192.168.133.1, порт 6661.
Компьютер, ОС Fedora 22, имя интерфейса enp7s0. Когда интерфейсу назначен IP-адрес, tcpdump зависает, netcat молчит. Когда интерфейсу не назначен IP-адрес, netcat молчит (нет вывода), tcpdump получает пакеты.
Пакеты действительно поступают с устройства, которое я могу увидеть с помощью tcpdump, только когда интерфейс включен, но IP-адрес не назначен.
Сначала попробуйте открыть интерфейс с IP-адресом.:
[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
Попробуйте netcat и tcpdump. Нет ответа. tcpdump зависает.
[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
Теперь попробуйте удалить IP-адрес. tcpdump получил UDP-пакеты, но netcat по-прежнему молчит.:
[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
решение1
Я не уверен, что это ваша проблема, но почему вы nmcli
вообще используете? nmcli
- это интерфейс командной строки сетевого менеджера, которыйгораздо болеечем вы рассчитывали, пытаясь поднять свои интерфейсы.
Если бы я был вами, я бы поступил следующим образом. Так как 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
Либо ручная настройка...
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
или автоматический:
ip link set dev enp7s0 up
dhclient -v enp7s0
(В зависимости от вашего дистрибутива вам, возможно, придется убрать этот -v
флаг).
Теперь я попробую еще раз, и оба tcpdump
варианта nc
должны сработать.