题
当维持网络,它常常是一种权宜之计的事情要做到运行一个透明的代理。通过透明的代理我的意思是代理'劫持'拨出连接和运行他们通过当地的服务。具体地说我运行linux的防火墙鱿鱼配置,以便所有tcp/ip连接fowarded在港口的80代理的鱿鱼。
这是那去手动打,使用的令'nat'的表中,使用IPv4。
但令IPv6没有一个'nat'表,因此我不能使用相同的实施。什么是技术我可以使用透明的代理业务IPv6连接?
解决方案
一个可行的方式做到这一点是与TPROXY规则中,文件可以在这里:
- http://wiki.squid-cache.org/Features/Tproxy4#IPv6_Support
- http://www.mjmwired.net/kernel/Documentation/networking/tproxy.txt
这应该是支持鱿鱼(>=3.2版).使用 --enable-linux-netfilter
和 iptables -t mangle -j TPROXY
规则。
其他提示
iptables有一个QUEUE目标,您可以使用该目标将数据包传递到用户空间。我不确定,但也许可以在那里实施。
过去,您可以尝试向内核添加内容以进行重定向。
你做不到。引自 squid-cache.org :
IPv6在IPv6中根本不存在。通过 设计。
鉴于透明度/拦截 实际上是一个获得的功能 秘密扭曲内部的NAT路线 出去和回到自己身上。真是太棒了 逻辑上没有NAT的协议 不能做透明度和 拦截那种方式。
另一种丑陋的黑:
- 标记所有交通令(乎有CONNMARK目标IPv6)
- 路线的所有标记的交通敦装置
- 不用户的空间NAT在程序的听tun设备
- ...
在IPv6堆栈中编写自己的NAT实现。
不隶属于 StackOverflow