将树莓派设置为网关,接管出口流量
文章内的IP请试情况修改,否则会导致网络不用,文章假定子网地址为 172.16.0.0/16
为树莓派指定网关
后续我们将修改 DHCP Server 的网关设置,为了防止流量回环,需要手动指定树莓派的网关
编辑 /etc/systemd/network/01-eth0.network
1
2
3
4
5
6
| [Match]
Name = eth0
[Network]
DHCP = yes
Gateway = 172.16.0.1
|
老规矩,一键脚本:
1
2
3
4
5
6
| echo "[Match]
Name = eth0
[Network]
DHCP = yes
Gateway = 172.16.0.1" | sudo tee /etc/systemd/network/01-eth0.network
|
修改路由器 DHCP 配置
- 在路由器管理页面,打开DHCP配置(非上网设置)
- 添加静态 IP 绑定,将树莓派的 IP 绑定为 172.16.0.2
- 将默认网关设置为树莓派IP,让所有局域网设备的出口流量都发送到树莓派
- 将DNS服务器设置为树莓派IP
配置 Nftables
安装:
1
| sudo apt install nftables -y
|
编辑 /etc/nftables.conf
1
2
3
4
5
6
7
8
9
10
| #!/usr/sbin/nft -f
flush ruleset
table ip nat {
chain postrouting {
type nat hook postrouting priority srcnat; policy accept;
oifname "eth*" ip saddr 172.16.0.0/16 ip daddr != 172.16.0.0/16 masquerade fully-random
}
}
|
立即生效:
1
| sudo nft -f /etc/nftables.conf
|
开机生效:
1
| sudo systemctl enable nftables
|
转载或引用本文时请遵守许可协议,注明出处、不得用于商业用途!