树莓派无线中继

树莓派无线中继

来自https://www.hsli.top

先固定设备名称

编辑新增文件/etc/udev/rules.d/10-network.rules,其中的内容如下:

1
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="aa:bb:cc:dd:ee:ff", NAME="wlan0"

mac地址为相应网卡地址,可以用命令ip link查看

安装dnsmasq来设置DHCP服务

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

1
2
interface=wlan1
dhcp-range=192.168.88.50,192.168.88.150,255.255.255.0,12h

运行命令sudo service dnsmasq restart来启用

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

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

1
2
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1

运行sudo sysctl -p来启用

之后运行

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

来启用wlan0端口的NAT

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

1
2
3
4
#保存现有规则
sudo service netfilter-persistent save
#读取并应用先有规则
sudo service netfilter-persistent reload

为什么服务名称变成了netfilter-persistent,这里面好像有故事,留待以后再digg

13.安装第二块WIFI适配器
第一块WIFI适配器是为了连接现有网络,第二块则是为了建立WIFI热点。为了建立WIFI热点,适配器必须具有AP的mode。可以使用命令iw list|grep -A10 ‘Supported interface modes’查看。比如,我选用的设备是widemac SL-1506N,其参数如下:

Supported interface modes:

  • IBSS
  • managed
  • AP
  • AP/VLAN
  • WDS
  • monitor
  • mesh point

该设备依然是插入即可,不需要驱动。

14.设置第二块Adapter的IP
依然是编辑/etc/network/interfaces,更改wlan1的配置如下

1
2
3
4
auto wlan1
iface wlan1 inet static
address 192.168.4.1
netmask 255.255.255.0

16.安装并开启hostapd
Linux启用WIFI热点,使用的是hostapd。首先,用命令sudo apt-get install hostapd安装它,然后增加配置文件/etc/hostapd/hostapd.conf如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
interface=wlan1
driver=nl80211
ssid=ssid
hw_mode=g
channel=13
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=passwd
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

只需要更改其中的ssid和wpa_passphrase属性。

之后运行命令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

1
hostapd -B /etc/hostapd/hostapd.conf

正式启动WIFI热点了,也可以将其加入/etc/rc.localexit 0之前使其开机启动

重启,就可以看到热点了,简单好多~树莓派的wifi信号强度跟当初著名的路由玩具wr703n差不多。

连接wifi

输入sudo wpa_cli启动wpa_cli的命令行界面(必须sudo)。常用的指令如下:

1
2
3
4
5
6
7
8
9
status:列出目前的联网状态。
list:列出所有备选网络。目前正连接到的网络会标[CURRENT],禁用的网络会标[DISABLE]。
add_network:增加一个备选网络,输出新网络的号码(这个号码替代下文的[network_id])。注意新网络此时是禁用状态。
set_network [network_id] ssid “Your SSID”:设置无线网的名称(SSID)
set_network [network_id] key_mgmt WPA-PSK:设置无线网的加密方式为WPA-PSK/WPA2-PSK
set_network [network_id] psk “Your Password”:设置无线网的PSK密码
enable_network [network_id]:启用网络。启用后如果系统搜索到了这个网络,就会尝试连接。
disable_network [network_id]:禁用网络。
save_config:保存配置。

举个栗子:

1
2
3
4
5
6
7
8
9
10
11
12
> add_network
4 <--- 记住这个号码!
> set_network 4 ssid '"Your SSID"'
OK
> set_network 4 key_mgmt WPA-PSK
OK
> set_network 4 psk "Your Password"
OK
> enable_network 4
OK
> save_config <--------别忘了这个,否则重启之后网络配置可能丢失
OK
如果文章有用,请随意打赏