NanoPi R2S 安装 Debian 固件系统,用做旁路由内网转发 nftables


原文:https://ichochy.com/posts/shell/20250528.html

NanoPi R2S 安装 Debian,将其当成为一台 Linux 服务器,可玩成更强,主要用做旁路由来代理转发内网请求,安装 Nginx,部署 Web 项目

安装系统

写入固件系统

在 NanoPi 官网下载系统,系统有不同的版本,根据自己的情况选择

有如下版本:

官网地址:https://www.friendlyelec.com

注:这里用的是 Debian 版本(rk3328-sd-debian-bookworm-core-6.1-arm64-20250123.img)

下载好后,使用写入工具写入 SD 卡

R2S固件写入SD.jpg

使用 Etcher 将下载的 img 固件写入 SD

加载系统

SD 卡插入 R2S,插电重启,连接上主路由,等待几分钟后就可以 SSH 连接上了。
如果找不到 R2S,就再重启下,我当时找了好久……

可以在主路由中查找连接设备信息 主路由.jpg

连接系统

帐户与密码

普通用户:

用户名: pi
密码: pi

Root用户:

默认root没有设置密码
可通过sudo passwd root命令配置root密码

通过 SSH 登录

使用 SSH 命令:

ssh pi@192.168.5.5

pi默认密码为pi

SSH 密钥同步

ssh-copy-id -i ~/.ssh/iChochy.pub pi@192.168.5.5

内网转发

开启转发

编辑 /etc/sysctl.conf,

nano /etc/sysctl.conf

添加配置

net.ipv4.ip_forward = 1

应用更改

sysctl -p 

临时启用:

echo 1 > /proc/sys/net/ipv4/ip_forward

查看转发

sysctl net.ipv4.ip_forward
iChochy@nanopi-r2s:~# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

配置规则

查看设备接口名称

ip link
iChochy@nanopi-r2s:~# ip link
eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP ……

设备接口名称为 eth0,可能有所不同

注:重要的事情说三遍

确认自己的设备接口名称
确认自己的设备接口名称
确认自己的设备接口名称

如果没有设置成功,会导致部分请求流量失败,直连网络请求卡顿

配置 nftables

编辑 /etc/nftables.conf 文件

#!/usr/sbin/nft -f

flush ruleset

table ip nat {
    chain postrouting {
        type nat hook postrouting priority 100; policy accept;
        # 将内网地址的流量伪装成本机外网地址
        ip saddr <192.168.5.0/24> oifname "<eth0>" masquerade
    }
}

table ip filter {
    chain forward {
        type filter hook forward priority 0; policy accept;
        # 允许已建立和相关连接通过
        ct state related,established accept
        # 允许内网到外网的流量
        ip saddr <192.168.5.0/24> oifname "<eth0>" accept
    }
}

注: 注意内网 IP 区间和网卡设备名,根据自己的实际情况

nftables 加载文件规则集

sudo nft -f /etc/nftables.conf

nftables 服务管理并加载规则:

sudo systemctl enable nftables
sudo systemctl start nftables
sudo systemctl status nftables

nftables 查看规则

sudo nft list ruleset

设置内网设备

DHCP 改为手动静态 IP,设置路由器地址,指向内网代理转发服务的IP

例如:
IP 地址:如 192.168.5.55
子网掩码:255.255.255.0
网关:代理服务器 IP(如 192.168.5.5)

总结