两台BeagleBone Black以太网通信连接被拒问题求助
排查BeagleBone Black跨机TCP连接被拒绝问题
一、先确认基础网络连通性
- 在客户端开发板执行
ping 169.254.1.1,验证两台设备是否能正常通信。如果ping不通,优先排查物理连接(比如网线是否插紧、以太网口是否损坏)或IP配置:- 分别在两块板上执行
ip addr show eth0,确认eth0接口已配置对应IP(169.254.1.1/169.254.1.2),且接口处于UP状态。
- 分别在两块板上执行
二、验证服务器端口是否对外监听
- 在服务器板执行
ss -tulpn | grep 8088,查看监听地址:- 如果输出的
Local Address是127.0.0.1:8088,说明服务器仅监听本地回环接口,跨机无法连接——这是「同一机正常、跨机失败」的典型原因; - 正常应该显示
0.0.0.0:8088(监听所有接口)或169.254.1.1:8088(监听指定以太网接口)。
- 如果输出的
- 也可在客户端板用
nc -zv 169.254.1.1 8088测试端口可达性,若提示连接拒绝,说明端口未对外暴露或存在阻断。
三、检查防火墙与网络规则
- 在服务器板执行
iptables -L,查看是否有拒绝8088端口的规则; - 临时关闭防火墙测试:执行
systemctl stop firewalld(若使用firewalld)或iptables -F(清空iptables规则),之后重试客户端连接。
四、代码层面的常见问题
- 服务器端
bind调用:若绑定的是INADDR_LOOPBACK(对应127.0.0.1),需改为INADDR_ANY(对应0.0.0.0,监听所有接口)或指定169.254.1.1的结构体地址; - 客户端连接地址:确认代码中指定的服务器IP是
169.254.1.1而非127.0.0.1,端口确认为8088; - 服务器流程:检查是否在
listen调用后正确进入accept循环,未提前退出程序。
五、其他排查点
- 用
ethtool eth0查看两块板的以太网工作模式,确保双方的速率、双工模式一致; - 通过
ss命令的输出确认8088端口确实被你的服务器程序占用,而非其他进程。
内容的提问来源于stack exchange,提问作者MKT
相关产品推荐
相关产品推荐

