☰
网关设备配置路由转发
2026/10/15 9:55:14 网站建设 项目流程

使用nftables完成 HTTPS , MQTTS ,GB28181视频流转发

场景是:无人机遥控->网关设备->物联网平台

无人机遥控连接网关设备WIFI热点

请求由无人机遥控主动发起

网关设备通过nfttables转发无人机遥控发起的请求

HTTPS请求地址:10.100.1.100:443

MQTTS请求地址: 10.100.1.101:8883

GB28181请求地址: 10.100.1.102:5060

无人机遥控地址: 10.100.1.2

网关设备地址:10.100.1.1

目标端地址:

HTTPS请求地址:10.100.1.100:443

MQTTS请求地址: 10.100.1.101:8883

GB28181请求地址: 10.100.1.102:5060

假设场景中,HTTPS、MQTTS 和 GB28181 的目标地址与请求地址完全一致。这意味着网关不需要进行传统意义上的“地址转换”,而只是承担路由器的角色,让遥控器与目标服务器能够跨网段通信。

如果你的目标确实不是映射到其他内网服务器,那么只需要配置基础转发和 SNAT(源地址转换)即可。以下是针对该场景的 nftables 配置方案。

1. 启用 IP 转发

网关必须开启内核转发功能,否则数据包不会被路由到外部网络。

echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/95-IPv4-forwarding.conf sysctl -p /etc/sysctl.d/95-IPv4-forwarding.conf

2. 完整 nftables 规则

以下规则假设网关的 WIFI 接口为wlan0(连接遥控器),上游网络接口为eth0(连接物联网平台)。请根据实际接口名调整。

#!/usr/sbin/nft -f ​ flush ruleset ​ table inet gateway { # 1. 转发链:允许已建立的连接回包,并放行从 WIFI 到上游的流量 chain forward { type filter hook forward priority filter; policy drop; ​ # 允许已建立或相关的连接回包 ct state established,related accept ​ # 允许遥控器(WIFI 接口)发起的到物联网平台的流量 iifname "wlan0" oifname "eth0" accept } ​ # 2. NAT 链:对从 WIFI 接口出去的流量做源地址伪装 chain postrouting { type nat hook postrouting priority srcnat; policy accept; ​ # 将来自遥控器的流量源地址改为网关的上游接口地址 oifname "eth0" masquerade } }

3. 规则说明

转发链 (forward):由于遥控器请求需要经过网关转发到外部网络,必须显式允许forward流量。这里只允许wlan0到eth0的新建连接,并允许回程流量。

NAT 链 (postrouting):使用masquerade是最适合网关场景的选择。它会自动将数据包的源地址改为eth0的 IP 地址,这样物联网平台的服务器(10.100.1.100 等)才能将响应正确回传给网关,再由网关转给遥控器。

4. 关于“目标地址”的澄清

在你的描述中,请求地址和目标端地址完全相同(例如 HTTPS 都是10.100.1.100:443)。这意味着:

不需要 DNAT(目标地址转换)。DNAT 通常用于将“公网 IP 的端口”映射到“内网服务器的真实 IP”。既然目标服务器本身就在10.100.1.x网段且可达,网关只需要做路由转发即可。

5. 验证与持久化

应用规则后,可以简单验证:

# 查看规则是否加载 nft list ruleset ​ # 在遥控器上测试连通性(如果遥控器支持 ping 或 curl) # 检查网关转发计数 nft list chain inet gateway forward

将上述配置保存到/etc/nftables.conf并启用服务即可开机自启。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询