解决方案:我的笔记本电脑以太网接口上的 IP 地址有拼写错误(请参阅已接受的答案)。以下说明很可能是正确的设置。
我想通过我的笔记本电脑和 Raspberry Pi (rpi) 之间的点对点以太网与 Raspberry Pi (rpi) 通信。
我的笔记本电脑通过 NetworkManager (DHCP) 管理的无线接口连接到互联网wlan0
。我的以太网接口是eth0
,并且我已明确告诉 NetworkManager 忽略它 ( nmcli dev set eth0 managed no
)。
rpi 显然将范围内的地址分配169.245.0.0/16
给其以太网接口。当我在笔记本电脑以太网接口 ( tcpdump -i eth0 -e
) 上运行 tcpdump 时,我可以看到 rpi 从 进行通信169.254.85.159
。我至少想从我的笔记本电脑 ping 它。
首先,我169.245.0.1/16
为笔记本电脑上的以太网接口分配 IP 地址:
root@localhost ~ # ip addr add 169.245.0.1/16 dev eth0
然后我检查它是否有正确的地址:
root@localhost ~ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether f5:fc:60:62:92:f1 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.157/24 brd 192.168.0.255 scope global dynamic noprefixroute wlan0
valid_lft 1893sec preferred_lft 1893sec
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 50:e5:3c:f4:34:11 brd ff:ff:ff:ff:ff:ff
inet 169.245.0.1/16 scope global eth0
valid_lft forever preferred_lft forever
然后我检查路由表:
root@localhost ~ # ip r
default via 192.168.0.1 dev wlan0 proto dhcp metric 600
169.245.0.0/16 dev eth0 proto kernel scope link src 169.245.0.1
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.157 metric 600
我认为任何东西都169.245.0.0/16
可以通过第二条路线进入。
但显然它被默认路由条目接收了:
root@localhost ~ # traceroute 169.254.85.159
traceroute to 169.254.85.159 (169.254.85.159), 30 hops max, 60 byte packets
1 _gateway (192.168.0.1) 4.961 ms 10.669 ms 10.681 ms^C
您能解释一下为什么数据包通过默认路由以及设置这种点对点网络的最正确方法是什么吗?
我也尝试过使用-B
ping开关来强制接口:
root@localhost ~ # ping -B eth0 169.254.85.159
现在在tcpdump
输出中我可以看到来自 rpi 的回显请求和回复,但显然它没有传递到,ping
因为它是静默的。为什么?
答案1
169.245.0.0/16 到其以太网接口。当我在笔记本电脑以太网接口上运行 tcpdump(tcpdump -i eth0 -e)时,我可以看到 rpi 从 169.254.85.159 进行通信
您似乎打错了。您的 RPI 是 169。254.85.159。而您分配的是 169。245.0.0/16 到您的另一台计算机。254!=245。
但是如果你的 RPi 确实获得了 169.254/16 范围内的 APIPA 地址,我就会怀疑你是否具有良好的连接性。