NanoPi R2S 安装 Debian,将其当成为一台 Linux 服务器,可玩成更强,主要用做旁路由来代理转发内网请求,安装 Nginx,部署 Web 项目
安装系统
写入固件系统
在 NanoPi 官网下载系统,系统有不同的版本,根据自己的情况选择
有如下版本:
- Debian
- Ubuntu
- FriendlyWrt(改自OpenWrt)
官网地址:https://www.friendlyelec.com
注:这里用的是 Debian 版本(rk3328-sd-debian-bookworm-core-6.1-arm64-20250123.img)
下载好后,使用写入工具写入 SD 卡
使用 Etcher 将下载的 img 固件写入 SD
加载系统
SD 卡插入 R2S,插电重启,连接上主路由,等待几分钟后就可以 SSH 连接上了。
如果找不到 R2S,就再重启下,我当时找了好久……
可以在主路由中查找连接设备信息
连接系统
帐户与密码
普通用户:
用户名: 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)
总结
- 如果转发没有开启,则无法路由内网流量
- nftables 规则配置有问题,会导直连请求失败
- 需要配置 nftables 规则,通过代理机转发内网请求
- 需要确认转发 IP
<192.168.5.0/24>
和设备名称<eth0>
- 转发 IP 和设备名称以自己的为准