kuchin://Linux/Network/ADSL

Root
Boards
Cars
Company
Development
Fish
Hardware
House
Internet
Israel
Linux
     Cron
     mySQL
     Network
     ADSL
     Shaping
     Programs
     Time
     SSH
Multimedia
Network
PDA
Photo
Travel
Unsorted
Windows



Rambler's Top100

Мой скрипт для подключения к интернету через ADSL

#!⁄bin⁄sh
# change the next line to match the path of your pptp binary
PPTP=pptp
NAME=adsl
DESC="ADSL connection"
PIDFILE=⁄var⁄run⁄$NAME.pid
LOCK=⁄var⁄lock⁄adsl
TEMPFILE=⁄tmp⁄adslTempFile
# test -e $LOCK && exit 0
touch $LOCK
## set -e # not needed
# if successful returns 0, 1 otherwise
function connect () {
iptables -F
iptables -F -t nat
ifconfig eth0 down
ifconfig ppp0 down &> ⁄dev⁄null
killall pptp &> ⁄dev⁄null
ifconfig eth0 10.200.1.1 netmask 255.0.0.0 mtu 1500
ifconfig eth0 up
sleep 1
pptp 10.0.0.138 --quirks=BEZEQ_ISRAEL debug user username@IActcom remotename "10.0.0.138 RELAY_PPP1" defaultroute mtu 1452 mru 1452 noauth
sleep 3
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# Port forwarding to windows machine (192.168.0.1)
# Linux internal IP is 192.168.0.7
iptables -t nat -A PREROUTING -p tcp --dport 4662 -j DNAT --to 192.168.0.1:4662
iptables -t nat -A PREROUTING -p udp --dport 4662 -j DNAT --to 192.168.0.1:4662
echo "1" > ⁄proc⁄sys⁄net⁄ipv4⁄ip_forward
echo "1" > ⁄proc⁄sys⁄net⁄ipv4⁄ip_dynaddr
while ps aux > $TEMPFILE; grep pppd $TEMPFILE &> ⁄dev⁄null; do
sleep 1
if ifconfig ppp0 | grep "inet addr" &> ⁄dev⁄null; then
sleep 2
cd ⁄tmp
⁄usr⁄local⁄sbin⁄darkstat -i eth0 -p 888 > ⁄dev⁄null &
return 0
fi
done
rm -f $TEMPFILE
# pppd died, connection failed
echo Failed. Trying...
return 1
}
function disconnect () {
ifconfig ppp0 down &> ⁄dev⁄null
killall pptp &> ⁄dev⁄null
killall pppd &> ⁄dev⁄null
while ps aux > $TEMPFILE; grep pppd $TEMPFILE &> ⁄dev⁄null; do
sleep 1
done
rm -f $TEMPFILE
ifconfig eth0 down
rm -f ⁄var⁄run⁄pptp⁄10.0.0.138
}
function start () {
echo -n "Starting $DESC: "
until connect; do
disconnect
done
echo "$NAME."
}
function stop () {
echo -n "Stopping $DESC: "
disconnect
echo "$NAME."
}
function restart () {
stop
start
}
function check () {
while ps aux > $TEMPFILE; grep pppd $TEMPFILE &> ⁄dev⁄null; do
sleep 1
if ifconfig ppp0 | grep "inet addr" &> ⁄dev⁄null; then
return 0
fi
done
rm -f $TEMPFILE
echo "Disconnected. Restarting $DESC..."
until connect; do
disconnect
done
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|force-reload)
sleep 2
restart
;;
check)
check
;;
*)
echo "Usage: ⁄etc⁄init.d⁄adsl {start|stop|restart|force-reload}"
rm -f $LOCK
exit 1
esac
rm -f $LOCK
exit 0