情形:
内部的www服务器能被外面的机器访问,Linux作为网关,要进行端口映射。通过adsl连接Internet,
192.168.1.1为网关的内部ip地址,内部的www服务器192.168.1.130。
WWW_IP=$(ifconfig ppp0|grep "inet"|awk '{print $2}'|awk -F: '{print $2}')
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 \
-j DNAT --to 192.168.1.130:80
iptables -A FORWARD -i ppp0 -p tcp -m tcp --dport 80 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.1.130 \
-p tcp --dport 80 -j SNAT --to 192.168.1.1
iptables -t nat -A PREROUTING -d $WWW_IP -p tcp --dport 80 \
-j DNAT --to 192.168.1.130
这样内外网就可以正常访问内部的WWW服务器器。
由于是adsl,它本身的ip是动态的。所以要写一个脚本,在cron里定时执行:
#! /bin/sh
WAN_IP=$(ifconfig ppp0|grep "inet"|awk '{print $2}'|awk -F: '{print $2}')
$IPT -t nat -R PREROUTING 2 -d $WAN_IP -p tcp --dport 80 -j \
DNAT --to 192.168.1.130
#注意2 iptables -t nat -A PREROUTING -d $WWW_IP -p tcp --dport 80 -j DNAT --to 192.168.1.130 对应的序号。
静态ip的就更简单了。~_~
阅读(3523) | 评论(0) | 转发(0) |