如何使用 ip6tables 将一个端口重定向到另一个本地端口?例如像这样:ip6tables -t nat -A PREROUTING -j REDIRECT -p tcp --dport 443 --to-ports 8443
问问题
15608 次
2 回答
7
嗯,这是一个老问题,但因为我需要做同样的事情......这是我发现的:
TPROXY
This target is only valid in the mangle table, in the PREROUTING chain and user-defined chains which are only called from this chain. It redirects the packet to a local socket without changing the packet header in any way. It can also change the mark value which can then be used in advanced routing rules. It takes three options:
--on-port port
This specifies a destination port to use. It is a required option, 0 means the new destination port is the same as the original. This is only valid if the rule also specifies -p tcp or -p udp.
--on-ip address
This specifies a destination address to use. By default the address is the IP address of the incoming interface. This is only valid if the rule also specifies -p tcp or -p udp.
--tproxy-mark value[/mask]
Marks packets with the given value/mask. The fwmark value set here can be used by advanced routing. (Required for transparent proxying to work: otherwise these packets will get forwarded, which is probably not what you want.)
当然,这仅对 ip6tables 有效。所以我想这是有效的:
ip6tables -t mangle -A PREROUTING -p tcp --dport 443 -j TPROXY --on-port 8443
但是,我还没有尝试过。
于 2012-06-18T15:13:19.460 回答
5
ip6tables
不支持REDIRECT
。(通常人们在 NAT 环境中使用它,而 IPv6 通常不支持 NAT。)
如果您只需以普通用户身份绑定到低端口,为什么不尝试此答案中描述的解决方法?当然,就 Tomcat 而言,这听起来意味着赋予任何 Java 进程该能力。
于 2011-02-06T04:04:41.690 回答