确定笔记本网卡支持 master 模式
执行 iw list 命令,执行结果中有下面的内容,说明这张网卡是支持做 ap 路由的(AP AP/VLAN)
Supported interface modes:
* IBSS
* managed
* AP
* AP/VLAN
* WDS
* monitor
* mesh point
* P2P-client
* P2P-GO
开启 AP
安装 hostapd 软件包
apt-get install hostapd
配置 hostapd (/etc/hostapd/hostapd.conf)
macaddr_acl=0 # 可选,指定MAC地址过滤规则,0表示除非在禁止列表否则允许,1表示除非在允许列表否则禁止,2表示使用外部RADIUS服务器;
# accept_mac_file:指定允许MAC列表文件所在;
# deny_mac_file:指定禁止MAC列表文件所在;
auth_algs=1 # 采用 OSA 认证算法
ignore_broadcast_ssid=0
wpa=3 # 指定 WPA 类型
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
wpa_passphrase=ap_password # 连接 ap 的密码
driver=nl80211 # 设定无线驱动
interface=wlan0 # 接入点设备名称
hw_mode=g # 指定802.11协议,包括 a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g
channel=9 # 指定无线频道
ssid=ap_name# 连接 ap 的名字
运行 hostapd
hostapd /etc/hostapd/hostapd.conf
注意:此处可能会报错
Could not set interface wlan0 flags (UP): Operation not possible due to RF-kill
wlan0: Could not connect to kernel driver
Failed to set beacon parameters
wlan0: Could not connect to kernel driver
解决方法是执行下面的命令
rfkill unblock wifi
运行 hostapd 后可以用手机看到 wifi 的 ap 了。
开启 ip 自动分配
安装 dhch server
apt-get install isc-dhcp-server
修改配置 (/etc/dhcp/dhcpd.conf) 为
option domain-name-servers 211.161.45.222,10.141.146.10;# dns 服务器
default-lease-time 3600;# 最小租约 3600 秒
max-lease-time 7200;# 最大租约 7200 秒
log-facility local7;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.77 192.168.1.99; # ip 起始地址
option broadcast-address 192.168.1.255; # 广播地址
option routers 192.168.1.1; # 网关 要写成这台机器的 wlan0 的ip
}
给 wlan0 添加 ip
ifconfig wlan0 192.168.1.1
启动 dhcp server
dhcpd
此时可以用手机连接到 ap,并得到分配到的 ip 地址。(要设置转发之后才能上外网)
配置 SNAT
打开 内核的 ip 转发功能
echo "1" > /proc/sys/net/ipv4/ip_forward
或
vim /etc/sysctl.conf
#添加或修改这样一段:
net.ipv4.conf.default.rp_filter = 1
#然后执行命令
sysctl -p
使用 iptables 设置转发
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.1.0/24 -j ACCEPT
其中第一条表示将通过本机的转发数据包从eth0(外网)这个网卡发出去,另外两条表示只转发192.168.1.0/24这个网段过来的数据包,这个网段正好是wlan0其它设备连上本机以后分配的网段。
手机连接 ap 可以上网了。
Ubuntu搭建无线路由器:http://www.linuxdiyf.com/linux/6699.html
Fedora 17 x64连接wpa加密的无线路由器:http://www.linuxdiyf.com/linux/1054.html
使用Linux建立一个全功能路由器:http://www.linuxdiyf.com/linux/3145.html
Ubuntu搭建无线路由器:http://www.linuxdiyf.com/linux/6699.html
通过一个命令将Linux变成路由器:http://www.linuxdiyf.com/linux/7564.html