以 Windows 2000 作为 Server 来连接分享时,为何无法浏览一些网站
eth0
Link encap:Ethernet HWaddr 00:01:03:43:E5:34
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:259763 errors:1 dropped:1 overruns:1 frame:0 TX packets:95076 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 Interrupt:10 Base address:0xc000 |
|
MTU |
EtherNet (一般的网络接口,这是默认值) | 1500 |
PPPoE(ADSL用的) | 1492 |
Dial-up(modem) | 576 |
由上面的表格我们可以知道,缺省的网络接口 MTU 是 1500 ,那 PPPOE 使用的是 1492,自然而然的 MTU 要求并不相同,所以啦!有一些网页、邮件数据等等的咚咚就无法合理的让你使用啦!
- 找出 MTU 值:
在 windows 底下要找出 MTU 值就必须进入 DOS 模式,并且知道你的分享的主机的 IP 才行!例如你的主机是 windows 2000 且对内的分享的 IP 是 192.168.1.2,那么你可以这么做:
- 进入 MS DOS 模式;
- 打入 ping -f -l 1500 192.168.1.2
上面的式子中,-l 是 L 的小写(不是 1 喔),1500 是我们要测的 MTU 值,结果出现了 Packet needs to be fragmented but DF set. 这个东西,那表示MTU值太大了,你需要更小的 MTU 值才行!好啦!那假设我们使用 1464 来测试时:
C:\WINDOWS>ping -f -l 1500 192.168.1.2 Pinging 192.168.1.2 with 1500 bytes of data:
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.Ping statistics for 192.168.1.2:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
结果出现了回应了!这表示这一个 MTU 值是可行的!不过,强烈建议找出可行的最大 MTU 值!这样一来,在设置的时候,才可以达到最佳的网络速率!
C:\WINDOWS>ping -f -l 1464 192.168.1.2 Pinging 192.168.1.2 with 1464 bytes of data:
Reply from 192.168.1.2: bytes=1464 time=10ms TTL=128
Reply from 192.168.1.2: bytes=1464 time<10ms TTL=128
Reply from 192.168.1.2: bytes=1464 time<10ms TTL=128
Reply from 192.168.1.2: bytes=1464 time<10ms TTL=128Ping statistics for 192.168.1.2:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 10ms, Average = 2ms
- 找出 MTU 值:利用上面这个方法找到的数值还不是 MTU 喔!由于一些封包上面的问题,上面这个值再加上 28 才是我们所需要的 MTU 值!所以,在上面的例子中,我们所需要的 MTU 值是 1464+28=1492 啦!
- 修改 MTU 值:
OK!我们已经找出 MTU 值啦,那下一步自然就是修改啰!要如何修改呢?其实也是很简单,只要通过 Windows 本身缺省的 registry 修改即可!
Windows 98:
- 在 『开始』>『运行』中,键入<regedit>,会出现一个大框框;
- 选择:『HKEY_Local_Machine』>『System』>『CurrentControlSet』>『Services』>『Class』>『NetTrans』>『000n』
上面最后一个数据是 000n,那个 n 指的是数字,以我为例,在 NetTrans 底下有两个数字,分别为 0000 与 0002,若按下 0000 会显示我的 Gate Way 以及我的网络卡的 IP 项目,至于 0002 则没有我的网络卡的相关信息,所以 0000 那这一个就是我的网络卡接口啦!请依你的情况选择!- 选择你的网络卡接口后(以我为例,按一下 0000 那一个机码),按下『编辑』>『添加』,然后选择增加『DWORD』值;
- 将添加的机码取名为『MaxMTU』,并且在添加加的那个机码上面按右键,选『修改』,会出现如下画面,选择『十进位』后,输入刚刚我们找到的那一个 MTU 值:
- 改完之后你应该会看到如下的画面喔!那就是成功了!
Windows 2000:
基本上,这样应该已经可以解决你的问题了!相关的网页你可以到底下两个网页去看看!
- 在 『开始』>『运行』中,键入<regedit>,会出现一个大框框(注意,也有可能是 regedit32 这个运行档,请依你的机器来作业);
- 选择『HKEY_Local_Machine』>『SYSTEM』>『CurrentControlSet』>『Services』>『Tcpip』>『Parameters』>『interface』,有点像下面的图标:
- 在 interface 底下可能有很多的接口,你一个一个的去看,会有一个接口与你的网络卡的 IP 相同,那个就是你要挑选的接口啦!然后同样的在该接口上选择『编辑』>『添加』>『DWORD值』之后,创建一个名为『MTU』的机码,然后选右键『修改』,选择十进位,填入我们刚刚找出来的 MTU 值!大功告成!
http://www.microsoft.com/taiwan/msclub/member/TIPS/Spring_2001/tip1to3/tip1to3_2.htm
http://redhat.ecenter.idv.tw/bbs/showthread.php?s=&threadid=21620&highlight=MTU