MTU设置造成VPN无法正常工作

今天要上youtube去找某位高人听写出来的Rayman3一个CG的字幕,结果发现上不了,更悲剧的是发现几乎所有的网站,如Google、youtube、twitter都上不了,但奇怪的是百度和我自己的网站能上。 开始以为是自己电脑上的360耍流氓了,就到室友电脑上上,发现故障依旧。 然后开始疯狂Google。得到什么在Windows配置和VPN配置里把什么加密给关掉,照做,未果。 突然在一条回复上看到有人提到了MTU这个词,遂想起前几天因为某人的WOW需要,好像是在路由器上改了什么MTU。当时我还一直问某飞MTU是啥MTU是啥,他也不告诉我。 于是问Google。MTU为Maximum Transmission Unit。指一个设备一帧报文最大的数据量,单位Byte。 再搜索VPN MTU,得知MTU确实会影响VPN数据的传输,表现正是有些网站可以打开有些网站不行。 参考了几篇文章,尝试了以下做法。 Win7下管理员模式cmd,在VPN连接时执行netsh interface ipv4 show subinterfaces,看到本机网卡MTU为1500,VPN的MTU为1400。 VPS Linux下执行ifconfig,看到ppp0的MTU为1396好像。 感觉貌似要是加上这个头那个头的,就会超过路由器上设置的1410而被拦截,而原来是1496。 于是Win7下执行netsh interface ipv4 set subinterface "MyVPS" mtu=1300 store=persistent。重新连接后依旧不行。 再到Linux下执行ifconfig ppp0 mtu 1300,于是问题解决! 感觉这个MTU是在配置虚拟网络时根据iptable写的MSS决定的。。一会去把那个改一下试试。 话说网络这东西好神奇。。。