在iptables中配置NAT(网络地址转换)主要涉及两种类型的NAT:源地址NAT(SNAT)和目的地址NAT(DNAT)。以下是配置NAT的基本步骤:
SNAT用于将内部网络的私有IP地址转换为公共IP地址,以便内部主机可以访问外部网络。
假设内部网络为192.168.1.0/24,公共IP地址为202.100.100.100。
# 清除现有的SNAT规则
iptables -t nat -D POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 202.100.100.100
# 添加新的SNAT规则
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 202.100.100.100
DNAT用于将外部网络的流量重定向到内部网络的特定主机。
假设外部IP地址为202.100.100.100,内部IP地址为192.168.1.10,端口为80。
# 清除现有的DNAT规则
iptables -t nat -D PREROUTING -d 202.100.100.100 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.10:80
# 添加新的DNAT规则
iptables -t nat -A PREROUTING -d 202.100.100.100 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.10:80
为了使NAT生效,需要在系统上启用IP转发。
# 编辑sysctl配置文件
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
# 应用配置
sysctl -p
为了确保重启后规则仍然有效,需要保存iptables规则。
iptables-save > /etc/iptables/rules.v4
service iptables save
通过以上步骤,你可以在iptables中配置基本的NAT规则。根据具体需求,可能需要进一步调整和优化规则。