首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ip6tables - IPv6 DNAT定位宿主

ip6tables - IPv6 DNAT定位宿主
EN

Unix & Linux用户
提问于 2018-01-01 08:01:38
回答 1查看 6K关注 0票数 1

我有以下IPv4规则:

  1. iptables -t nat -A PREROUTING -d "server ipv4" -p tcp -m tcp --dport 80 -i eth0 - j DNAT --to-destination 127.0.0.1:55555
  2. iptables -P INPUT ACCEPT

此外,我还有一个简单的代理,它侦听localhost地址: 127.0.0.1:55555

在IPv4,它运行得很好。

当我试图在IPv6中做同样的事情时:

  1. iptables -t nat -A PREROUTING -d "server ipv6 " -p tcp -m tcp --dport 80 -i eth0 -j DNAT --to-destination [::1]:55555
  2. ip6tables -P INPUT ACCEPT

我不能让它起作用!

我能让它发挥作用:

  1. --to-destination ["link-local IPv6"]:55555
  2. --to-destination ["Server IPv6"]:55555

当我打开转发并在过滤表中添加一些日志行时,前向链.

  1. echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
  2. ip6tables -I FORWARD -j LOG --log-prefix='[filter FORWARD] '

我能看到包裹。

268332.372177 IN=eth0 OUT=eth0 MAC=be:69:fd:2a:9e:bd:0a:08:f1:46:19:a1:86:df SRC= DST=0000:0000:0000:0000:0000:0000:0000:0001 LEN=80 TC=0 HOPLIMIT=63 FLOWLBL=0 PROTO=TCP SPT=42082 DPT=55555 WINDOW=28800 RES=0x00 SYN URGP=0

我可以看到,OUT接口是"eth0“而不是"lo",内核认为包不是用于此服务器的。

我有centOS 7,我也在Ubuntu 16中尝试过这个。

EN

回答 1

Unix & Linux用户

发布于 2020-06-14 22:07:47

我建议在您所做的工作中添加一个fwmark,并添加一个ip规则来使用特殊的路由表。在那个表中,您只需说:到dev lo的路由。dnat将负责重写,fwmark将负责到lo的路径,因此您的代理可以回答。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/414085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档