SDB:创建无线热点

跳转至: 导航, 搜索
本文介绍了如何在 openSUSE 下建立无线热点(WiFi Hotspot,或者叫 AP)供其它计算机或手机使用。如何在 openSUSE 下连接无线热点请看SDB:联网#无线。如何在其它设备上为 openSUSE 建立无线热点请自行寻找相关教学,只要是 Ad-hoc 热点,openSUSE 连接就没有问题。

背景知识

无线网卡的几种模式

802.11 规范下面无线网卡有六种作业模式:Master(主控)、Managed(受管)、Ad-hoc(点对点)、Mesh、Repeater(转发)、Monitor(监控)。

其中最经常使用的是 Managed,因为它是默认的,受管是指你的无线网卡作为客户端使用,连接到 AP(访问点)并受其管理(IP 地址、DNS 等)。其次是 Master,亦即你的无线网卡作为 AP(访问点)使用,这是路由器的默认模式。Ad-hoc 是点对点模式,就是我们所谓的无线热点。Monitor 多用于破解密码时使用。Repeater 多见于高级路由器。至于 Mesh 模式,我在 wikipedia 搜索它时看到了「铱星」,估计是卫星用的高级货一般网卡都不支持。

一般笔记本搭载的无线网卡硬件至少应该支持受管模式和点对点模式,有些会支持主控模式,监控模式比较少见但也不是没有。至于其它的两种就是万中无一的了。另外 Linux 下的无线网卡驱动一般都会优先实现受管模式的支持,不一定支持点对点和主控甚至监控模式。所以你需要用命令确认下。

注意: 我们的教学需要你的网卡至少支持 Managed 和 Ad-hoc 点对点模式(硬件 + 驱动)才可以使用。为 Android 搭建无线热点需要您的网卡支持 AP 模式即 Master 主控模式。 另外请不用使用 ndiswrapper 驱动后再这么玩,请使用内核驱动,或者至少使用厂商提供的 Linux 原生驱动,不然会死人的。。。因为这种 Linux 下用 Windows 驱动的方式实际上隐藏了大量的信息,Managed 模式还能凑合,高级模式没有信息辅助你很难走下去的。

如何确定您的无线网卡是否支持建立热点

运行

iw list

可以查看您的无线网卡支持的作业模式,比如我的:

        Supported RX frame types:
                 * IBSS: 0x40 0xb0 0xc0 0xd0
                 * managed: 0x40 0xd0
                 * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
                 * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
                 * mesh point: 0xb0 0xc0 0xd0
                 * P2P-client: 0x40 0xd0
                 * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
                 * P2P-device: 0x40 0xd0

这张卡(iw3945)因为是比较老的当时比较高端的卡,所以支持得略猛了一些(去 driver:wireless 源加装一个 iwl3945-ucode 额外驱动甚至还支持 Monitor 模式),至少完成这篇教程没有什么问题。

为其它电脑和智能手机建立无线热点

注意:这个章节下的教学所建立的无线热点不能够被 Android 手机所连接(完全看不到热点),只能为 Windows/Mac/Linux 的笔记本电脑、iPhone 和其它智能手机所连接。为 Android 手机建立无线热点请看下一章节。另外还需要注意的是:

同一张无线网卡在任意时间点只能支持一种作业模式!也就说,你不能既用无线连接着你的路由器自己上网,同时又为你的手机开了无线热点让手机也能上网!这样子做你要使用有线上网,或者有两块无线网卡(比如 30 块钱买个外接的)。

KDE NetworkManagement 挂件

KDE 桌面环境下,点击右下角系统托盘上的「网络」图标,「网络管理设置」-「无线」-「添加」-「共享」。

这时如果你使用的是中文的 openSUSE 系统,建议把 SSID 的名字改成英文的。因为驱动有 bug 的无线网卡和其它本地化不合格的 Linux 发行版可能识别它有困难,容易认成乱码导致无法连接。

「无线安全」的选项卡,可以设也可以不设(我假设你就临时用一会儿),设置的话只能设置 WEP 加密。我知道这很不安全,但是你自行搜索 Ad-hoc + WPA 你就知道 WPA/WPA2 加密为什么实现不了了,必须要 WPA/WPA2 加密的话请看下面 Android 那章,因为那章的无线热点是使用 Master 主控模式建立的,可以支持 WPA/WPA2。设置 WEP 加密只要输入密码即可。

IPv4/IPv6 地址选项卡的「方法」可以设置「自动(DHCP)」也可以设置「手动」。你要明白选项是什么意思的话,除了「本地链路」 Local LO 不可以选,其它都可以。不然请规规矩矩使用上面两种。

自动没什么可讲的,手动需要注意以下几点:

  • IP 地址一般要输入成类似路由器那种的:192.168.1.1/10.0.0.1 这样的常见的。
  • 网关跟 IP 地址相同。网关类似于指定一个范围,比如输入为 192.168.1.1 即表示 192.168.1.* 下面的 IP 地址都是我来服务的。因为你这里选的手动,你建立的无线热点就不会为你的客户端分配 IP 地址,所以你的客户端也要手动配置,IP 地址就是在 192.168.1.* 里挑一个,比如 192.168.1.2。但客户端的网关必须跟无线热点的网关相同,也即 192.168.1.1,即客户端的 IP 地址和网关不是相同的。
  • 子网掩码一般是 255.255.255.0 或 255.255.255.255,随便。

之后就可以去客户端连接了。

以上共性的东西也适用于 GNOME 下的 NM-Applet。

GNOME NM-Applet 挂件

其它

其它桌面环境请仔细研究下联网的那个挂件。。。只要界面支持的话,参照上述共性内容都可以配置成功。界面不支持的话,可以装个 nm-applet 或者 wicd 来用。

为 Android 建立无线热点

Android 的特殊性

Android 底层也是 Linux,但是是被 Google 瞎改过的 Linux。所以很不幸存在一些特殊的地方,比如这个:

Android 下的 wpa_supplicant(管理无线网络很基础的一个 Linux 命令行程序)是很奇葩的。Android 实际并不是扫描不到你所建立的 Ad-hoc 无线热点(硬件 + 驱动层面),只是修改它所搭载的 wpa_supplicant 的源代码,为初始扫描到的 Ad-hoc 无线热点加了一个 IBSS 旗标,然后在上层比如图形界面,触发网络扫描时忽略有 IBSS 旗标的无线热点,于是你建立成功的无线热点就华丽地看不到了。

具体技术解释在此:http://blog.csdn.net/lanbo_g/article/details/12092933

两种方法

反正问题就那样,不是这里修就那里修。

第一种修复方法是为你所用的 rom 打上 ad-hoc 补丁。请自行搜索。应该挺简单的,毕竟 Android 是一款手机。

第二种方法不能叫做修复,只能叫做规避,你过滤 Ad-hoc 热点不显示?那我用别的作业模式比如 Master 模式来建立热点。使用 Master 模式建立热点的工具叫 hostapd。

使用 hostapd