RSS icon Home
  • “网络连接共享”(internet connection sharing)在北外校园中的实际应用 - []

    Dec 20, 2013 22:12 ICS 共享 netsh 软AP 虚拟Wifi

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://www.blogbus.com/n-br-logs/243904025.html

    提要

    ICS(即网络连接共享)允许多个网络设备共享一个网络连接,从而实现多设备同账号多点登录。将其运用在北外校园网中是一种安全和谐高效的网络共享方案。

    概述

    从Windows 98 SE开始,用户可以将一个网络连接设置为共享,让其他设备无需借助额外的硬件便能共享網絡連接,实现这种连接的技术叫做网络连接共享(Internet Connection Sharing),简称为ICS。在Windows XP和Windows 7中ICS的功能得以进一步加强和完善,更大程度的方便了家庭和小型企业网络的组建。在一个ICS共享网络中所有设备共享一个连入互联网的IP地址,这样能避免部分网络接入时的IP验证问题,实现多设备同时联网。ICS的优势主要有三点:不产生额外的外部(接入互联网的)IP、不需要额外的硬件投入、不需要复杂的操作设置。

    本文将展示和介绍如何将ICS运用到北外校园网中。要正确使用本文中所描述的ICS功能,你必须要使用一台安装了Windows 7或更高版本的计算机并且具有管理员权限,此外计算机上要至少有一张无线网卡。特別提示:本文介绍的方法无法在windows xp中实现。

    方法

    准备工作

    在组建一个ics共享网络前,请先检查如下系统设置。

     

    • Windows防火墙必须正常工作。可以通过检查windows firewall服务是否正常运行来检验。方法是:开始-运行-services.msc,找到windows firewall,看状态是否显示为正在运行,如果没有,在右键彈出菜单中选择启动,如果启动失败,请检查系统设置是否正确。
    • Internet Connection Sharing服务设置正确。方法是:开始-运行-services.msc,找到internet connection sharing,双击,检查“启动方式”是否设置为“自动”或者“手动”,如果不正确,请做出相应更改。

     

    关键步骤

    在开始前,请将计算机接入互联网。

    然后以管理员方式启动命令提示符,如果你不知道如何操作,说明你的水平太低,不适合继续阅读。在命令行窗口输入:

    Netsh wlan stop hosted

    Netsh wlan set hosted mode=d

    等待命令执行完成。

    现在,打开网络连接控制面板,方法是:开始-运行-ncpa.cpl。

    窗口中将显示系统中配置好的网络连接,为了保证操作成功,需要禁用与ics共享网络无关的网络连接。有文献显示,如果有多个与ics不相关的网络连接存在,但并没有被禁用,可能会导致网络共享失败,原因是网卡识别错误,这是windows系统的漏洞,但貌似没有得到修补。

    这一步主要分为三种情况:

    (1) 有线接入互联网,利用有线连接和无线网卡组建共享网络。
    对于这种情况,请先禁用除去有线网卡和宽带连接(即PPPoE连接或DSL连接,如果有)/VPN连接以外的所有其他网络连接,然后再选择你要使用的无线网卡对应的网络连接,将其启用。如果不清楚哪个网络连接对应哪张网卡,可以双击打开连接属性窗口,查看“连接使用如下设备”下面显示的设备名称(如图1),如果看了这个你还是不知道,那说明你的windows系统操作水平太低,不适合继续阅读本文。

    (2) 无线接入互联网,利用无线连接和有线网卡组建共享网络。对于这种情况,请禁用除去有线网卡和无线网卡以外的所有其他网络连接。

    (3) 无线接入互联网,同时使用这块网卡来组建无线共享网络。对于这种情况,请禁用除去这张网卡以外的所有其他网络连接。

    禁用无关网卡操作完成后,我们将正式开始建立共享网络。这里分为两种情况,首先介绍用无线网卡组建无线共享网络的过程。

    回到刚才的命令行界面,输入以下命令:

    Netsh wlan set hosted mode=a ssid=yourssid key=yourpassword

    这条命令将创建一个虚拟网络,用于我们的共享连接,其中ssid代表虚拟网络的信号名称,比如mysoftap,key代表密码,处于兼容性考虑,请不要设置含有特殊字符的ssid和key。

    回到网络连接控制面板窗口,现在我们需要找到刚才设立的虚拟网络。要注意我们设立的ssid是虚拟网络发射信号时用的网络名称,并不是在控制面板中显示的名称。在这里它通常显示为“无线网络连接#”(#代表数字),有时候有多个这样名称的连接存在,我们需要逐个打开它们的属性页,检查到底是哪个网络连接使用的网卡名称为Microsoft Virtual WiFi Miniport Adapter(Microsoft虚拟无线微型端口适配器),有些时候这个名称后面也会出现数字。找到了以后要记住这个网络连接在控制面板中的显示名。

    选择接入互联网的网络连接,转到“共享”选项卡,勾选第一个框,第二个框随便你选不选。然后在第一个框下面的下拉列表中,选择刚才你记住的那个名称,如图2。

    完成共享设定后,回到命令行窗口,执行如下命令

    Netsh wlan start hosted

    不一会儿在控制面板窗口中,我们便看到刚才那个虚拟出来的网络状态变成了连接状态,连入的网络名称也是我们刚才自己设定的。这代表着ics共享连接已经创建完成,现在你可以用你的手机iPad等等设备搜索这个虚拟网络并且加入啦!

    下面讨论用有线网卡组建有线共享网络的过程。

    在网络连接控制面板窗口中,找到你想使用的那块有线网卡对应的网络连接,记住它的名称。

    现在,选择接入互联网的网络连接,转到“共享”选项卡,勾选第一个框,第二个框随便你选不选。然后在第一个框下面的下拉列表中,选择刚才你记住的那个名称,如图2。

    完成共享设定后,将网线插入有线网卡,不一会儿在控制面板窗口中,我们便看到刚才那个虚拟出来的网络状态变成了连接状态,这代表着ics共享连接已经创建完成!

    关闭共享网络

    对于无线共享网络,在命令行窗口中以管理员身份执行如下命令:

    Netsh wlan stop hosted

    然后,在网络连接控制面板中,取消接入互联网的网络连接的共享设置。

    回到命令行窗口,执行

    Netsh wlan set hosted mode=d

    这样便就成功关闭了共享网络。

    对于有线共享网络,首先请拔出有线网卡中的网线。

    然后,在网络连接控制面板中,取消接入互联网的网络连接的共享设置。

    这样便就成功关闭了共享网络。

    技术原理

    ICS从本质上看是一个虚拟路由器虚拟动态地址分配服务器虚拟域名解析服务器的合体。

    如果查看系统路由表,会发现在宿主系统上广播地址同时在互联网连接的广播域和共享网络连接的广播域中广播(当然还包括本地回传),而在连入的设备查看路由表,将会发现广播域为宿主系统上定义的ICS共享网络的IP地址和子网掩码這兩者所定义的广播域(当然还包括本地回传)。但是,宿主系统上的共享网络广播域使用共享网络的IP作为接口,因为这个共享出来的网络IP地址就是其他接入设备接入的共享网络的网关。相比之下,接入設備上的廣播域使用設備被分配到的IP地址。

    如果查看系统网络连接,会发现宿主系统和接入设备上的都有UDP报文通过67或者68端口,仔细检查会发现这是动态地址分配在工作。设备接入共享网络后通过dhcp获得的不但有ip地址还有dns服务器,后者则是由虚拟dns服务器实现的。

    所有的共享网络上发出的接入互联网的请求,以及所有从互联网传入共享网络的连接,都需要经过网络地址转换。接入共享网络的设备并不真正建立与互联网的连接,而只是与共享网络建立连接,windows将这些连接转换为宿主系统上的一个网络收发端口,进而与互联网通信。比如,用手机wifi接入了共享网络,要求访问www.baidu.com,宿主系统下的ICS获得这个请求后,在宿主系统上打开一个端口号为12345的连接,用来访问www.baidu.com,百度服务器检测到访问请求,并且认为是宿主系统发出的,将数据传回给这个端口,ICS知道这个端口其实是给共享网络上的手机用的,因此再将数据转移到手机与共享网络的连接上,手机最终接受到数据。根據網絡模型,每个网络连接都需要一个专门的端口,一个windows系统最多能有65535个端口。启用ICS共享网络后接入的设备与宿主系统共享这65535个端口。

    种种迹象表明,ICS工作起来很像一个虚拟的路由器

    疑难解答

    不能正常启动windows防火墙、internet connection sharing服务。

    这种问题通常有两个原因:操作权限不够或者服务配置有问题。

    就前者来说,有一种可能是用户没有管理员权限没法调整系统服务,或者是杀毒软件、防病毒程序或者恶意软件阻止了这种操作。请用管理员身份操作,或者暂时关闭这些进程再试。

    如果是后者,有一种可能是这些服务依靠的其他服务没有运行,可以在services.msc下找到这个服务,双击打开属性页,转到“依存关系”选项卡查看,如果确实有服务没有运行,则需要运行他们,如果某项服务作为驱动运行(在Ring0级别),则需要到设备管理器中进行一些操作方可。这超出了本文讨论的范围。还有一种可能是服务的启动方式、注册表项、需要的运行库遭到破坏或更改,这种情况下的解决方法也超出了本文讨论的范围。

    尝试建立共享网络时,系统提示IP地址不是动态分配的

    组建共享网络有一定的限制,请将所有参与组网的网卡IP地址都设置为自动获取。操作方法在网络上有很多介绍,这里不再赘述。

    如果你的网卡必须使用静态地址(手工指定的地址),那么你将无法正常使用ICS。

    没有Virtual Wifi Adapter对应的虚拟网络

    如果是组建有线共享网络,不需要这个。

    如果是组建无线共享网络,请尝试全部禁用一切网卡,然后启用接入互联网的网卡,然后启用想要组建共享网络的网卡。如果还是不行,开始-运行-devmgmt.msc,显示菜单-显示隐藏的硬件,展开所有的节点,寻找virtual wifi adapter,找到后右键-卸载,然后操作菜单-扫描检测硬件改动。

    如果是windows vista之前出来的无线网卡,可能并不支持这一功能。网卡必须要获得Windows 7徽标认证(WHQL)才能支持虚拟网络。

    在装有虚拟机的系统上使用ICS

    有文献显示,需要暂时停用虚拟机的虚拟网卡服务,方能正常使用ICS。操作方法是,在网络连接控制面板中,双击打开参与共享网络组件的网卡属性页,取消勾选虚拟机安装的服务,如图3。

    Ipv6不能正常工作

    有些情况下,有设备接入共享网络后,宿主系统的Ipv6不能正常工作,目前没有好的解决方法。请停止ICS服务后重新启动计算机。

    由于ICS需要使用广播,而Ipv6已经不再有广播这一设计,所以共享网络本身并不支持Ipv6。

    总结:为什么ICS安全、和谐、高效

    通过上面的介绍,我们认为ICS比起其他一些共享上网的方式而言,有着安全、和谐、高效三大优势。

    首先,ICS共享网络全面可控,在宿主系统上可以监视目前连入的设备数量和流量,发现异常时及时切断共享网络。对于无限共享网络,还可以随时调整虚拟网络的名称和密码。这是其他接入方式做不到的。此外,你也无需安装第三方解决方案,甚至不用安装无线网卡驱动程序提供的所谓实用工具,减少了安装第三方软件的安全风险。

    其次,ICS共享网络采用网络地址转换,不增加新的外部IP,不使用非常规方法实现多设备共享上网,不违反校园网络的管理政策。而且,对于笔记本电脑用户来说,无需购买额外的无线网卡或无线AP便可实现共享上网,对于台式机用户来说只需购买小功率USB外置网卡便可成功配置ICS,不但减少硬件投入,还能在一定程度上避免信号干扰,节省了宝贵的无线电频段。此外,由于ICS是windows自带的功能,因此你无需安装专门的应用程序,保持了系统的干净简洁。

    第三,ICS共享网络采用虚拟路由技术,没有费事复杂的联网环节,工作起来跟普通路由几乎没有什么差别,只是cpu和内存占用会有一些轻微上升。接入共享网络的设备完全没有速度和联通性方面的影响,也没有总线网络、令牌网络和Ad Hoc网络的冲突问题。因此是一种高效的联网方案。

    北外的校园网络资源较为珍贵,无线信号也比较薄弱,使用ICS实现多设备同时上网,是一种平衡有效的解决方案。

    分享到: