在树莓派等Linux单板电脑上将无线网络转换成有线网络

由于几周前在宿舍用学校的IPv6瞎折腾导致网络接口无法连接,而路由器端性能又弱,无法连接到学校的无加密ePortal认证网络或者是带有802.1x认证的加密网络,所以使用了一台 Nano Pi M1+360随身WiFi 充作无线转有线。
参考:https://www.raspberrypi.org/forums/viewtopic.php?f=27&t=17702
https://blog.csdn.net/wr132/article/details/78986190
需要:
1x 树莓派3 Model B/树莓派 Zero W/Nano Pi等单板电脑,最好是带有一个以太网接口,并且正在运行Debian或者Debian系的Linux发行版本
1x Debian系统支持的无线网卡(如果使用的是Pi 3B或者Zero W,则无需无线网卡)
1x 稳定的无线网络访问(可以在单板电脑上预先连接并设定好)

一. 准备工作

1. 将系统内置的IPv4地址转发功能打开:

nano /etc/sysctl.conf
在文件中加入一行:

1
net.ipv4.ip_forward = 1

然后重启

2. 安装必要的软件包

1
2
3
4
apt update && apt upgrade -y
apt install bridge-utils
apt install iptables
apt install dnsmasq

二.配置工作

1.使用bridge-utils在eth0(不同设备可能不一样)建立网桥

1
2
3
4
brctl addbr br0
brctl addif br0 eth0
ifconfig br0 192.168.1.1 up
ifconfig eth0 0.0.0.0 up

(为了防止与已有的IP地址设置发生冲突,你也可以修改第三行的“192.168.1.1”这个数值)

2. 配置iptables,在wlan0上启用NAT:

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

3. 启用dnsmasq,也就是DHCP服务器和DNS服务器

1
nano /etc/dnsmasq.conf

在其中添加一行:

1
dhcp-range=192.168.1.50,192.168.1.150,255.255.255.0,12h

(等号后面的四个参数:IP池起始段,IP池末尾段,子网掩码,租约有效期)
如果你在配置bridge-utils时修改了默认的192.168.1.1,请根据实际情况修改第一第二项参数的值。

三. 完成

到这步应该配置工作就全部完成了,你可以直接用网线把电脑和Pi的以太网口连接起来,有可能在电脑上需要手动设置dns才能访问网络,如果电脑迟迟没有获取到DHCP提供的IP地址,请重启Pi并再次执行设置步骤中的第一步和第二步。