將 Linux 計算機變成 Wi-Fi 接入點(熱點)
在本文中,我們將展示如何在運行 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 熱點在無線網絡設置。




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


您應該會看到一條消息,表明您的接入點處於活動狀態。同一窗口包含用於連接到 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 接入點。
