Linux wifi热点服务的设置
使用有线+无线的linux设备做热点。

Linux wifi热点服务的设置

使用Linux系统(以Ubuntu为例),通过有线网卡上网,使用无线网卡做热点。具体使用hostapd、udhcpd来实现。

一、说明

hostapd:提供热点服务。
udhcpd:提供DHCP server服务,给客户端分配IP。
iptables:防火墙需要打通客户端通讯。

二、准备与安装

(一)检查

$ iw list  # 查看Supported interface modes里有没有AP!没有则无法做热点
$ ifconfig -a  # 记录网络名称。本文例如有线网卡enp1s0;无线网卡wlan0

(二)安装

$ apt-get install hostapd udhcpd

三、配置

(一)udhcpd(动态IP分配服务)

$ vim /etc/udhcpd.conf
start       192.168.0.20
end		    192.168.0.254
interface	wlan0
lease_file  /var/lib/misc/udhcpd.leases
pidfile     /var/run/udhcpd.pid

opt	dns	        114.114.114.114 8.8.8.8
option subnet	255.255.255.0
opt	router	    192.168.0.1
option domain   local
option lease    864000
$ vim /etc/default/udhcpd
# DHCPD_ENABLED="no"  # 添加注释,屏蔽掉。

(二)hostapd(热点服务)

$ vim /etc/hostapd/hostapd.conf
# 注意:字符串不能加""号!

interface=wlan0
driver=nl80211

hw_mode=a                   # a是5G,g是2.4G
channel=0                   # 0是自动
ieee80211d=1                # 根据国家码设置信道和频率
country_code=FR             # 国家码,不同国家有不同信道和频率
ieee80211n=1
ieee80211ac=1         
wmm_enabled=1               # 可提升5G速度

ssid=WIFINAME
ignore_broadcast_ssid=1     # 不广播SSID
macaddr_acl=0               # 不用MAC地址过滤
auth_algs=3         # 验证,1开放系统验证,2共享秘钥验证,3两者
wpa=2
wpa_passphrase=12345678     # 密码,不少于8位!
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=TKIP CCMP
$ vim /etc/default/hostapd
DAEMON_CONF="/etc/hostapd/hostapd.conf"  # 取消注释,指定配置文件

(三)开启转发

$ vim /etc/sysctl.conf
# 注sysctl可以修改内核参数。
net.ipv4.ip_forward=1  # 取消注释,开启

四、防火墙设置与启动运行

新建启动脚本,记得 chmod +x

#!/bin/sh

ifconfig wlan0 192.168.0.1

iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE
iptables -A FORWARD -i enp1s0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o enp1s0 -j ACCEPT

udhcpd /etc/udhcpd.conf &
hostapd /etc/hostapd/hostapd.conf -B

# 如果有线网络已绑定固定mac地址,需要修改网卡mac:
# ifconfig enp1s0 hw ether 50:7B:9D:D5:DC:D8
# ifconfig enp1s0 up

exit 0

最后修改于 2024-02-24