用 iptables 限制只有对应的 MAC 和 IP 才能上网。这里是通过 mac.sh 脚本读取 mac.txt 的内容进行的。
mac.txt 格式: MAC IP 备注
00:11:09:09:8B:33 192.168.1.3 PC1-wired
00:23:5A:40:64:55 192.168.1.5 PC2-wired
00:1A:73:D3:3A:11 192.168.1.250 PC3-wireless
mac.sh
#! /bin/bash
MACs=(`cat mac.txt | awk '{print $1}'`)
IPs=(`cat mac.txt | awk '{print $2}'`)
for (( i=0; i<3; i++ ))
do
/sbin/iptables -A FORWARD -s ${IPs[i]} -m mac --mac-source ${MACs[i]} -j ACCEPT
done
/sbin/iptables -A FORWARD -s 192.168.1.0/24 -j Drop