需求:
访问 192.168.1.10:18888 ,实际访问服务为 192.168.1.125:80
配置:通过iptables NAT规则可以实现
(在Web服务器上配置,公网也可以)
1. 开启路由转发:
net.ipv4.ip_forward = 1
2. 转发请求到目标主机:
代码语言:javascript复制# iptables -t nat -A PREROUTING --dst 192.168.1.10 -p tcp --dport 18888 -j DNAT --to-destination 192.168.1.125:80
3. 转发数据包回路:
代码语言:javascript复制# iptables -t nat -A POSTROUTING --dst 192.168.1.125 -p tcp --dport 80 -j SNAT --to-source 192.168.1.10
4表:
- filter表——过滤数据包
- Nat表——用于网络地址转换(IP、端口)
- Mangle表——修改数据包的服务类型、TTL、并且可以配置路由实现QOS
- Raw表——决定数据包是否被状态跟踪机制处理
5链:
- INPUT链——进来的数据包应用此规则链中的策略
- OUTPUT链——外出的数据包应用此规则链中的策略
- FORWARD链——转发数据包时应用此规则链中的策略
- PREROUTING链——对数据包作路由选择前应用此链中的规则(所有的数据包进来的时侯都先由这个链处理)
- POSTROUTING链——对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理)