当前位置: 技术问答>linux和unix
再问iptables的问题!
来源: 互联网 发布时间:2015-04-07
本文导语: 先说明一下我的环境,adsl上网,代理机用redhat8.0(内网eth0:192.168.1.1/24,接adsl eth1 192.168.254.254/24),用iptables做局域网nat的透明代理上网!局域网内有一web服务器(192.168.1.5)为redhat9.0+apache+php+mysql+vbb,在代理...
先说明一下我的环境,adsl上网,代理机用redhat8.0(内网eth0:192.168.1.1/24,接adsl eth1 192.168.254.254/24),用iptables做局域网nat的透明代理上网!局域网内有一web服务器(192.168.1.5)为redhat9.0+apache+php+mysql+vbb,在代理机上做端口映射以使外网能够访问内网的web服务器,局域网网内上网和外网访问web服务器一切正常!语句如下
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -d 192.168.1.5 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.1.1
iptables -t nat -A PREROUTING -p tcp -m tcp -d 218.*.*.* --dport 80 -j DNAT --to 192.168.1.5(218.*.*.*为adsl拨号所的动态ip)
现在的问题是,1:每次拨号都获得不同的ip,都要手动键入第三条语句,修改相应外网ip地址,较为麻烦,对于第三条命令如何能与网卡地址
(或是ppp0)绑定?,不用修改动态ip地址,把上述语句写入rc.local,一开机就运行 2:人家访问web服务器的时候记录下的ip地址都是代理机的地址(192.168.1.1),不是真实的ip地址,如何才能显示访问者真实的ip呢?谢谢!
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -d 192.168.1.5 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.1.1
iptables -t nat -A PREROUTING -p tcp -m tcp -d 218.*.*.* --dport 80 -j DNAT --to 192.168.1.5(218.*.*.*为adsl拨号所的动态ip)
现在的问题是,1:每次拨号都获得不同的ip,都要手动键入第三条语句,修改相应外网ip地址,较为麻烦,对于第三条命令如何能与网卡地址
(或是ppp0)绑定?,不用修改动态ip地址,把上述语句写入rc.local,一开机就运行 2:人家访问web服务器的时候记录下的ip地址都是代理机的地址(192.168.1.1),不是真实的ip地址,如何才能显示访问者真实的ip呢?谢谢!
|
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport http -j DNAT --to 192.168.0.5:80
|
不用啊,可以将语句改为:
iptables -F
echo 1 > /proc/sys/net/ipv4/IP_FORWORD
iptables -t net -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQUEADE
iptables -F
echo 1 > /proc/sys/net/ipv4/IP_FORWORD
iptables -t net -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQUEADE