將 Linux 計算機變成 Wi-Fi 接入點(熱點)

Jacki

在本文中,我們將展示如何在運行 Linux 並配備無線適配器的任何計算機或筆記本電腦上創建 Wi-Fi 接入點(軟件 AP)。您可以使用此接入點(熱點)在小型辦公室或家裡創建無線本地網絡,或與其他設備共享移動互聯網。在此示例中,我們使用運行最新版本 Ubuntu 的筆記本電腦。

內容:

首先,確保您的無線 Wi-Fi 模塊支持接入點 (AP) 模式。為此,請安裝伊沃包裹:

$ sudo apt install iw

iw該工具用於從命令提示符配置無線接口(nl80211 驅動程序)。它支持最近添加到 Linux 內核的所有新驅動程序。舊的iwconfig使用無線擴展接口的工具已被棄用,因此強烈建議您使用 iw 和 nl80211。

運行以下命令:

$ iw list

支持的接口模式部分,尋找

  • 美聯社
  • 接入點/VLAN

這意味著您的 Wi-Fi 適配器支持在接入點模式下運行。

如何從 Ubuntu GUI 創建 Wi-Fi 熱點?

在 Ubuntu 20.04 LTS 和更高版本的 GNOME (3.28+) 上,您可以從圖形界面運行無線接入點。對於普通用戶來說這是最簡單的方法。

單擊網絡連接圖標並選擇打開 Wi-Fi 熱點無線網絡設置

推薦閱讀:如何將您的 Mac 變成 Wi-Fi 熱點

輸入接入點名稱和連接密鑰(密碼)

您應該會看到一條消息,表明您的接入點處於活動狀態。同一窗口包含用於連接到 Wi-Fi 接入點的二維碼。

在 Linux 上使用網絡管理器 (nmcli) 配置無線接入點

網絡經理可用於管理大多數現代 Linux 發行版(Ubuntu、Debian、Mint、Fedora、CentOS 等)中的網絡連接。在此示例中,我們將展示如何使用網絡管理器在 Linux 上創建軟件接入點納米克利命令行工具。

首先,您需要在系統中找到您的無線適配器的名稱。

$ nmcli d

在我們的示例中,Wi-Fi 適配器的名稱是wlp4s0b1

如果域名解析(輕量級 DHCP/DNS 服務器)安裝在您的計算機上,您必須禁用它。它會與NetworkManager中的dnsmasq插件衝突。

要在wlp4s0b1具有網絡名稱(SSID)WOSHubWiFi和網絡密鑰(密碼)MaxPass21的接口,運行以下命令:

# 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

如果您希望接入點工作在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 接入點的流行工具是主機包裹。安裝它:

$ 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.11n模式,進行以下更改:

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

取消屏蔽 Hostpad 服務:

$ sudo systemctl unmask hostapd

然後在配置文件中指定路徑守護進程配置/etc/default/hostapd 文件的參數:

$ sudo nano /etc/default/hostapd

DAEMON_CONF="/etc/hostapd/hostapd.conf"

然後配置您的無線網絡接口。設置靜態 IP 地址、DNS、模式和其他選項。編輯/etc/網絡/接口文件並添加以下內容:

# 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 地址。在我們的示例中,我們將使用輕量級域名解析:

$ 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 接入點。