lwip 中tcp能与内网通信,但不能和外网通信的解决方法
2017-07-22 10:39
441 查看
引言
笔者之前在做lwip TCP内网通信的时候,比较顺利。但最近要访问到外网(阿里云香港)的服务器的时候,TCP一直连接不上,在经过了检查程序是否有BUG,lwip协议栈是否有问题,ip地址问题,但都没有发现问题后,笔者开始怀疑设置的MAC地址是否会有问题。MAC地址
在网上查阅了相关资料,发现了MAC地址是有相应的规范的,如下图所示:MAC地址中,前24位为组织唯一标识符,后24位由厂家自行定义。也就是说前24位是有规定的,其中48位MAC中的前几位也是有着对应的含义的。MAC地址详细的介绍,大家可以在网上搜得到。
在这里笔者就怀疑可能是外网中某个节点,把我的包过滤了,因为之前笔者的MAC地址是随便写的,可能不符合规范。
解决办法
在发现有可能是我的MAC地址不合法后,我就直接使用我电脑的MAC地址做测试,因为我电脑的网卡是正规厂商生产的,MAC地址是符合规范的。在电脑中的cmd中敲入ipconfig/all,可以查看得到电脑的MAC地址,我的地址如下图所示。
将我电脑中MAC地址的前24位作为开发板的MAC地址的前24位,即0x309C23,后24位我随便填,为0x564F12,再次和外网服务器进行TCP通信,就连接上了。
结语
最后在这里,验证了确实是我开发板MAC地址设置的问题,影响到了数据包在外网的传输,笔者在这里怀疑可能是外网某个节点做了过滤,将非法的mac地址的数据包给过滤了,也有可能是其他不明原因。相关文章推荐
- debian Squeeze不能访问内网,可以访问外网的解决方法.
- 内网可以访问外网,外网不能访问内网的ACL解决方法
- 云服务器外网不能访问公网IP问题解决方法(successful!)
- IIS发布的网站,内网和外网不能访问的解决办法
- IIS发布的网站,内网和外网不能访问的解决办法
- 解决外网与内网或内网之间的通信,NAT穿透
- ROS Dst-Nat 后内网不能通过公网IP访问内网服务器解决方法
- 一例SSH内网可登入,外网不能登入的问题解决
- 内网不能互访的解决方法!
- 解决外网与内网或内网之间的通信,NAT穿透
- RMI在外网不能通信的解决
- apache外网不能访问分析与解决方法
- 解决外网向内网通信方案--NAT穿透技术详解
- Node.js~在linux上的部署~外网不能访问node.js网站的解决方法
- 解决外网向内网通信方案--NAT穿透技术详解
- 用nst的反弹后后门连上nc后不能su交互的解决方法+内网渗透测
- 解决外网与内网或内网之间的通信,NAT穿透