嵌入式Linux开发板之间无法通过ssh通信

2019-07-12 15:25发布

  • 论坛提问了之后没有遇到完整的解决方法,卡了半个多月,问题终于解决了。
    https://bbs.csdn.net/topics/392360258
  • 开始觉得觉得抓包没啥用。。最后试了一下发现真的好用

问题

两块板子和pc都接在路由器上,两款板子之间能ping通,但不能ssh;但都可以和pc相互ssh。

解决方法

1 之前试了一下将两块板子直接用网线连在一块,是可以ssh的,所以认为是路由器或者网卡的问题。然后移植了ethtool到板子上,发现也没什么问题,接在100M的LAN口上,就在自动工作在速度为100M的模式。再之前试过将mtu设为一个小于1500的值,但没有效果。
2 然后通过在开发板上用tcpdump抓包,发现重复出现 ARP, Request who-has boardA tell x.x.x.x 这个信息,ARP(地址解析协议),通过IP地址找MAC。出现这个信息大致是找不到x.x.x.x这个IP地址。于是我去路由器界面看了一下,IP与MAC绑定->arp映射表 里果然没有这个IP地址。于是准备在 静态ARP绑定设置 中手动添加,添加时发现了问题,这两块开发板的MAC竟然是相同的。。 于是去开发板上改MAC地址,改完之后,发现arp映射表中两个IP都有了,这时就能够顺利通过ssh连上了。。抓包再看
  • 解决问题时只去乱试是没用的,一个问题可能有很多原因。得知道到底哪出问题了才能针对性的解决