我们的服务器只连接IPv6,一个应用程序在专用networking上监听8080端口,但在公共Internet上需要80端口。
为了testing目的,打开端口8080的防火墙时,访问IPv6:8080地址工作正常(没有永久的解决scheme,最后端口必须closures)
所以我们需要一种类似ip6tables TPROXY提供的端口转发给另一个本地端口。 但以下是不工作的:
ip6tables -t mangle -A PREROUTING -i eth0 -p tcp --dport 80 -j TPROXY --on-port 8080
它根本不会返回任何数据。 (即使从ip6tables删除所有其他规则,只有这个可用)当用“ip6tables -t mangle -vL”查看包时,我看到在TPROXY规则的行上增长的包的数量。 当打开“conntrack -E”时,我看到只有一行显示标有[DESTROY]。 当看“netstat -anp –tcp”时,我看不到新的端口80,只有应用程序端口8080。
同样的问题,如果临时重新configuration应用程序到端口80,并使用“-j TPROXY – 在端口80”或“-j TPROXY – 在端口0”,所以基本上testing端口转发到同一端口 – 没有成功。 同样的问题,如果使用通过标题标记的高级路由:
ip6tables -t mangle -R PREROUTING 1 -i eth0 -p tcp --dport 80 -j TPROXY --on-port 8080 --tproxy-mark 0x2/0x3 ip -6 rule add fwmark 2 lookup 6 ip -6 route add local ::/0 dev eth0 table 6
我加载了“modprobe xt_TPROXY”和“echo 1”/ proc / sys / net / ipv6 / conf / all / forwarding“
任何想法,为什么这不是在ip6tables v1.4.14在Debian Wheezy上工作? 我忘了一些非常基本的configuration步骤(这是我的ip6tables和IPv6的第一步)?
谢谢Achim
PS:其他一些可能的解决scheme是在Ubuntu 12.04 LTS上使用IPv6 DNAT / SNAT,或者像这里提出的使用NAT66,但这两种技术都不是保密的,我也找不到任何工作示例。