我现在遇到了一个奇怪的 iptables 问题。简单来说,我想将流量从端口 514 重定向到端口 5140。我使用这个 IPTables 命令来实现它:
iptables -t nat -A PREROUTING -p tcp --dport 514 -j REDIRECT --to-port 5140
但我仍然收到关于没有链条的错误
iptables: No chain/target/match by that name.
nat 表中肯定有 PREROUTING 链,这是 iptables -t nat -nL
root@VPS-LOGGER-TMP:~# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
我正在使用 Debian Wheezy,并且已经加载了所有需要的模块:
root@VPS-LOGGER-TMP:~# lsmod |grep nat
iptable_nat 12928 0
nf_nat 18242 1 iptable_nat
nf_conntrack_ipv4 14078 4 nf_nat,iptable_nat
nf_conntrack 52720 4 xt_state,nf_conntrack_ipv4,nf_nat,iptable_nat
ip_tables 22042 2 iptable_filter,iptable_nat
x_tables 19118 9 ip_tables,iptable_filter,xt_multiport,ip6_tables,ip6table_filter,xt_state,xt_tcpudp,ipt_REJECT,iptable_nat
你能告诉我我做错了什么吗?据我所知,这应该可以完美运行。非常感谢。
答案1
你需要
CONFIG_IP_NF_TARGET_REDIRECT
在内核配置中设置为 y 或 m 以便使用 -j REDIRECT。
该模块将被称为 xt_REDIRECT,但您的机器上似乎缺少该模块。