|
因为是动态ADSL,IP时不时变,一不小心IP变了,重启了服务。环境就变了,为此写一个脚本。
第一个脚本,用于检测重启网络服务时,自动启动iptables,keepalive
- #!/bin/bash
- #des:used for start network,iptables,keepalived
- #env
- ip_address=`ifconfig ppp0 | grep inet | cut -d ":" -f 2 | cut -d " " -f 1`
- ipt_status=`iptables -L -t nat | grep MASQUERADE`
- today=`date +%Y-%m-%d-%H:%M`
- . /etc/init.d/functions
- case "$1" in
- start)
- service network start
- sleep 5
- /root/iptables.sh
- /root/dy_lvs_ip_check.sh
- ;;
- stop)
- service network stop
- /sbin/iptables -F
- /sbin/iptables -F -t nat
- /sbin/iptables -X
- /sbin/iptables -Z
- ;;
- restart)
- service network restart
- /root/iptables.sh
- /root/dy_lvs_ip_check.sh
- ;;
- status)
- echo "+++++++++++++++++++++++++++++"
- echo "Time: $today"
- echo "+++++++++++++++++++++++++++++"
- echo "PPP0 ipaddress: $ip_address"
- echo "+++++++++++++++++++++++++++++"
- echo "iptables nat table: $ipt_status"
- echo "+++++++++++++++++++++++++++++"
- /sbin/ipvsadm
- echo "+++++++++++++++++++++++++++++"
- ;;
- *)
- echo "Usage: $0 {start|stop|restart|status}" esac
iptables脚本:
- #env
- ipt=/sbin/iptables
- net1=192.168.10.0/24
-
- #clean rules
- $ipt -F
- $ipt -X
- $ipt -Z
-
- $ipt -F -t nat
- $ipt -X -t nat
- $ipt -Z -t nat
-
-
- #define
- $ipt -P INPUT DROP
- $ipt -P OUTPUT ACCEPT
- $ipt -P FORWARD ACCEPT
- #state
- $ipt -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
- #lo and localnetwork
- $ipt -A INPUT -i lo -j ACCEPT
- $ipt -A INPUT -s $net1 -j ACCEPT
- #icmp
- $ipt -A INPUT -p icmp -j ACCEPT
- #http
- $ipt -A INPUT -p tcp -m multiport --dports 2222,80,8080,8088 -j ACCEPT
- $ipt -A INPUT -p udp -m multiport --dports 2222,80,8080,8088 -j ACCEPT
-
- #nat
- $ipt -t nat -A POSTROUTING -o ppp0 -s $net1 -j MASQUERADE
dy_lvs_check.sh:检测keepalive以及动态IP
- #!/bin/bash
- #Des: used for check ppp0 ipaddress
- keepalive_conf=/etc/keepalived/keepalived.conf
- new_ppp0=`ifconfig ppp0 | grep inet | cut -d ":" -f 2 | cut -d " " -f 1`
- old_ppp0=`grep 8080 /etc/keepalived/keepalived.conf | cut -d " " -f 2`
-
- if [ "$new_ppp0" != "$old_ppp0" ];then
- sed -i "23c\virtual_server "$new_ppp0" 8080 {" $keepalive_conf
- echo "ppp0 ipaddress is $new_ppp0"
- /etc/init.d/keepalived restart
- sleep 3
- /sbin/ipvsadm
- else
- echo "keepalive is OK"
- fi
- ~
|
|
|