跳到主要内容

05 Linux笔记本开WiFi热点

路由器在客厅,卧室 WiFi 信号弱?使用闲置 Linux 笔记本做 WiFi 热点。

1.确认笔记本支持 AP

sudo iw list | grep -A 10 "Supported interface modes"

image-20250523173927174

2.创建 WiFi 热点

查找网络接口名:

ip link

image-20250523175300235


创建热点:

sudo nmcli dev wifi hotspot ifname wlp1s0 ssid 卧室信号 password sheiSh3e

3.编辑名称和密码

查看热点名和密码:

nmcli dev wifi show-password 

查看所有网络连接(有线、无线):

nmcli connection show

修改热点名:

sudo nmcli connection modify Hotspot 802-11-wireless.ssid 家庭共享

修改热点密码:

sudo nmcli connection modify Hotspot 802-11-wireless-security.psk 新密码123456

image-20250523181529288

4.启动、停止和删除

# 打开热点
sudo nmcli connection up Hotspot

# 关闭热点
sudo nmcli connection down Hotspot

# 删除热点
sudo nmcli connection delete Hotspot

关闭再打开等于重启。

5.转发

如果提示 已连接到设备,但无法提供互联网连接。存在转发问题:

设置共享:

sudo nmcli connection modify Hotspot ipv4.method shared

启动IPV4转发:

sudo sysctl -w net.ipv4.ip_forward=1

转发规则:

sudo iptables -t nat -A POSTROUTING -o enx00e04c6803b4 -j MASQUERADE
sudo iptables -A FORWARD -i wlp1s0 -o enx00e04c6803b4 -j ACCEPT
sudo iptables -A FORWARD -i enx00e04c6803b4 -o wlp1s0 -m state --state RELATED,ESTABLISHED -j ACCEPT

6.开机自启

开机自启:

sudo nmcli connection modify Hotspot connection.autoconnect yes

编写脚本

sudo vim /usr/local/bin/开启热点.sh

贴入内容:

#!/bin/bash

# 启用 IP 转发
sysctl -w net.ipv4.ip_forward=1

# 启动热点
nmcli connection up Hotspot

# 添加 iptables NAT 转发规则
iptables -t nat -A POSTROUTING -o enx00e04c6803b4 -j MASQUERADE
iptables -A FORWARD -i wlp1s0 -o enx00e04c6803b4 -j ACCEPT
iptables -A FORWARD -i enx00e04c6803b4 -o wlp1s0 -m state --state RELATED,ESTABLISHED -j ACCEPT

赋权:

sudo chmod +x /usr/local/bin/开启热点.sh

添加到系统服务

创建文件(只能用英文)

sudo vim /etc/systemd/system/start-hotspot.service

贴入内容:

[Unit]
Description=Start WiFi Hotspot at boot
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/开启热点.sh
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

启动服务:

sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable start-hotspot.service
sudo systemctl start start-hotspot.service

服务启动成功

image-20250523192959975

验证:重启电脑,等待两分钟,服务启动成功,热点启动成功。使用手机、电脑连接热点上网吧。