You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Linux服务器特定IPv6端口的入站流量转发至另一台服务器

如何将Linux服务器特定IPv6端口的入站流量转发至另一台服务器

没问题,这种迁移后临时过渡转发流量的场景我碰过好多次,完全能搞定!下面给你两种Linux原生工具的实现方法,不用额外装软件:

方法一:用ip6tables(传统iptables的IPv6版本)

首先得确保服务器内核允许IPv6转发,不然规则白搭:

  • 临时开启(重启后失效):
    sysctl -w net.ipv6.conf.all.forwarding=1
    
  • 永久开启(重启后依然有效):
    编辑/etc/sysctl.conf或者新建/etc/sysctl.d/99-ipv6-forward.conf,添加一行:
    net.ipv6.conf.all.forwarding=1
    
    然后执行sysctl -p让配置立即生效。

接下来添加转发规则,假设服务器B的IPv6地址是2001:db8::b:

  1. 添加DNAT规则,把A上4444端口的入站IPv6流量转发到B的4444端口:
    ip6tables -t nat -A PREROUTING -p tcp --dport 4444 -j DNAT --to-destination [2001:db8::b]:4444
    
  2. 允许转发的流量通过FORWARD链:
    ip6tables -A FORWARD -p tcp -d 2001:db8::b --dport 4444 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    
  3. (可选)如果服务器B无法直接回包给用户(比如B的路由未指向A),需要添加SNAT规则让回包走A:
    ip6tables -t nat -A POSTROUTING -p tcp -d 2001:db8::b --dport 4444 -j SNAT --to-source [服务器A的IPv6地址]
    

最后别忘了保存规则,避免重启后丢失:

  • Debian/Ubuntu系:ip6tables-save > /etc/iptables/rules.v6
  • RHEL/CentOS系:ip6tables-save > /etc/sysconfig/ip6tables

方法二:用nftables(新一代防火墙工具,推荐)

如果你的系统已经默认用nftables(比如Debian 11+、RHEL 8+),用这个更简洁灵活:

  1. 同样先开启IPv6转发(步骤和上面一致,不再重复)
  2. 配置转发规则:
    先创建IPv6的nat表和必要链(如果系统没有预设的话):
    nft add table ip6 nat
    nft add chain ip6 nat PREROUTING { type nat hook prerouting priority 0 \; }
    nft add chain ip6 nat POSTROUTING { type nat hook postrouting priority 100 \; }
    
    添加DNAT规则:
    nft add rule ip6 nat PREROUTING tcp dport 4444 dnat to [2001:db8::b]:4444
    
    允许转发流量通过过滤链:
    nft add table ip6 filter
    nft add chain ip6 filter FORWARD { type filter hook forward priority 0 \; }
    nft add rule ip6 filter FORWARD tcp daddr 2001:db8::b dport 4444 ct state new,established,related accept
    
    (可选)SNAT规则:
    nft add rule ip6 nat POSTROUTING tcp daddr 2001:db8::b dport 4444 snat to [服务器A的IPv6地址]
    
  3. 保存规则并确保开机自启:
    nft list ruleset > /etc/nftables.conf
    systemctl enable --now nftables
    

注意事项

  • 替换命令里的2001:db8::b为服务器B的真实IPv6地址,服务器A的IPv6地址换成A的实际地址
  • 提前检查A和B之间的IPv6连通性,确保A能ping通B,且B的4444端口没有被本地防火墙拦截
  • 以上规则只会转发4444端口的TCP流量,完全符合你的需求

备注:内容来源于stack exchange,提问作者Erich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 15:08:05