升级过内核, 比较过内核参数, 关闭防火墙, 能想到的招数都用上了, 故障依旧.
今天晚上运行ifconfig的时候突然发现wlan0的MTU竟然是576:
wlan0 Link encap:Ethernet HWaddr 00:1a:73:81:cc:ec inet addr:192.168.1.100 Bcast:255.255.255.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:576 Metric:1 RX packets:62 errors:0 dropped:0 overruns:0 frame:0 TX packets:126 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:5003 (4.8 KiB) TX bytes:37090 (36.2 KiB) |
而别的网卡MTU设置都为1500. 运行命令
ifconfig wlan0 mtu 1500 |
后, 使用浏览器访问原来无法访问的网站竟然可以访问了. 实在是一个以外的惊喜.
当我删除wlan0对应的内核模块, 重新加载后, wlan0的mtu为1500, 运行dhclient 抓取地址后, wlan0的mtu就变成了576. 也就是说wlan0的默认mtu为1500, 经过dhcp分配地址后变成了576. 使用wireshark抓取dhcp时经过wlan0的软件包发现client向 dhcp server(无线路由器)请求了Interface MTU, 而dhcp server返回的Interface MTU为576.
修改/etc/dhcp3/dhclient.conf文件, 删除request后的"interface-mtu,"后, dhclient将不会向dhcp server请求Interface MTU, 问题解决.