iptables 实现8000端口内核流量镜像到8001 原本发给8000的流量还正常发送
要实现将8000端口的内核流量镜像到8001端口,并且原本发给8000端口的流量仍然正常发送,可以使用iptables的PREROUTING链和POSTROUTING链来完成。
首先,需要确保系统已经安装了iptables,并且打开了内核的IP转发功能。
- 将8000端口的流量镜像到8001端口:
sudo iptables -t mangle -A PREROUTING -p tcp --dport 8000 -j TEE --gateway 127.0.0.1:8001
这个命令将PREROUTING链中的输入流量(到达主机之前)的8000端口的TCP流量镜像到8001端口。其中--gateway 127.0.0.1:8001表示镜像到本地回环地址的8001端口。
- 确保8000端口的流量仍然正常发送:
sudo iptables -t nat -A PREROUTING -p tcp --dport 8000 -j DNAT --to-destination 127.0.0.1:8000
sudo iptables -t nat -A POSTROUTING -p tcp --dport 8000 -j MASQUERADE
这个命令将PREROUTING链中的输入流量的8000端口的目标地址(Destination Address)修改为127.0.0.1:8000,确保流量正常发送到8000端口。同时,POSTROUTING链中的输出流量的8000端口进行源地址转换(Source Address Translation),以确保回复的流量正确返回。
请注意,这些规则将只会在iptables被重新加载或者系统重启后生效。如果需要永久生效,可以将这些规则保存到防火墙规则配置文件中,如/etc/iptables/rules.v4(适用于IPv4)或/etc/iptables/rules.v6(适用于IPv6)。
希望对你有所帮助
原文地址: http://www.cveoy.top/t/topic/h18U 著作权归作者所有。请勿转载和采集!