先来介绍下Upnp服务是干啥的(迅雷官网摘录):
UPNP的英文全称是Universal Plug and Play,即通用即插即用协议,是为了实现电脑与智能的电器设备对等网络连接的体系结构。而内网地址与网络地址的转换就是基于此协议的,因此只要我们的路由器支持upnp,并且我们使用支持此协议的xp操作系统,那么我们就可以借此提高点对点传输速度。
路由器如何开启Upnp支持这里就不多说了,重点是在Windows的Upnp服务。没有该服务,除非在路由器上手动开启端口映射,否则网络软件的传输速度是十分寒心的。比如迅雷:
如果画红框的位置不是“正常”而是“阻塞”的话,迅雷左下角的网络会亮黄灯,此时下载速度会大大降低!
上面也说了,支持此协议的是xp操作系统。但如果你用的是Windows Server 2003,很不幸,你系统中没有此服务。可能是微软为了系统安全,放弃集成该服务。在网上搜来被转载N多遍的文章,说的是如何把xp的Upnp服务移植到2003中,下面我再来转载一遍:
首先我们要剥离xp内的upnp文件。通过观察,xp的upnp支持需要以下几个文件
netupnp.inf
netupnph.inf
dpnhupnp.dll
ssdpapi.dll
ssdpsrv.dll
udhisapi.dll
upnp.dll
upnphost.dll
upnpui.dll
upnpcont.exe注:以上文件是我通过对比xp与server的windows组件程序得来的。
步骤如下:
1。注册SSDPSRV、upnphost服务
SSDP Discovery Service:启动您家庭网络上的 UPnP 设备的发现。
Universal Plug and Play Device Host:为主持通用即插即用设备提供支持。右键点击剥离出来的2个inf文件,点击“安装”,此时需要剥离出来的dll文件与exe文件。此时,服务已经注册好,可以在“服务管理器”看到。
注册启动服务需要的用户,
打开注册表。查找以下键值
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost
在右边的列表中找到LocalService,双击在其后面添加
SSDPSRV
upnphost2。安装windows组件。
打开系统盘的system/inf文件夹,找到netoc.inf,打开
在[Optional Components]添加以下字段。
UPNP
BEACON
Iprip
保存退出。
打开windows组件,打开网络服务。
钩选:internet网关设备发现与用户upnp,其中需要剥离的文件。到现在所有的文件已经加载完,重启。
重启后,启动以上2个服务,设置成自动。
经过本人亲自测试,该方法是有效的,可以顺利地把xp中Upnp服务移植到2003中,并且目前用来一直很稳定。(注:Upnp服务有溢出漏洞,需要高安全环境的用户切勿移植该服务!)但步骤比较繁琐,我在这里提供Upnp服务补丁,使用该补丁能够十分方便地在没有该服务的系统中安装Upnp服务!
补丁特点有:
- 补丁中使用的上述服务相关DLL和EXE等均从Windows XP Sp3原版系统盘ISO中提取。该ISO的MD5为e74d72f3d90456003e9e02ba0fb7da61,CRC为ffffffff。
- 补丁修改的上述netoc.inf,将在Inf目录中创建netoc.inf.bak备份,方便错误操作时恢复。
- 补丁在Windows Server 2003企业版(实际上是冷风的0808系统)中测试正常。
- 补丁理论上能够通用于2000、2003、xp,但VISTA与Windows 7系统请勿尝试!
- 补丁文件安全通过NOD32查杀,病毒库:4099(20090525)
下载地址:SkyDrive