CSDN博客

img skyonehbyc

以 Windows 2000 作為 Server 來連線分享時,為何無法瀏覽一些網站?

发表于2004/11/1 3:31:00  985人阅读

分类: 技术文章

鳥哥的 Linux ADSL 私房菜


2001/11/04
以 Windows 2000 作為 Server 來連線分享時,為何無法瀏覽一些網站?
  • 問:以 Windows 2000 作為 Server 來連線分享時,為何無法瀏覽一些網站?
  • 答:
    這個問題一直到前一陣子才發現解決之道!我還真是孤陋寡聞的哩!
    問題說明:
    其實不只是 windows 2000 ,就是使用 windows 98 以一些連線分享的軟體來作為頻寬分享工具時,同樣也會有這個問題產生的!就是用戶端無法瀏覽某些網站或是無法發送內含附件的電子郵件。而造成這個問題的原因就是 MTU 的問題啦!什麼是 MTU 呢?那就是 Maximum Transmission Unit 的縮寫!那是啥?其實我也不是很清楚,只知道不同的介面具有不同的 MTU 要求,當 MTU 的需求與你的網路介面不同時,就會有問題發生啦!一般而言,MTU 在網路卡(EtherNet)的預設值為 1500 單位,如果你是在 Linux 系統下的時候,執行 ifconfig eth0 試試看,你會看到如下的畫面:
     
    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 值囉!好啦!剛剛說到不同的網路介面具有不同的 MTU 要求,那以下就列出一下各主要的網路介面之 MTU 的要求啦!
     
    網路介面
    MTU
    EtherNet (一般的網路介面,這是預設值) 1500
    PPPoE(ADSL用的) 1492
    Dial-up(modem)  576

    由上面的表格我們可以知道,預設的網路介面 MTU 是 1500 ,那 PPPOE 使用的是 1492,自然而然的 MTU 要求並不相同,所以啦!有一些網頁、郵件資料等等的咚咚就無法合理的讓你使用啦!

    解決之道:
    那該如何解決呢? 其實只要調整 Client 端網路卡的 MTU 值即可完全解決此一問題!而且藉由調整 MTU 值也可以增進網路效率呢。 那首要課題自然就是知道你的網路卡所可以負荷的 MTU 啦!因此我們第一步就是要找到適合的 MTU :
  • 找出 MTU 值:
    在 windows 底下要找出 MTU 值就必須進入 DOS 模式,並且知道你的分享的主機的 IP 才行!例如你的主機是 windows 2000 且對內的分享的 IP 是 192.168.1.2,那麼你可以這麼做:
    1. 進入 MS DOS 模式;
       
    2. 打入 ping -f -l 1500 192.168.1.2
       
      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

      上面的式子中,-l 是 L 的小寫(不是 1 喔),1500 是我們要測的 MTU 值,結果出現了 Packet needs to be fragmented but DF set. 這個東西,那表示MTU值太大了,你需要更小的 MTU 值才行!好啦!那假設我們使用 1464 來測試時:
       
      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=128

      Ping 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 值!這樣一來,在設定的時候,才可以達到最佳的網路速率
       
    3. 找出 MTU 值:利用上面這個方法找到的數值還不是 MTU 喔!由於一些封包上面的問題,上面這個值再加上 28 才是我們所需要的 MTU 值!所以,在上面的例子中,我們所需要的 MTU 值是 1464+28=1492 啦!
  • 修改 MTU 值:
    OK!我們已經找出 MTU 值啦,那下一步自然就是修改囉!要如何修改呢?其實也是很簡單,只要透過 Windows 本身預設的 registry 修改即可!
    Windows 98:
    1. 在 『開始』>『執行』中,鍵入<regedit>,會出現一個大框框;
    2. 選擇:『HKEY_Local_Machine』>『System』>『CurrentControlSet』>『Services』>『Class』>『NetTrans』>『000n』
      上面最後一個數據是 000n,那個 n 指的是數字,以我為例,在 NetTrans 底下有兩個數字,分別為 0000 與 0002,若按下 0000 會顯示我的 Gate Way 以及我的網路卡的 IP 項目,至於 0002 則沒有我的網路卡的相關資訊,所以 0000 那這一個就是我的網路卡介面啦!請依你的情況選擇!
    3. 選擇你的網路卡介面後(以我為例,按一下 0000 那一個機碼),按下『編輯』>『新增』,然後選擇增加『DWORD』值;
    4. 將新增的機碼取名為『MaxMTU』,並且在新增加的那個機碼上面按右鍵,選『修改』,會出現如下畫面,選擇『十進位』後,輸入剛剛我們找到的那一個 MTU 值:
    5. 改完之後你應該會看到如下的畫面喔!那就是成功了!
    Windows 2000:
    1. 在 『開始』>『執行』中,鍵入<regedit>,會出現一個大框框(注意,也有可能是 regedit32 這個執行檔,請依你的機器來作業);
    2. 選擇『HKEY_Local_Machine』>『SYSTEM』>『CurrentControlSet』>『Services』>『Tcpip』>『Parameters』>『interface』,有點像下面的圖示:
    3. 在 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
    另外,網友有建議另一個測試 MTU 的網頁,你也可以上去瞧一瞧,不過,要上這個網頁之前,『請先將你的代理伺服器設定 取消』否則測到的會是你的 Proxy 而不是你的真實 IP 喔!
    http://forums.speedguide.net:8117/
2001/ 12/15以來統計人數


Designed by VBird during 2001-2004.  Aerosol Lab.
阅读全文
0 0

相关文章推荐

img
取 消
img