当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 将 Linux 计算机变成 Wi-Fi 接入点(热点)

作者:精品下载站 日期:2024-12-15 00:50:24 浏览:19 分类:玩电脑

将 Linux 计算机变成 Wi-Fi 接入点(热点)


在本文中,我们将展示如何在运行 Linux 并配备无线适配器的任何计算机或笔记本电脑上创建 Wi-Fi 接入点(软件 AP)。您可以使用此接入点(热点)在小型办公室或家里创建无线本地网络,或与其他设备共享移动互联网。在此示例中,我们使用运行最新版本 Ubuntu 的笔记本电脑。

首先,确保您的无线 Wi-Fi 模块支持接入点 (AP) 模式。为此,请安装 iw 软件包:

$ sudo apt install iw

iw

该工具用于从命令提示符配置无线接口(nl80211 驱动程序)。它支持最近添加到 Linux 内核的所有新驱动程序。老的

iwconfig

使用无线扩展接口的工具已被弃用,因此强烈建议您使用 iw 和 nl80211。

运行以下命令:

$ iw list

[玩转系统] 将 Linux 计算机变成 Wi-Fi 接入点(热点)

支持的界面模式部分中,查找

  • 美联社

  • 接入点/VLAN

这意味着您的 Wi-Fi 适配器支持在接入点模式下运行。

如何从 Ubuntu GUI 创建 Wi-Fi 热点?

在 Ubuntu 20.04 LTS 和更高版本的 GNOME (3.28+) 上,您可以从图形界面运行无线接入点。对于普通用户来说这是最简单的方法。

单击网络连接图标,然后在Wi-Fi 设置中选择打开 Wi-Fi 热点

[玩转系统] 将 Linux 计算机变成 Wi-Fi 接入点(热点)

[玩转系统] 将 Linux 计算机变成 Wi-Fi 接入点(热点)

输入接入点名称和连接密钥(密码)

[玩转系统] 将 Linux 计算机变成 Wi-Fi 接入点(热点)

您应该会看到一条消息,表明您的接入点处于活动状态。同一窗口包含用于连接到 Wi-Fi 接入点的二维码。

[玩转系统] 将 Linux 计算机变成 Wi-Fi 接入点(热点)

在 Linux 上使用网络管理器 (nmcli) 配置无线接入点

网络管理器可用于管理大多数现代 Linux 发行版(Ubuntu、Debian、Mint、Fedora、CentOS 等)中的网络连接。在此示例中,我们将展示如何使用网络管理器和 nmcli 命令行工具在 Linux 上创建软件接入点。

首先,您需要在系统中找到您的无线适配器的名称。

$ nmcli d

[玩转系统] 将 Linux 计算机变成 Wi-Fi 接入点(热点)

在我们的示例中,Wi-Fi 适配器的名称是 wlp4s0b1

如果您的计算机上安装了 dnsmasq(轻量级 DHCP/DNS 服务器),则必须将其禁用。它会与NetworkManager中的dnsmasq插件冲突。

要使用网络名称 (SSID) WOSHubWiFi 和网络密钥(密码)MaxPass21wlp4s0b1 接口上创建接入点,请运行以下命令:

# nmcli con add type wifi ifname wlp4s0b1 mode ap con-name MyHomeWiFI ssid WOSHubWiFi
# nmcli con modify MyHomeWiFI 802-11-wireless.band bg
# nmcli con modify MyHomeWiFI 802-11-wireless.channel 1
# nmcli con modify MyHomeWiFI 802-11-wireless-security.key-mgmt wpa-psk
# nmcli con modify MyHomeWiFI 802-11-wireless-security.proto rsn
# nmcli con modify MyHomeWiFI 802-11-wireless-security.group ccmp
# nmcli con modify MyHomeWiFI 802-11-wireless-security.pairwise ccmp
# nmcli con modify MyHomeWiFI 802-11-wireless-security.psk MaxPass21
# nmcli con modify MyHomeWiFI ipv4.method shared

启动您的热点:

# nmcli con up WOSHubWiFi

[玩转系统] 将 Linux 计算机变成 Wi-Fi 接入点(热点)

如果您希望接入点工作在5GHz并使用更高的信道,请将相应的命令更改为:

# nmcli con modify MyHomeWiFI 802-11-wireless.band a
# nmcli con modify MyHomeWiFI 802-11-wireless.channel 35

默认情况下,NetworkManager 中的内置 DHCP 服务器从 10.42.0.x/24 范围内为客户端分配 IP 地址(10.24.0.1 是热点接口的地址)。您可以更改 DCHP 范围:

# nmcli con modify MyHomeWiFI ipv4.addr 192.168.31.1/24

要禁用接入点,请运行以下命令:

# nmcli con down MyHomeWiFI

要彻底删除 Linux 上的软件热点:

# nmcli con delete MyHomeWiFI

使用 Hostapd 在 Linux 上设置虚拟 WiFi 接入点

在 Linux 计算机上创建 Wi-Fi 接入点的流行工具是 hostapd 软件包。安装它:

$ sudo apt install hostapd

复制原始配置文件(/etc/hostapd/hostapd.conf)。在hostapd.conf中添加以下配置:

$ sudo nano /etc/hostapd/hostapd.conf
interface= wlp4s0b1
# The nl80211 driver is suitable for most Wi-Fi adapters
driver=nl80211
# Your access point name
ssid=MyHomeAP
# The number of your Wi-Fi channel (1 to 13)
channel=11
#Select a mode for your access point (a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g)
hw_mode=g
# 1=wpa, 2=wep, 3=both
auth_algs=1
# Allow connections from all MAC addresses except those in the blacklist
macaddr_acl=0
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
#Set a password for your access point
wpa_passphrase=MyPass321

如果您想使用 802.11 n 模式,请进行以下更改:

ieee80211n=1
ht_capab=[HT40-][SHORT-GI-40]

取消屏蔽 Hostpad 服务:

$ sudo systemctl unmask hostapd

然后在 /etc/default/hostapd 文件的 DAEMON_CONF 参数中指定配置文件的路径:

$ sudo nano /etc/default/hostapd
DAEMON_CONF="/etc/hostapd/hostapd.conf"

[玩转系统] 将 Linux 计算机变成 Wi-Fi 接入点(热点)

然后配置您的无线网络接口。设置静态 IP 地址、DNS、模式和其他选项。编辑 /etc/network/interfaces 文件并添加以下内容:

# nano /etc/network/interfaces
auto wlp3s0
iface wlp3s0 inet static
address 10.10.0.1
netmask 255.255.255.0

您还需要它来防止 NetworkManager 干扰 Wi-Fi 接口。保存设置后,重新启动计算机。

然后,您只需配置一个 DHCP 服务器,该服务器将为连接到 Linux 接入点的设备分配 IP 地址。在我们的示例中,我们将使用轻量级 dnsmasq

$ sudo apt install dnsmasq

编辑 dnsmasq.conf。指定 dnsmasq 将在 wlp4s0b1 接口上运行并分配 10.10.0.x 范围内的 IP 地址。在最简单的情况下,您可能有以下配置:

$ sudo nano /etc/dnsmasq/dnsmasq.conf
interface=wlp4s0b1
dhcp-range=10.10.0.2,10.10.0.100,12h
#Set DNS servers
server=/www.google.com/8.8.8.8

DHCP 范围 IP 地址必须与您的 WLAN 适配器属于同一网络。

为了让您的 Linux 主机能够在 Wi-Fi 客户端和外部 Internet 连接之间路由数据包,您需要启用路由并向 iptables 添加相应的规则:

sysctl net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE

您还可以使用桥接接口为本地网络的客户端提供 Internet 访问(为了使文章简短,我们将省略这一点)。

启动这些服务:

# systemctl start dnsmasq.service
# systemctl start hosapd

现在您可以从任何客户端连接到您的接入点,检查它是否已从指定的 DHCP 范围接收到 IP 地址并且可以访问 Internet。

了解如何在 Windows 计算机上设置 Wi-Fi 接入点。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯