跳到主要内容

Linux笔记本开WiFi热点

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

1.确认笔记本支持 AP

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

2.创建 WiFi 热点

查找网络接口名:

bash
ip link


创建热点:

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

3.编辑名称和密码

查看热点名和密码:

bash
nmcli dev wifi show-password 

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

bash
nmcli connection show

修改热点名:

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

修改热点密码:

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

4.启动、停止和删除

bash
# 打开热点
sudo nmcli connection up Hotspot

# 关闭热点
sudo nmcli connection down Hotspot

# 删除热点
sudo nmcli connection delete Hotspot

关闭再打开等于重启。

5.转发

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

设置共享:

bash
sudo nmcli connection modify Hotspot ipv4.method shared

启动IPV4转发:

bash
sudo sysctl -w net.ipv4.ip_forward=1

转发规则:

bash
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.开机自启

开机自启:

bash
sudo nmcli connection modify Hotspot connection.autoconnect yes

编写脚本

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

贴入内容:

bash
#!/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

赋权:

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

添加到系统服务

创建文件(只能用英文)

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

贴入内容:

bash
[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

启动服务:

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

服务启动成功

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