把树莓派配置成无线中继路由器

本文涉及到两块无线网卡,分别记为 wlan0 和 wlan1。

重命名网卡

编辑新增文件 /etc/udev/rules.d/10-network.rules,添加如下内容并重启系统。

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="b8:27:eb:27:79:5f", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="b8:27:eb:72:2c:0a", NAME="wlan0"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="e8:4e:06:51:42:8f", NAME="wlan1"

注意 MAC 地址要改成自有的。

配置 wlan0 为中继网卡

/etc/wpa_supplicant/wpa_supplicant.conf 增加如下段落:

network={
    ssid="ssid"
    key_mgmt=WPA-EAP
    eap=PEAP
    identity="id"
    password="password"
    #ca_cert="/etc/cert/ca.pem"
    #phase1="peaplabel=1"
    phase2="auth=MSCHAPV2"
    priority=10
}

重启系统后,wlan0 会自动连接目标网络。

配置 wlan1 为静态 IP 地址

在文件 /etc/dhcpcd.conf 中加入如下的配置信息并保存。

interface wlan1
static ip_address=192.168.4.1/24
#static routers=192.168.4.1
static domain_name_servers=192.168.4.1 8.8.8.8 fd51:42f8:caae:d92e::1

开启包转发

Linux系统默认关闭了IP包转发,因此不能做路由器。所以需要先打开包转发

编辑/etc/sysctl.conf,去掉以下属性前的注释:

net.ipv4.ip_forward=1

运行 sudo sysctl -p 来启用。之后运行下面的命令来启用 wlan0 端口的 NAT

sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

上面的防火墙规则重启后就丢失了,为了能够规则开机自动加载,可以使用 iptables-persistent。用命令 sudo apt-get install iptables-persistent 来安装该组件,根据其提示进行初次设置(一路确认)。该组件默认会将防火墙规则保存到 /etc/iptables/rules.v4 中。你可以使用如下命令保存和读入规则:

sudo service netfilter-persistent save
sudo service netfilter-persistent reload

安装 dhcp 服务

使用命令 sudo apt-get install dnsmasq,编辑 /etc/dnsmasq.conf,注意更改如下几段:

#配置监听地址
listen-address=127.0.0.1,192.168.4.1
#配置DHCP分配段
dhcp-range=192.168.4.50,192.168.4.150,12h

运行命令 sudo service dnsmasq restart 来启用

安装并开启 hostapd

Linux 启用 WIFI 热点,使用的是 hostapd。首先,用命令 sudo apt-get install hostapd 安装它,然后增加配置文件 /etc/hostapd/hostapd.conf 如下。注意,只需要更改其中的 ssid 和 wpa_passphrase 属性。

# 把无线网卡 wlan1 作为接入点
interface=wlan1
# 使用nl80211驱动
driver=nl80211
#共享网络的SSID是RaspberryPi
ssid=RaspberryPi
# 网卡工作在802.11G模式
hw_mode=g
#无线网卡选用11信道
channel=11
# WPA2 配置
wpa=2
#wpa密码是raspberry
wpa_passphrase=raspberry
#认证方式为WPA-PSK 加密方式为CCMP
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
rsn_pairwise=CCMP
beacon_int=100
auth_algs=3
wmm_enabled=1

之后运行命令 sudo hostpad -d /etc/hostapd/hostapd.conf 来观察测试,没有错误可以连接,就 OK 了。 CTRL+C 后,编辑 /etc/default/hostapd,改变 DAEMON_CONF 的配置如下。

DAEMON_CONF="/etc/hostapd/hostapd.conf"

之后就可以使用 sudo service hostapd start 正式启动 WIFI 热点了。

标签: none

添加新评论