66 lines
1.5 KiB
Bash
66 lines
1.5 KiB
Bash
#!/bin/bash
|
|
|
|
# 配置参数
|
|
WLAN_INTERFACE="<wlan>"
|
|
LAN_INTERFACE="<lan>"
|
|
SSID="<ssid>"
|
|
PASSPHRASE="<passphrase>"
|
|
|
|
# 配置hostapd
|
|
cat <<EOF | sudo tee /etc/hostapd/hostapd.conf
|
|
interface=$WLAN_INTERFACE
|
|
driver=nl80211
|
|
ssid=$SSID
|
|
hw_mode=g
|
|
channel=6
|
|
wpa=2
|
|
#ignore_broadcast_ssid=1
|
|
wpa_passphrase=$PASSPHRASE
|
|
wpa_key_mgmt=WPA-PSK
|
|
# wpa_pairwise=TKIP
|
|
rsn_pairwise=CCMP
|
|
EOF
|
|
|
|
# 确保hostapd配置文件路径正确
|
|
sudo sed -i 's|#DAEMON_CONF=""|DAEMON_CONF="/etc/hostapd/hostapd.conf"|' /etc/default/hostapd
|
|
|
|
# 配置udhcpd
|
|
cat <<EOF | sudo tee /etc/udhcpd.conf
|
|
start 192.168.137.2
|
|
end 192.168.137.254
|
|
interface $WLAN_INTERFACE
|
|
opt router 192.168.137.1
|
|
opt lease 864000
|
|
EOF
|
|
|
|
# 分配IP地址
|
|
sudo ifconfig $WLAN_INTERFACE 192.168.137.1
|
|
|
|
# 启用IP转发
|
|
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
|
|
sudo sed -i 's|#net.ipv4.ip_forward=1|net.ipv4.ip_forward=1|' /etc/sysctl.conf
|
|
|
|
# 配置iptables
|
|
sudo iptables -t nat -A POSTROUTING -o $LAN_INTERFACE -j MASQUERADE
|
|
sudo iptables -A FORWARD -i $LAN_INTERFACE -o $WLAN_INTERFACE -m state --state RELATED,ESTABLISHED -j ACCEPT
|
|
sudo iptables -A FORWARD -i $WLAN_INTERFACE -o $LAN_INTERFACE -j ACCEPT
|
|
|
|
# 创建用于保存iptables规则的目录
|
|
sudo mkdir -p /etc/iptables
|
|
|
|
# 保存iptables规则
|
|
sudo sh -c "iptables-save > /etc/iptables/rules.v4"
|
|
|
|
# 启动并启用服务
|
|
sudo systemctl stop NetworkManager
|
|
sudo systemctl restart hostapd
|
|
sudo systemctl restart udhcpd
|
|
|
|
# 禁用Wi-Fi连接
|
|
sudo nmcli radio wifi off
|
|
sudo rfkill unblock wlan
|
|
|
|
# 检查服务状态
|
|
sudo systemctl status hostapd
|
|
sudo systemctl status udhcpd
|