如何设置接入点 (AP) 模式的 Wi-Fi 热点?
注意事项:无线接入点与 ad hoc 网络不同。它们有很大不同。简而言之,较新的设备和大多数 Android、Windows Phone 和 Blackberry 设备(可能还有 iOS 设备)不支持 ad hoc 网络,而 AP 模式 Wi-Fi 热点则支持。要了解 AP 模式热点、ad hoc 网络及其区别,请参阅这个维基百科页面。
答案1
您的无线网卡是否支持接入点模式。
首先要测试你的无线网卡是否支持进入无线接入点模式。如前所述,以下测试适用于基于 mac80211 框架的驱动程序。
安装iw
并执行下列操作
sudo aptitude install iw
iw list
查找支持的接口部分,其中应该是一个名为AP
下面的条目
Supported interface modes:
* IBSS
* managed
* AP
* AP/VLAN
* monitor
* mesh point
如果您的驱动程序没有显示此 AP,这并不意味着它无法创建无线热点。但这些卡不在本教程的范围内。有关更多测试,请关注ubuntu 主模式文档。
设置分为三个部分,
- 设置并托管无线网络
- IP 地址设置
- 网络共享
1.设置并托管网络
- 所需软件:hostapd(安装)
- 按alt+F2并输入
gksu gedit
& 按enter。我们将编辑很多文件。 - 在 gedit 中,按ctrl+ o,ctrl+l并将其粘贴到位置框中
/etc/hostapd/hostapd.conf
。按Enter。 粘贴以下代码,
interface=wlan0 driver=nl80211 ssid=test hw_mode=g channel=1 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=3 wpa_passphrase=1234567890 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP
请确保没有尾随空格和行尾!Hostapd 是非常敏感结束难以解决的空白!
您需要做的改变:
- 更改
interface=wlan0
为您的无线网卡名称。(如果您有一张无线网卡,则应该是 wlan0) ssid=test
.test
是您的托管网络的名称。wpa_passphrase=1234567890
,1234567890
是你的网络密码。
上述配置在g
模式下创建启用 wpa 和 wpa2 的接入点。可以找到有关构建配置文件的更详细说明这里
现在启动hostapd
。编辑文件/etc/default/hostapd
并修改 DAEMON_CONF 行,如下所示:
DAEMON_CONF="/etc/hostapd/hostapd.conf"
然后hostapd
使用以下命令启动服务,
sudo service hostapd start
它应该启动无线网络。现在您可以在移动设备上看到无线网络并可以进行身份验证。但设备不会获取 IP 地址。使用以下命令停止它sudo service hostapd stop
如果出现任何错误,可能是您的卡不支持
g
该模式。请尝试其他模式。指导
第 2 部分:设置 DHCP 服务器以进行 IP 地址管理
编辑文件/etc/default/isc-dhcp-server
并设置接口如下:
INTERFACES="wlan0"
在 gedit 中,按Ctrl+ O,在位置框中粘贴/etc/dhcp/dhcpd.conf
查找(ctrl+ F)到行下方,然后输入#编辑后应该看起来像
# option definitions common to all supported networks…
#option domain-name “example.org”;
#option domain-name-servers ns1.example.org, ns2.example.org;
再次注释掉以下几行
#default-lease-time 600;
#max-lease-time 7200;
在末尾添加以下几行
subnet 10.10.0.0 netmask 255.255.255.0 {
range 10.10.0.2 10.10.0.16;
option domain-name-servers 8.8.4.4, 208.67.222.222;
option routers 10.10.0.1;
}
范围描述地址池的长度。您还需要调整子网值。此配置最多可以为 15 个设备提供 IP
再次在 gedit 中按Cctrl+O并将以下内容粘贴到位置栏中/etc/network/interfaces
,在下面添加
auto wlan0
iface wlan0 inet static
address 10.10.0.1
netmask 255.255.255.0
wlan0
是您的无线接口。请相应地进行更改。
注意:重启后,无线将显示为未管理。因此您无法使用任何其他 Wi-Fi 网络。要使无线行为正常,请在新添加的行前添加 # 并执行
sudo start networking
现在运行
sudo service isc-dhcp-server start
sudo service hostapd start
此时,您的移动设备将看到一个网络,对其进行身份验证,身份验证后,它将获得类似的 IP 地址10.10.0.2
。
设置互联网连接设置
对于 Internet 连接共享,我们需要ip forwarding
和ip masquerading
。启用 IP 转发:执行
echo 1| sudo tee /proc/sys/net/ipv4/ip_forward
现在假设您正在使用拨号/USB 调制解调器连接来连接到 INTERNET。您需要获取逻辑接口名称。为此,请执行ifconfig
或ip address
对于拨号/USB 调制解调器:应该是ppp0
。如果您想共享以太网连接,则应使用ethX
其中 X 是您的以太网设备号。如果您通过具有 USB 网络共享功能的 Android 设备连接到互联网,则接口名称应该是usb0
。
现在一旦你获得接口名称执行
sudo iptables -t nat -A POSTROUTING -s 10.10.0.0/16 -o ppp0 -j MASQUERADE
上面的命令ppp0
是您通过无线共享其互联网连接的接口。
如果你已经编辑过,/etc/network/interfaces
你可以使用这个脚本启动服务。如果您不共享,请编辑它ppp0
。如果您正在使用脚本并想要停止服务器,请使用sudo killall hostapd
该博客主要是对这里描述的内容进行总结:http://dashohoxha.blogspot.com/2013/06/how-to-setup-wifi-access-point-on-ubuntu.html
尝试自动执行此处描述的步骤的脚本:https://gist.github.com/dashohoxha/5767262
请随时报告或修复您发现的任何错误。
获得以下人士的巨大帮助:
答案2
Ubuntu 20.04 LTS 及更新版本
借助 Ubuntu 20.04 LTS 上的 GNOME 3.36 桌面,WiFi 网络共享变得比以往更加简单!
答案3
我也遇到了同样的问题。我能找到的最佳解决方案是使用ap 热点用于创建 ubuntu 机器的热点。它可以很好地连接到几乎所有的 Android、Windows 手机等。
安装方法:
$ sudo add-apt-repository ppa:nilarimogard/webupd8
$ sudo apt-get update
$ sudo apt-get install ap-hotspot
接下来启动热点:
$ sudo ap-hotspot start
它以交互的方式询问您想要共享哪个适配器的互联网、网络名称、密码等。
要停止热点:
$ sudo ap-hotspot stop
配置方法:
$ sudo ap-hotspot configure
如果有任何问题,希望关联有帮助。
编辑:
目前看来 Ubuntu 14.04 存在一些问题,并且根据链接的 webupd8.org 文章中所述,您必须降级 hostapd:
64 位:
cd /tmp
wget http://ftp.ksu.edu.tw/FTP/Linux/ubuntu/pool/universe/w/wpa/hostapd_1.0-3ubuntu2.1_amd64.deb
sudo dpkg -i hostapd*.deb
sudo apt-mark hold hostapd
32位:
cd /tmp
wget http://ftp.ksu.edu.tw/FTP/Linux/ubuntu/pool/universe/w/wpa/hostapd_1.0-3ubuntu2.1_i386.deb
sudo dpkg -i hostapd*.deb
sudo apt-mark hold hostapd
答案4
我发现最简单的方法之一是使用创建_ap来自 github 用户斜
先决条件:
1)hostapd
sudo apt install hostapd
脚步 :
git clone https://github.com/oblique/create_ap
cd create_ap
make install (use sudo if you want to install it systemwide)
然后打开热点
假设您想eth0
使用 wifi 接口通过接口名称从以太网共享互联网wlan0
,您可以使用以下语法:
create_ap -m nat wlan0 eth0 MyAccessPoint MyPassPhrase
了解更多信息和参考