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

本文围绕以 Windows 2000 作为 Server 连网分享时无法浏览部分网站的问题展开,介绍了找出和修改 MTU 值的方法。先通过 MS DOS 模式测试找出可行的 MTU 值,再加上 28 得到所需值,最后在注册表中修改相关键值以完成设置,从而达到最佳网络速率。
鳥哥的 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.
<think>我们正在处理一个关于在LabVIEW中连接KepServer的问题。根据引用内容,我们知道KepServerEX是一个OPC服务器,用于工业自动化中的数据通信。LabVIEW可以通过OPC客户端与KepServer通信。在LabVIEW中连接KepServer,通常有两种方式:1.使用LabVIEW自带的DataSocket技术,通过OPC协议连接。2.使用LabVIEW的OPC客户端工具包(如NIOPCServers)。由于LabVIEW本身支持OPC,我们可以通过以下步骤实现连接:步骤1:确保KepServerEX已正确安装并运行,且已配置好需要访问的设备和标签(Tags)。步骤2:在LabVIEW中,可以使用“共享变量引擎”(SharedVariable Engine)或直接使用DataSocket函数来连接OPC服务器。方法一:使用DataSocket函数-在LabVIEW程序框图中,使用“DataSocket Read”和“DataSocket Write”函数。-在URL中,输入:opc://<计算机名>/<KepServer中的OPC项路径>例如:opc://localhost/Kepware.KEPServerEX.V6/Channel1.Device1.Tag1方法二:使用共享变量-在LabVIEW项目中,创建一个新的共享变量,并选择OPC作为数据源。-配置共享变量绑定到KepServer中的OPC项。然而,根据引用[3]中的描述,KepServerEX也支持OPC UA(统一架构),因此我们也可以使用OPCUA的方式连接。方法三:使用OPC UA(如果使用LabVIEW2017或更高版本,内置了OPCUA支持)-在LabVIEW中,使用“OPC UA”面板中的函数(位于:数据通信->OPC UA)。-需要创建OPCUA客户端,并连接到KepServer的OPC UA端点(URL)。参考引用[3]中的配置,KepServer的OPC UA默认端点可能是:opc.tcp://localhost:49320(注意端口号可能不同,请根据KepServer配置查看)。具体步骤(以OPCUA方式为例):1.在KepServer中配置OPCUA端点(确保已启用,并记录URL和端口)。2.在LabVIEW中,使用“创建端点”函数,输入KepServer的OPC UA服务器URL。3.使用“创建会话”函数,建立连接(可能需要安全策略,如果不需要安全设置,可以选择None)。4.然后使用“浏览”函数查找节点,或直接使用节点ID来读取/写入数据。注意:如果KepServer配置了用户名和密码,则在创建会话需要提供。下面是一个简化的LabVIEW程序框图(伪代码描述):-创建端点(Endpoint)-创建会话(Session),连接到端点-读取节点(ReadNode)或写入节点(Write Node)-关闭会话(CloseSession)由于LabVIEW是图形化编程,具体实现需要拖放相应的函数并连线。但是,根据引用[1]和引用[3],我们也可以参考Python代码中连接OPCUA的方式,其原理是类似的。在LabVIEW中,我们同样需要知道OPC服务器的地址(URL)以及要访问的节点ID。引用[2]提到使用Labview实现操作界面,并通过KEPServerEX6传递信号,说明这种连接是可行的。因此,总结在LabVIEW中连接KepServerEX的步骤:1.确认KepServerEX已安装并配置好,包括OPC DA或OPCUA的端点。2.在LabVIEW中,根据使用的协议(OPCDA或OPCUA)选择相应的函数。3.使用URL(对于OPCUA)或OPC项路径(对于OPC DA)来访问数据。注意:OPCDA是传统OPC,只能在Windows上使用,且需要DCOM配置;而OPC UA是跨平台的,且无需DCOM配置,推荐使用OPCUA。由于用户没有指定具体使用哪种OPC,我们建议使用OPC UA,因为它更现代且配置简单。具体OPC UA连接步骤(LabVIEW代码):1.使用“OPCUA创建端点”函数,输入KepServer的OPCUA服务器URL(如opc.tcp://localhost:49320)。2.使用“OPCUA创建会话”函数,连接到端点(可以选择匿名登录或用户名/密码)。3.使用“OPCUA浏览”函数浏览节点,或者直接使用节点ID字符串(从KepServer中获取)来读取或写入。4.使用“OPC UA读取”函数读取节点值,使用“OPCUA写入”函数写入节点值。5.最后关闭会话。关于节点ID:在KepServer中配置的标签(Tags)都有对应的节点ID,可以在KepServer的配置中查看,或者在LabVIEW中通过浏览节点树来获取。注意:在KepServer中,需要确保OPCUA服务已启用,并且防火墙允许该端口的通信。如果用户遇到连接问题,请检查:-KepServer的OPCUA配置是否正确(包括端口和允许的地址)。-网络连接是否正常(如果是远程连接,需要确保网络可达)。-安全策略是否匹配(在LabVIEW中创建会话选择的安全策略需要与服务器端一致)。以上就是在LabVIEW中连接KepServerEX的基本方法。</think>### 在LabVIEW中连接KepServer的步骤 #### 1. **配置KepServer端** - 确保KepServerEX已安装并运行 - 在KEPServerEX Configuration中: - 创建通道(Channel),选择设备协议(如Siemens S7、Modbus等) - 添加设备(Device),配置设备参数(如PLC IP地址) - 定义标签(Tags),即需要访问的数据点 - 启用OPC UA服务(默认端口49320): ```plaintext opc.tcp://localhost:49320 ``` [^3] #### 2. **LabVIEW连接方法** ##### 方法1:使用OPC UA客户端(推荐) 1. 在LabVIEW程序框图中添加函数: - `数据通信 → OPC UA → 创建端点` - `数据通信 → OPC UA → 创建会话` 2. 配置端点URL: ```plaintext opc.tcp://[计算机IP]:49320 ``` 3. 创建会话(匿名登录示例): ![OPC UA连接函数](https://img-blog.csdnimg.cn/aeb9ca3f3e89441b8d3d2f657fc37390.png) [^3] 4. 使用`浏览节点`函数查找KepServer中的标签 5. 通过`读取节点`/`写入节点`进行数据交互 ##### 方法2:使用DataSocket(传统OPC DA) 1. 在LabVIEW中使用DataSocket API: ```plaintext dstp://localhost/opc:[KepServer项目名].[设备名].[标签名] ``` 2. 示例读取代码: ```plaintext DataSocket Read → URL: dstp://localhost/opc:Kepware.KEPServerEX.V6.Channel1.Device1.Tag1 ``` [^1] #### 3. **关键配置项** | 配置项 | 示例值 | 说明 | |----------------|--------------------------------|------------------------| | OPC服务器名 | `Kepware.KEPServerEX.V6` | KepServer默认服务名 | | OPC UA端口 | `49320` | 默认通信端口 | | 标签路径格式 | `通道名.设备名.标签名` | KepServer层级结构 | | 安全策略 | `None` 或 `Basic256Sha256` | 测试环境可选无加密 | #### 4. **故障排查** - **连接失败**: - 检查Windows防火墙是否放行49320端口 - 确认KepServer的OPC UA服务已启用 - **数据读取异常**: - 在KEPServerEX中测试标签状态 - 检查LabVIEW的节点ID是否匹配: ```plaintext ns=2;s=[通道名].[设备名].[标签名] ``` - **权限问题**: - 若配置用户名/密码,需在LabVIEW会话创建添加认证参数 #### 5. **应用场景示例** ```mermaid graph LR A[PLC设备] -->|Modbus TCP| B[KepServerEX] B -->|OPC UA| C[LabVIEW] C --> D[人机界面] C --> E[数据记录系统] ``` 用于实现:实设备监控、历史数据记录、报警管理、自动化测试等工业应用[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值