Debian 12服务器双网卡间UDP 3480端口流量转发的iptables规则可行性咨询
Debian 12服务器双网卡间UDP 3480端口流量转发的iptables规则可行性咨询
你的这条iptables规则本身是能起到允许指定流量通过服务器转发的作用,但要让整个流量转发流程完全正常工作,还得补充几个关键配置和规则,我给你梳理一下:
首先必须开启系统IP转发功能
Debian 12默认是关闭IP转发的,这是流量转发的前提条件:- 临时生效(重启后失效):执行
echo 1 > /proc/sys/net/ipv4/ip_forward - 永久生效:编辑
/etc/sysctl.conf文件,找到net.ipv4.ip_forward=1这一行,去掉前面的注释符号,然后执行sysctl -p让配置立即生效
- 临时生效(重启后失效):执行
添加反向流量允许规则
你当前的规则只允许了从ens224(互联网侧)到ens192(内网侧)的3480/UDP流量,但目标主机10.67.1.101返回的响应流量也需要被服务器允许通过,否则客户端会收不到回复。需要添加这条规则:iptables -A FORWARD -i ens192 -o ens224 -p udp --sport 3480 -s 10.67.1.101 -j ACCEPT检查路由配置
确保你的服务器能正常访问内网目标IP10.67.1.101,同时返回流量的路由要正确指向ens224网卡,这样才能回到互联网侧的请求源。
另外,还要确认你的实际需求:
如果你的需求是把互联网侧所有发往ens224网卡的3480/UDP流量,都转发到内网的10.67.1.101,那仅仅有FORWARD规则是不够的,还需要添加DNAT(目标地址转换)规则,把公网流量的目标地址转换成内网主机IP:
iptables -t nat -A PREROUTING -i ens224 -p udp --dport 3480 -j DNAT --to-destination 10.67.1.101
如果内网主机10.67.1.101的默认网关不是这台转发服务器,那还得补充SNAT(源地址转换)规则,让返回流量能正确回到转发服务器:
iptables -t nat -A POSTROUTING -o ens192 -p udp --dport 3480 -d 10.67.1.101 -j SNAT --to-source [你的ens192网卡内网IP]
总结来说:
- 如果只是允许已经建立的连接中符合条件的流量转发,那你的原规则加上反向规则+开启IP转发就足够了
- 如果是要实现公网端口到内网主机的端口转发,就必须补充DNAT和对应的SNAT规则
备注:内容来源于stack exchange,提问作者ArnOCP
相关产品推荐
相关产品推荐

