iptables 内部流量重定向

iptables 内部流量重定向

我想将属于用户“cromy”的所有 http/s 流量重定向到内部代理:

iptables -t nat -A POSTROUTING -d 127.0.0.1 -p tcp -m multiport -m owner --uid-owner cromy --sports 80,443 -j REDIRECT --to-ports 8080

iptables -t nat -A PREROUTING -s 127.0.0.1 -p tcp -m multiport -m owner --uid-owner cromy --dports 80,443 -j REDIRECT --to-ports 8080

不幸的是,它不起作用,我们分别收到以下错误消息:

[ 1317.240826] x_tables: ip_tables: REDIRECT target: used from hooks POSTROUTING, but only usable from PREROUTING/OUTPUT

[ 1265.161118] x_tables: ip_tables: owner match: used from hooks PREROUTING, but only valid from OUTPUT/POSTROUTING

大家有什么想法吗?谢谢。

答案1

根据关于您要实现的目标的很少的信息,我猜您正在寻找:

iptables -t nat -A OUTPUT -d 127.0.0.1 -p tcp -m multiport -m owner --uid-owner cromy --dports 80,443 -j REDIRECT --to-ports 8080

请注意:

  1. 这只会将流量重定向到 IPv4 本地主机地址上的 Web 服务器。
  2. 如果您想将所有流量重定向到端口 80 和 443,只需删除 -d 选项。
  3. 您只能在主机本身上匹配用户,而不能在路由器上匹配。
  4. 我不知道您在端口 8080 上监听了什么,因此不能保证它能正常工作,或者可能只对其中一种协议正常工作。

相关内容