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

转载 2004年11月01日 03:31:00
鳥哥的 Linux ADSL 私房菜
VBirdTitle2.jpg icon_system.gif icon_server.gif icon_security.jpg icon_forums.gif icon_adsl.gif

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』值;
    1. problem_2_MTU-98-1.jpg
  4. 將新增的機碼取名為『MaxMTU』,並且在新增加的那個機碼上面按右鍵,選『修改』,會出現如下畫面,選擇『十進位』後,輸入剛剛我們找到的那一個 MTU 值:
    1. problem_2_MTU-98-2.jpg
  5. 改完之後你應該會看到如下的畫面喔!那就是成功了!
    1. problem_2_MTU-98-3.jpg
Windows 2000:
  1. 在 『開始』>『執行』中,鍵入<regedit>,會出現一個大框框(注意,也有可能是 regedit32 這個執行檔,請依你的機器來作業);
  2. 選擇『HKEY_Local_Machine』>『SYSTEM』>『CurrentControlSet』>『Services』>『Tcpip』>『Parameters』>『interface』,有點像下面的圖示:
    1. problem_2_MTU-2000-1.jpg
  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以來統計人數
Count.cgi?dd=A&ft=0&sh=T&pad=Y&df=vbird_problem_win_02.dat
VBirdTitle2.jpg icon_system.gif icon_server.gif icon_security.jpg icon_forums.gif icon_adsl.gif
Designed by VBird during 2001-2004.  Aerosol Lab.

为何会拿好人卡

前言 这系列开始之前,先要跟大家分享一下这整个系列将会要谈些什么、以及不谈些什么。 首先,这系列主要的重点是想扭转一下很多人思维谬误之处。很多人总以为追求的关键在 于长相、身高、穿着、身价、浪漫、...
  • likika2012
  • likika2012
  • 2013年05月18日 23:29
  • 1930

仅当使用了列的列表,并且IDENTITY_INSERT为ON时,才能在表中为标识列指定显式值

 试图将包含特定标识值的行插入包含标识列的表中。但是,未提供列的列表或没有为指定的表启用 SET IDENTITY_INSERT。处理办法:若要成功地将特定的标识行插入包含标识列的表中,必须提供列的列...
  • tanglinfeng
  • tanglinfeng
  • 2009年03月01日 16:07
  • 1440

ANSI_NULLS和ANSI_WARNINGS

在存储过程中进行跨服务器查询时,总是提示“异质性查询必须设定ANSI_NULLS和ANSI_WARNINGS选项”。但是在前面加上Set ANSI_NULLS ON及Set ANSI_WARNINGS...
  • jing12
  • jing12
  • 2007年09月11日 15:43
  • 501

iTunes Connect 開發人員指南 (iTunes Connect Developer Guide)

檢視與更改 App 的狀態和供應狀況 當 App 開始在 Store 中供應時,其狀態為「銷售準備就緒」,以綠色狀態指示器顯示  。其他任何狀態都表示 App 未在 Store 中生效。您可...
  • jq2530469200
  • jq2530469200
  • 2016年05月23日 09:44
  • 481

SQL SERVER 2005 中的分布式事務控制使用心得

摘要:在SQLSERVER2005中執行具有分布式事務的SQL語句的方法。實驗環境::兩台分別了安裝Windows XP, Windows Xp Service Pack2 , SQLSERVER20...
  • bill2006
  • bill2006
  • 2008年03月17日 17:38
  • 1960

EasyUI datagrid数据表格--获取datagrid中选中行的数据

1.原因:如图 当我点击附件下载时需要获取选中行的数据,从而对立面的附件字段进行判断,从而弹出提示框 2.代码 var row = $('#datagrid').datagrid('getSele...
  • muyeju
  • muyeju
  • 2015年08月13日 15:27
  • 3214

Sql Server中把一个变量作为临时表中的字段!(实例)

Sql Server中把一个变量作为临时表中的字段!(实例) declare @con_id varchar(1000)='c1'--变量值 select @con_id...
  • dxnn520
  • dxnn520
  • 2013年12月15日 17:49
  • 2241

何為ERP

The main application window is controlled by a view (IActiveView).  ArcMap currently has two view ob...
  • Kesa_Kong
  • Kesa_Kong
  • 2007年08月07日 14:37
  • 1750

我是為何!!!

原來今天一整天都是在陪另一個人,另一個人!!!!!!! 昨晚的面膜是為了今天的約會嗎?!!!!! 晚上說眼睛痛,帶隱形眼鏡了是吧!!!! 今天不回短信,不接電話,就跟你和我在一起時,不接他電話那...
  • javatalk
  • javatalk
  • 2011年11月13日 00:53
  • 349

為什麼軟體工程無法估算時間?

而要管理「生產力」,一個現代化的軟體開發團隊,我認為有以下的幾個好工具可以用:Pair Programming (兩人小組) — 一個人寫程式常常會有盲點,兩個人一起則可以看到對方遺漏的地...
  • NULLCN
  • NULLCN
  • 2011年04月19日 10:38
  • 649
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:以 Windows 2000 作為 Server 來連線分享時,為何無法瀏覽一些網站?
举报原因:
原因补充:

(最多只允许输入30个字)