截图分析传说中gfw造成的551 User not local错误(转)

今天在调试一个客户邮件服务器postfix的时候遇到了传说中的551错误("551 User not local; please try [forward-path]")
错误现象是这样的,用户采用smtp认证的方式自己给自己的邮箱发信,outlook或者foxmail会报551错误或者直接报未知错误。
而如果给别的信箱发信就不会有问题,在本机采用webmail发信也很正常。
很快就可以排除是postfix邮件系统的问题,因为我登录到服务器上采用telnet手工smtp认证发信没有任何问题。
那么问题一定出现在通往邮件服务器的路由中,只能通过抓包分析了。

我在我的本机采用wireshark抓包
同时邮件服务器采用tcpdump -w packet tcp port 25将数据包保存为文件packet
然后我在本机通过smtp发信,重复错误现象,然后将两边抓到的包用wireshark分析,结果果然不出所料。

先看截图(ip地址和邮箱域名等已经被处理掉)
1。邮件服务器端的截图

screenshot-5.png

图中红色圈中可以看到,mail from指令和rcpt to指令服务器都正确的返回了250 OK
但是在随后蓝色圈中突然不断收到rst中断连接。

2。本地客户端的截图
screenshot-4.png

图中红色圈中可以看到,服务器返回的信息由250 OK被替换成了"551 User not local; please try [forward-path]"。
随后又是一堆的Rst中断连接。
注意,蓝色圈中是服务器的真正返回,但是这时候连接已经中断,没有意义了。

3。很明显,双方的连接在通讯途中被干预了。更能证明这一点的一个例子是ttl值的变化。
screenshot-2.png

正常情况下服务器返回信息Ip包头中的ttl值是48,大约经过了16跳。
而"551 User not local; please try [forward-path]"这条消息的ttl值是50,发生什么事情已经很明显了。。

screenshot-3.png

在google上可以搜索到很多关于551错误的例子,从大家的评论来看,这件事情多半是gfw干的了。
只是我不太明白的是,gfw管这个做什么,出于什么目的?:em12:

补充:根据iceblood的提醒,我检查了一下邮件服务器,果然是放在国外的。
看来邮件服务器放在国外,使用smtp自己给自己发信就会报错。
[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9650775/viewspace-924236/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9650775/viewspace-924236/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值