markdown 树莓派无线中继

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown 树莓派无线中继相关的知识,希望对你有一定的参考价值。

# 树莓派无线中继

参考:

https://spaces.ac.cn/archives/3728

http://shumeipai.nxez.com/2016/12/06/raspberry-pi-to-create-a-wireless-relay-science-internet-router.html


## 先固定设备名称

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

```bash
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,注意更改如下几段:

```
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,去掉以下属性前的注释:

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

运行sudo sysctl -p来启用

之后运行

```
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中。你可以使用如下命令保存和读入规则:

```
#保存现有规则
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的配置如下

```
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如下:

```
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~~

```base
hostapd -B /etc/hostapd/hostapd.conf
```

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

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

## 连接wifi

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

```
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:保存配置。
```

举个栗子:

```
> 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
```

以上是关于markdown 树莓派无线中继的主要内容,如果未能解决你的问题,请参考以下文章

树莓派无线网卡配置指北

用树莓派 ZeroW 做一个无线网卡

树莓派400 ubuntu 20.10找不到无线网卡

树莓派上网

树莓派设置wifi 自动连接无线网络

树莓派连接wifi和蓝牙