2024年1月19日发(作者:)
UPnP功能设置
2007-12-03 08:26
在内网下使用BT下载,网络电视等P2P类软件时,常需要在软件与路由器中进行端口映射操作,但是现在的路由器中都带有UPnP 功能(通用即插即用 (UPnP) 是一种用于
PC
机和智能设备(或仪器)的常见对等网络连接的体系结构,尤其是在家庭中。UPnP 以 Internet
标准和技术(例如 TCP/IP、HTTP 和 XML)为基础,使这样的设备彼此可自动连接和协同工作,从而使网络(尤其是家庭网络)对更多的人成为可能。其实简单的理解为自动端口映射就可以了),有了UPnP功能,只需要在路由器中打开UPnP功能就可以方便的使用各类P2P软件,再也不需要每次都手动去操作端口映射了!下面以TP-Link路由器为例在路由器中打开UPnP
输入用户名和密码(默认用户名和密码都是admin),进入路由器的Web控制界面(TP-Link路由器默认是192.168.1.1,在浏览中输入192.168.1.1回车,别的品牌默认的也许不相同可以参考说明书或去路由器官方网站查询)
点击“转发规则”,点击“upnp设置”,并将其设置为 “启动”
最后保存设置后退出就已经设置好了路由器。
现在要在xp系统中设置,点击“开始”,点击“控制面板”,点击“添加或删除程序”。在“添加或删除程序”对话框中,点击“添加/删除Windows组件”。 选中“网络服务”,点“下一步”
(也许安装过点击“确定”,然后点击“Windows组件向导”对话框中的“下一步”。完成安装。程中有时需要Windows XP的安装光盘),完成安装后,重新启动电脑后,会发现Windows XP提示找到新硬件,同时在任务栏的“气泡”提示中提示找到Internet网关设备,当然这个设备的具体型号会根据所使用的路由器的不同而不同。这样就完成了UPnP的安装,不过还需要在XP系统中打开相应的服务,点击“开始”,点击“控制面板”,点击“性能与维护”再点击“管理工具”,然后在点击“服务”——找到“SSDP Discovery Service”双击,启动类型选择“自动”点击“应用”,服务状态点击“启动”,确认。
在“Windows组件向导”中,点击“网络服务”,点击“详细”,然后选择“Internet 网关设备发现和控制客户和“UPnP 用户界面”复选框。
然后再找到“Universal Plug and Play Device Host”与“Windows Firewall/Internet Connection
Sharing (ICS)” 双击服务,启动类型选择“自动”点击“应用”,服务状态点击“启动”,确认。
现在就全部完成了,不过使用时要在所使用的防火墙中打开UPnP。以后不管安装什么P2P软件只要使用的软件中如BitComet中打开UPnP选项就可以了。
深入理解UPnP工作原理和使用方法
UPnP的工作原理和应用范围及使用方法和环境
有很多朋友问我内网鸽子上线时 用UPNP 为什么上不了线 ,可是别人又能。看了这文章号不用在问了
一 UPNP的概念
UPnP 范围广泛,原因是它面向的是家庭网络、临近网络及小型企业和商住楼中的网络。在网络控制设备的管理下,它支持任何两个设备之间的数据通讯。UPnP 不依赖于特定的操作系统、编程语言或物理媒体。UPnP 支持零配置网络及自动查找功能,这样以来,设备即可动态加入网络,获取 IP 地址,宣布自己的名称,根据需要提供功能,并了解其它设备的存在和功能。DHCP 和 DNS 服务器为可选项。只要在网络上可用,即可加以使用。此外,设备还可自动平稳地脱离网络,而不会遗留任何不必要的状态。UPnP 汲取了 Internet 的成功之处并继承了它的组件,包括 IP、TCP、UDP、HTTP 及 XML。UPnP 中涉及了多供应商之间的协作,旨在建立标准的设备控制协议 (DCP)。与 Internet 类似,这些协议以公告式线协议为基础,表示为 XML 形式,且通过 HTTP 进行通讯。
以下是BC官方网站对UPnP的解释:UPnP(Universal Plug and Play),通用即插即用,是一组协议的统称,不能简单理解为UPnP=“自动端口映射”。
在BitComet下载中,UPnP包含了2层意思:
1、对于一台内网电脑,BitComet的UPnP功能可以使网关或路由器的NAT模块做自动端口映射,将BitComet监听的端口从网关或路由器映射到内网电脑上。
2、网关或路由器的网络防火墙模块开始对Internet上其他电脑开放这个端口。对于一般的使用者来讲,简单的把UPnP理解为自动端口映射就可以了。它就是一种基于TCP/IP协议的,针对设备彼此间的通讯而制订的新的Internet协议,目的就是希望未来所有联入Internet中的设备能够不受网关阻碍的相互通信。
二 UPNP的应用范围
1、只有在需要使用一些支持UPnP功能的P2P软件的时候,如BT、电骡eMule、MSN等,我们才需要考虑UPnP这个东东。如果你根本就不用这些软件,仅仅是上网浏览的话,下文就没必要看了;
2、如果你需要使用这些P2P软件,但你是外网用户,那么下文也可以不看了,因为你不需要做什么UPnP就可以正常使用这些P2P软件了;
至于如何判断自己是内网用户还是外网用户,可以参考下面:
- -关于宽带用户是内网还是外网之完全解析- -
3、如果你是内网用户,但你已经手动为这些P2P软件进行了端口映射,如在使用BC下载时,在“用户列表”中已经看到“远程”,或者是使用电骡eMule连接服务器成功后,已经显示为高ID,那么下文也可以不看了。
但需要注意的是,手动做的端口映射只是针对某个P2P软件起作用,如果再使用新的P2P软件的话,仍然需要针对新的P2P软件做相应的端口映射才可以;
如何手动进行端口映射的方法可参考下面:
4、如果你是内网用户,需要使用这些P2P软件,而且并未进行手动端口映射,比如在使用BC进行下载时,“用户列表”中只有“本地”而没有“远程”,在使用电骡eMule的时候,显示的也是低ID,那么此时我们才需要考虑端口映射的问题!
这时我们可以有两种选择:
1、进行手动端口映射,方法参见上面第3点的链接文章;
2、打开UPnP功能,进行自动端口映射,也就是我们下面所讲的内容;
三 实现UPnP必须满足哪些条件:
1、Modem必须支持UPnP功能:是否具备此功能可查阅说明书或者直接咨询厂家。一般来讲,Modem还必须同时支持路由功能,除非你配备了单独的路由器;
2、操作系统的支持:文章开头提到的那篇介绍UPnP的文章中,提到只有windows xp系统才支持UPnP功能,但微软的官方网站声称从Windows Me开始就已经支持UPnP功能了。但Windows Me这个操作系统我也没有用过,大家可以自行测试;
3、软件必须支持UPnP功能:如BC、电骡eMule、MSN等软件都支持UPnP功能;
注意:以上3个条件必须同时满足,缺一不可,否则你只能考虑进行手动端口映射了;
四、UPNP使用方法
如果已经满足了上述的3个条件,那么我们就一步一步的讲解一下到底如何才能打开UPnP功能;
1、在Modem中打开UPnP功能,如图:
不同型号的Modem设置界面和方法略有不同,如有些是在下拉菜单中选择Enable,但基本的原理都是一样的;
有些文章提到,此时要把所有桥接的eoa连接都删除掉,其实不需要。因为目前只有你的PPPOE连接是有效的,其它的几个eoa所对应的VPI和VCI根本就是无效的,所以没有必要删除。但是否有些型号的Modem会比较特殊也很难讲,因此建议此时暂不删除,把全部设置进行完后,如果还是没有打开UPnP,再尝试把eoa删除掉;当然,设置完后,一定要保存并重启Modem;
2、在操作系统中打开UPnP功能:
如果你使用的是XP SP2系统,则首先进入:控制面板->添加或删除程序->添加/删除windows组件中,在“网络服务”中勾选“UPnP用户界面”,如图:
确定后,系统会自动安装相应的组件,可能会提示你插入安装光盘,总之按照提示操作完成即可;
接着打开Windows自带的防火墙,在“例外”选项卡中勾选“UPnP框架”,如图:
其实有个更加简单的方法可以同时完成以上两步:双击桌面上的网上邻居(注意是鼠标左键双击,不是右键查看属性),然后点击“显示联网的UPnP设备的图标”,系统会自动安装UPnP组件以及在防火墙中打开UPnP框架,实际上就是一次性完成上面两步的工作;
如果你使用的是XP SP1系统,那么在“windows组件”中显示的是“通用即插即用”,而不是“UPnP用户界面”,选择此项即可,如下图:
而且XP
SP1系统的防火墙并没有UPnP框架的选项,需要手动进行端口添加,另一教程对此做了阐述,现引用过来:【请在防火墙设置中,点“高级”,然后自行添加如下两个端口:TCP端口类型,端口号为:2869,UDP端口类型,端口号为:1900 。由于你使用了NAT网关,所以你应该设置的是您连接到该网关的网卡的防火墙。而且网关内部均为内网,所以开启这两个端口,不会对系统造成安全隐患(除非你的NAT网关被绕过,否则外部连接无法检测到该端口)。】以上的防火墙设置只是针对windows自带的防火墙,如果你安装了其它的防火
墙,必须在该防火墙中打开UPnP框架;
3、在windows中打开相应的UPnP服务:
进入“控制面板->管理工具->服务”,找到SSDP Discovery Service和Universal Plug and Play
Device Host两项服务,如图:
右击相应的服务项,选择属性,启动这两项服务,如图:
做完以上工作后,如果操作正确,我们就可以在“网络连接”中看到多了一项网关,这表明添加UPnP已经成功,如图:
4、打开P2P软件中的UPnP功能:以BC和电骡eMule为例,相应的设置选项分别如图:
到此为止,UPNP配置结束。
以BC为例,成功添加UPnP功能后,在“全局日志”中我们会看到类似下面的几行:
Windows XP UPnP Status: Found WAN Connection Device[Linksys Inc.]
[/]
Windows XP UPnP Status: WAN IP: 218.30.*.*
Windows XP UPnP Status:
Port Mapping Existed!
我们用BC进行下载,如果用户列表中有“远程”,或者用电骡eMule连接服务器后显示为高ID,那么就大功告成了!如图
五 UPNP工作原理
1 UPNP的协议
1.1 UPnP是一个多层协议构成的框架体系,每一层都以相邻的下层为基础,同时又是相邻上层的基础。直至达到应用层为止。该图中的最下面是就是IP和TCP,共两层,负责设备的IP地址。
1.2 三层是HTTP、HTTPU、HTTPMU,这一层,大家应当是熟悉的,属于传送协议层。传送的是内容都经过“封装”后,存放在特定的XML文件中的。对应的SSDP、GENA、SOAP指的是保存在XML文件中的数据格式。到这一层,已经解决了UPnP设备的IP地址和传送信息问题。
1.3 第四层是UPnP设备体系定义,仅仅是一个抽象的、公用的设备模型。任何UPnP设备都必须使用这一层。
1.4 第五层是UPnP论坛的各个专业委员会的设备定义层,
1. 5 最上层,也就是应用层,由UPnP设备制造厂商定义的部分。这一层的信息是由设备制造厂商来“填充”
的,这部分一般有设备厂商提供的、对设备控制和操作的底层代码,然后,就是名称序列号呀,厂商信息之类的东西。
2 协议内部的详细情况
仅仅有这样五层UPnP协议,也只不过有了一个共同遵守的框架,实际的UPnP系统究竟是如何构成的呢?
完整的UPnP服务系统由支持UPnP的网络和符合UPnP规范的设备共同构成的。
整个系统是由设备、服务、和控制指针三部分所构成。
设备:这里是指符合UPnP规范的设备。一个UPnP设备可以看成一个包含服务并嵌套了常规设备的“容器”
。例如,一个UPnP的VCR(录像机)设备可以包含磁带传送服务、调谐服务和时钟服务。就是说,UPnP之下的设备不能仅仅理解为硬件意义上的设备,而应当包括服务功能。
不同种类的UPnP设备将关联不同的设置、服务和嵌入设备。如打印机和VCR属于不同用途的设备,服务就不可能定义成一样的。
服务:设备执行用户请求的控制过程,可划分成一个个很小的阶段或单位,每个单位就称为一个服务。每一个服务,对外都表现为具体的行为和模式,而行为和模式又可以用状态和变量值进行描述。只要可以用数值描述,在计算机里面就容易处理了。例如,模仿一个时钟,它只有一个工作模式:这个模式就是模拟并显示当前的时间。而一个时钟的行为共有两种(也只有两种):
2.1 设置时间(用来“即平时说的对表”).
2. 2 得到时间(用于显示时间)。
其它设备服务,也是用这样思路来描述和定义的,一个设备也可以被定义多个服务。不论是设备的定义信息和服务的描述信息,都保存在一个XML文件中,这个文件也是UPnP协议构成的一部分。当设备建立和使用服务的时候,XML文件可以与它们进行关联。XML文件中还有一个很关键的“状态表”,状态表可进一步分为“服务状态表”和“事件状态表”。整个UPnP设备运行的全过程内,状态表贯穿始终,当设备状态改变的时候,例如发生参数变化或状态刷新的时候,立即就在“状态表”中反映出来。如控制服务器在接收到设置时间的行为请求时,就立即执行请求(对时操作),并给出响应,同时更新状态表中的有关数据。相应地,事件服务器负责向对此事件感兴趣的设备公布所发生的状态改变。例如,一个火灾事件发生后,事件服务器就向火灾报警器发布这个事件,导致报警器动作产生报警信号。
控制指针:
在UPnP网络中,用户请求设备执行的控制是通过控制指针实现的,控制指针首先是一个有能力控制别的设备的控制者,还要具有在网络中
“发现”控制目标的能力。在发现(控制目标)之后,控制指针应当:
①取得设备的描述信息并得到所关联的服务列表。
②取得相关服务的描述。
③调用控制服务行为。
④确定服务的事件 “源”,不论何时,只要服务状态发生改变,事件服务器会立即向控制指针发送一个事件信息。
从上面说到的各种信息,都保存在XML文件中,不同用途的信息,格式不同。保证可以各取所需,不会混淆。
那么,UPnP的完整工作过程是怎样的呢?
UPnP在控制指针和被控制设备之间提供通讯功能。而网络介质、TCP/IP协议、HTTP仅提供基本的连接和IP地址分配。整个工作过程需要处理六个方面的内容,即地址分配、发现设备、对设备的描述、设备控制、设备事件、设备表达。
地址问题:
地址是整个UPnP系统工作的基础条件,每个设备都应当是DHCP(Dynamic
Host Configuration Protocol
动态主机配置协议)的客户。当设备首次与网络建立连接后,利用DHCP服务,使设备得到一个IP地址。这个IP地址可以是DHCP系统指定的,也可以是由设备选择的,当然,有能力自己选择IP地址的设备,必然是那些“聪明”的设备才行!这也就是所谓的“自动”IP地址。如果遇到本地DHCP管理范围之外的IP地址请求,还需要解决“友好设备”的地址分配问题,这个问题通常由域名服务器来解决。
发现设备:
可分成两种情况,一种是在有控制请求之后,在当前的网络中查找有无对应的可用设备;另一种情况是某一设备接入网络、取得IP地址之后,就开始向网络“广播”自己已经进入网
络,即寻找控制请求。
设备的描述:
简单说,这是声明“自己”是什么样的设备,例如名称、制造厂商、序列号码等等。刚开始“发现”设备后,控制指针对这个设备的“了解”还很少,需要依据ULR找到该设备的描述文件,从这些文件中读取更多的描述信息。描述信息的范围很广,一般都是由设备的制造厂商提供的。主要的描述项目有:控制的模式名称和模式号码、设备序列号、制造厂商名称、厂商的WEB的ULR……等等。这些一般都存放在特定的XML文件中;
设备控制:
控制指针找到设备描述之后,会从描述中“提炼”出要进行的操作并获悉所有的服务;对每个UPnP设备来说,这些描述必须是很确切、很详细的,描述中可能包含有命令或行为列表、服务响应信息、用到的参数等等。对于服务的每个行为,也伴有描述信息:主要是整个服务进行期间的变量、变量的数据类型、可用的取值范围和事件的特征。
要控制某个设备,控制指针必须先发送一个控制行为请求,要求设备开始服务,然后再按设备的ULR发送相应的控制消息,控制消息就是放置在XML文件中的那些SOAP格式的信息。最后,服务会返回响应信息,指出服务是成功或是失败。
设备事件:
在服务进行的整个时间内,只要变量值发生了变化或者模式的状态发生了改变,就产生了一个事件,系统将修改上述提到的事件列表的内容。随之,事件服务器把事件向整个网络进行广播。另一方面,控制指针也可以事先向事件服务器预约事件信息,保证将该控制指针感兴趣的事件及时准确地传送过来。
广播或预约事件,传送的都是事件消息,事件消息也放在XML文件中,使用的格式是GENA。
设备投入工作之前的准备───初始化过程,也是一个事件,初始化需要的各种信息也是用事件消息传送的。包括的内容主要是:变量初始值,模式的初始状态等等。
设备表达:
只要得到了设备的ULR,就可以取得该设备表达页面的ULR,然后可以将此表达纳入用户的本地浏览器上。这部分还包括与用户对话的界面,以及与用户进行会话的处理。
整个UPnP系统,是在“中枢神经”的指挥下协同工作的。其大致情形如下:
凡是具备IP地址的的设备都必须直接使用网络的IP地址,但有些设备可能并不具备直接使用网络IP地址的能力,例如,电灯开关的控制就是这样,这是非IP设备;非IP设备通过网桥(UPnP
Bridge)来与控制指针交换信息。
直接使用IP地址的有:控制指针(可在口袋电脑和远程设备上发出控制)、本地设备,例如VCR和时钟;以及网桥。非IP设备有所谓轻设备(如温度控制器)和非UPnP的设备(如电灯控制开关等)。
上述介绍属于硬件方面,下面再说作为控制灵魂的软件:
在上面的叙述中,多次提到用XML文件存放需要的信息,因为无论是控制指针或设备服务,都需要很多信息,有读出的,有传出的,UPnP协议约定这些都存放在特定的文件XML中。用途不同的信息,在XML文件中的格式不同。所以,相关的XML文件是控制服务的灵魂。
四、关于UPnP隐藏的安全缺缺陷:
这次发现的安全缺陷共有两个,其中第一个缺陷是对缓冲区(Buffer)的使用没有进行检查和限制。外部的攻击者,可以通过这里取得整个系统的控制特权!由于UPnp功能必须使用计算机的端口来进行工作,取得控制权的攻击者,还有可能利用这些端口,达到攻击者
的目的。这个缺陷导致的后果很严重,不论那个版本的windows 系统,只要运行UPnP,就都存在这个危险!但严格地说,这并不完全是UPnP技术本身的问题,更多的是程序设计的疏忽。
第二个缺陷就与UPnP的工作机理有关系了!
该缺陷存在于UPnP工作时的“设备发现”阶段。发现设备可以分为两种情况:如果某个具备UPnP功能的计算机引导成功并连接到网络上,就会立刻向网络发出“广播”,向网络上的UPnP设备通知自己已经准备就绪,在程序设计这一级别上看,该广播内容就是一个M-SEARCH(消息)指示。该广播将被“声音所及”范围之内的所有设备所“听到”。并向该计算机反馈自己的有关信息,以备随后进行控制之用。
相类似,如果某个设备刚刚连接到网络上,也会向网络发出“通知”,表示自己准备就绪,可以接受来自网络的控制,在程序设计这一级别上看,该通知就是一个NOTIFY(消息)指示。也将被“声音所及”范围之内的所有计算机接受。计算机将 “感知”该设备已经向自己“报到”。实际上,NOTIFY(消息)指示也不是单单发送给计算机听的,别的网络设备也可以听到。
就是在上述的一播一听之间,出现了问题!
如果某个黑客向某个用户系统发送一个NOTIFY(消息)指示,该用户系统就会收到这个NOTIFY(消息)指示并在其指示下,连接到一个特定服务器上,接着向相应的服务器请求下载服务───下载将要执行的服务内容。服务器当然会响应这个请求。UPnP服务系统将解释这个设备的描述部分,请求发送更多的文件,服务器又需要响应这些请求。这样,就构成一个“请求──响应”的循环,大量占用系统资源,造成UPnP系统服务速度变慢甚至停止。所以,这个缺陷将导致“拒绝服务”攻击称为可能!
结束语
UpnP正在向我们一步步走近,现在已经是足声可闻了。不久的将来,必然对我们的工作和生活产生巨大影响。也蕴含着无限商机。尽管现在存在问题,也难保以后就不会再出现新的问题,但这既然体现了人的需求意向,就会有巨大的生命力,暂时的挫折不会使得它停下前进的脚步!
附:这是本文出现的相关名词解释:
传送协议:
主要用HTTP 、HTTPU和HTTPMU:
HTTP:
这是大名鼎鼎的东西,不用多说,但就UPnP系统来说,HTTP及其派生协议都属于核心部分。
HTTPU和HTTPMU:
这些都是从HTTP协议中派生定义出来的。主要用于传送SSDP格式的设备消息。
SSDP:
是一个“简单服务发现协议” ,即英文“Simple Service Discovery Protocol的缩写” , 该协议定义了如何在网络上发现网络服务的方法。SSDP也规定了存放在XML文件中的信息格式。SSDP信息的传送是依靠HTTPU和HTTPMU进行的。不论是控制指针,或是UPnP设备,工作中都必然用到SSDP,设备接入网络之后,要利用它向网络广播自己的存在(广播的信息中还有设备位置的描述),以便尽快与对应的控制指针建立联系;控制指针则利用SSDP来搜索自己将要控制的设备在哪里?并且可以排除已经存在的设备和控制指针──只为新近的或尚未“联络”上的双方服务。控制指针利用SSDP的方式是经由HTTPU发出搜索请求,这种请求可以很详细,能具体到需要什么样的设备以及何种服务。例如:请求对特定的VCR机进行设置时钟的服务。设备利用SSDP的方式是“收听”来自网络端口的消息,从
中发现与自己匹配的信息,一旦找到与自己匹配的信息,经由HTTPMU来发送一个响应信息到控制指针。
GENA:
这是事件消息采用格式,是所谓“普通时间通知体系Generic Event Notification
Architecture”的缩写。关于事件消息,在上面已经有介绍。
SOAP:
即简单对象访问协议,实际就是通过该协议传递控制消息并返回设备对消息的响应结果。它利用XML和HTTP进行远程调用。使用防火墙或别的网络安全措施不会影响SOAP的使用。
每个UPnP控制请求都可作为一个SOAP控制消息,控制消息中还包含有控制行为描述和所用到的参数。
``````````````````` 看完这里 我相信那些配置灰鸽子内网上线用UPNP软件的在也不会有什么问题了吧
发布评论