需要 hostapd,dhcpd,iptables
2 个配置文件 /etc/dhcp/dhcpd.conf, /etc/hostapd/hostapd.conf
dhcpd - Dynamic Host Configuration Protocal Server
可以用ipcalc计算用到的网络
Address: 192.168.0.1 11000000.10101000.00000000. 00000001
Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111
=>
Network: 192.168.0.0/24 11000000.10101000.00000000. 00000000
HostMin: 192.168.0.1 11000000.10101000.00000000. 00000001
HostMax: 192.168.0.254 11000000.10101000.00000000. 11111110
Broadcast: 192.168.0.255 11000000.10101000.00000000. 11111111
Hosts/Net: 254 Class C, Private Internet
在dhcpd.conf中增加一个子网
subnet 192.168.0.0 netmask 255.255.255.0
{
range 192.168.0.10 192.168.0.20;
option routers 192.168.0.1;
option domain-name-servers 114.114.114.114,180.76.76.76;
}
在hostapd.conf配置欲新增的无线热点的数据
1 #Basic configuration
2 interface=wlan0
3 ssid=mywirelessnet
4 channel=7
5 #Hardware configuration
6 driver=nl80211
7 #ht_capab=[HT40-][SHORT-GI-20][SHORT-GI-40]
8 hw_mode=g
9 wpa=2
10 wpa_passphrase=1234567890
11 macaddr_acl=0
12 auth_algs=1
13 ignore_broadcast_ssid=0
14 wpa_key_mgmt=WPA-PSK
15 wpa_pairwise=TKIP
16 rsn_pairwise=CCMP
~
新建启动脚本
1 #! /bin/bash
2 sed -i '/\[keyfile\]/a unmanaged-devices=mac:xx:xx:xx:xx:xx:xx' /etc/NetworkManager/NetworkManager.conf
3 echo "1" > /proc/sys/net/ipv4/ip_forward
4 ip link set wlan0 up &
5 ifconfig wlan0 192.168.0.1 netmask 255.255.255.0
6 hostapd /etc/hostapd/hostapd.conf &
7 dhcpd -cf /etc/dhcp/dhcpd.conf &
8
9 iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQUERADE &
10 iptables -A FORWARD -s 192.168.0.0/24 -o ppp0 -j ACCEPT &
11 iptables -A FORWARD -d 192.168.0.0/24 -m conntrack --ctstate ESTABLISHED,RELATED -i ppp0 -j ACCEPT &
第2行是让network-manager不管理无线网卡
line 3让内核支持ipv4数据转发
line 4启动wlan0
line 5配置wlan0
启动hostapd
启动dhcpd
iptables 添加数据分发规则