iptables常用场景

2023/7/18

# 代理转发

背景:无法访问线上机器,只能访问到中控机,可以通过中控机代理请求到线上机器

原理:客户端请求中控机的某端口如8222,中控机将请求转发到线上机器的22,回包时修改来源ip为中控机

开启内核转发

echo 1 > /proc/sys/net/ipv4/ip_forward
# 永久生效需编辑/etc/sysctl.conf,添加:net.ipv4.ip_forward=1
1
2

代理外部请求

线上机器:10.33.5.83

中控:10.118.140.27

# 启用nat表的入向流量转发到线上机器
iptables -t nat -A PREROUTING -p tcp --dport 8222 -j DNAT --to 10.33.5.83:22
# FORWARD转发放行(外部请求不过本机的转发先经过nat的PREROUTING,在经过filter的FORWARD)
iptables -A FORWARD -p tcp -d 10.33.5.83 --dport 22 -j ACCEPT
# 回包修改来源ip,由线上机器改为中控,否则客户端收到包会丢弃
iptables -t nat -A POSTROUTING -p tcp -d 10.33.5.83 --dport 22 -j SNAT --to 10.118.140.27
1
2
3
4
5
6

代理本机请求

iptables -t nat -A PREROUTING -p tcp --dport 8222 -j REDIRECT --to-port 22
iptables -t nat -A OUTPUT -p tcp -o lo --dport 8222 -j REDIRECT --to-port 22
1
2
Last Updated: 2025/4/19
只爱西经
林一