Linux 上创建网络接入点的工具 create_ap

有些时候需要在自己的电脑,特别是笔记本上创建一个接入点将网络连接共享给其他设备。有时候是因为没有无线网络,有时候是因为无线网络有连接数限制……反正这么做是很方便的。特别是有了 create_ap 之后。

create_ap 算是个抽象出来的接口,它需要依赖现有的其它软件包来工作。它的作用仅仅是根据常规的使用方法来批处理完成某个特定任务的指令,而这些指令的完成需要其它软件包来提供。熟悉 Linux 的用户完全可以根据自己的需要来创建一个 bash 脚本自动执行类似的工作,或者一步步输入指令(比如按照这个 Raspberry PI 上的指导步骤)。但还是用 create_ap 更省事,不信看看作者最初发布 create_ap 时候的反响

create_ap 特色功能

create_ap 的特色功能包括,

  • 使用任何信道创建 AP(接入点)。
  • 支持下列加密方式:WPA、WPA2、WPA/WPA2、开放式(无加密)。
  • 隐藏 SSID。
  • 客户端隔离(禁止客户端使用局域网通信)。
  • 支持 IEEE 802.11n 和 802.11ac。
  • 网络共享方式:NAT 或者「桥接」或者无共享。
  • 选择 AP 网关的 IP(仅对 NAT 或者无共享方式有效)。
  • 在网络连接使用的网卡上创建接入点(虚拟接口)。
  • 可以使用管道符(|)或者参数传递来传入 SSID 和密码。

依赖的资源

create_ap 发挥完整功能需要的程序包括,

  • bash
  • util-linux(或者 getopt)
  • procps 或者 procps-ng
  • hostapd
  • iproute2
  • iw
  • iwconfig (只有当 `iw` 无法识别网络适配器的时候才需要)
  • haveged (非必须)
  • dnsmasq (只有当使用 NAT 或者无共享方式共享网络的时候才需要)
  • iptables (只有当使用 NAT 或者无共享方式共享网络的时候才需要)

这些资源在 openSUSE Tumbleweed 的官方源里面都有提供,直接 zypper 安装即可。其中有很多甚至已经默认安装在系统里了。

安装

create_ap 的安装非常简单。如果系统中已经安装了 git,可以直接从 GITHUB 克隆源代码,

$ git clone https://github.com/oblique/create_ap

或者也可以直接从 GITHUB 下载 master 的源代码压缩包并解压。然后进入到相应的文件夹,直接执行,

$ make install

这样就可以了。当然,root 权限是需要的。

使用

在 create_ap 的 GITHUB 页面上有很多例子可以借鉴。参考这些例子很容易在 Linux 的命令行里创建需要的网络接入点。例如,从当前(同一个)无线网卡创建一个虚拟热点,

$ sudo create_ap wlan0 wlan0 MyAccessPoint MyPassPhrase

这样当然是因为默认的配置文件已经设置了一些常用的参数。然后也可以修改配置文件 /etc/create_ap.conf,将所需参数都填上,然后直接从配置文件启动。

$ sudo create_ap --config /etc/create_ap.conf

还可以将其加入系统服务(systemd)让其随系统自动启动,

$ sudo systemctl enable create_ap.service

但是这个系统服务的方法博主没有运行成功,似乎是因为安装的时候没有将源码文件夹中自带的那个 create_ap.service 文件复制到系统的服务文件夹。当然可以自己将这个文件复制到系统服务文件夹(在 openSUSE 上用户创建的 systemd 系统服务放在 /etc/systemd/system 路径下)。另外,如果只是休眠/睡眠电脑,重新打开电脑这个就不管用了。这一番折腾记录在「在 openSUSE 上使用 create_ap 创建虚拟 WiFi 热点来方便使用 KDE Connect 连接手机」一文里。©

本文发表于水景一页。永久链接:<https://cnzhx.net/blog/use-create_ap-to-create-ap-easily-on-linux/>。转载请保留此信息及相应链接。

1 条关于 “Linux 上创建网络接入点的工具 create_ap” 的评论

  1. 引用通告: 在 openSUSE 上使用 create_ap 创建虚拟 WiFi 热点来方便使用 KDE Connect 连接手机 | 水景一页

时间过去太久,评论已关闭。
如果您有话要说,请到讨论区留言并给出此文章链接。
谢谢您的理解 :-)