Linux开启NAT-AP无线热点最佳实践教程
1.下载必备工具
$sudo apt install hostapd
2.查看网卡信息
$ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether e4:5f:01:42:0b:00 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.209/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::e65f:1ff:fe42:b00/64 scope link
valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether e4:5f:01:42:0b:01 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.1/24 scope global wlan0
valid_lft forever preferred_lft forever
3.配置hostapd.conf
$sudo vi hostapd.conf
#无线设备名称,可用iwconfig命令查看
interface=wlan0
#使用的网桥名称,如果是用DHCP+NAT方式可忽略此行
#bridge=br0
#hostapd 0.6.8或者更高版本唯一选择
driver=nl80211
#终端看到的wifi名称
ssid=MyAccessPoint
#指明要选用的无线传输协议,这里表示使用802.11g
hw_mode=g
#802.11b/g都至多只有三条互不干扰的信道,即1,6,11,一般填这三个其中一个
channel=1
#验证身份的算法,1表示只支持wpa,2表示只支持wep,3表示两者都支持,wep已经被淘汰了,请不要使用
auth_algs=1
#wpa加密方式,1代表支持wpa,2代表支持wap2,3代表两者都支持
wpa=1
#wifi密码,请自行修改
wpa_passphrase=12345678
#对所有用户进行同样的认证,不进行单独的认证,如果需要,请设置为WPA-EAP
wpa_key_mgmt=WPA-PSK
#控制支持加密数据的秘钥,CCMP比TKIP更强
wpa_pairwise=CCMP
4.启动热点AP
配置wlan0网卡ip
$ sudo ip address add 10.0.0.1/24 dev wlan0
$ sudo sysctl net.ipv4.ip_forward=1
$ sudo iptables -t nat -A POSTROUTING -s 10.0.0.1/24 -o eth0 -j MASQUERADE
$ sudo hostapd ./hostapd.conf
完整脚本如下所示:
#!/bin/bash
workdir=$(cd $(dirname $0); pwd)
sudo pkill hostapd
sudo ip address add 10.0.0.1/24 dev wlan0
sudo sysctl net.ipv4.ip_forward=1
sudo iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -s 10.0.0.1/24 -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -s 10.0.0.0/24 -j ACCEPT
sudo iptables -A FORWARD -d 10.0.0.0/24 -j ACCEPT
sudo iptables -t filter -A INPUT -p udp -m udp -j ACCEPT
sudo hostapd $workdir/hostapd.conf