dotfiles

My configuration files
git clone git://git.finwo.net/misc/dotfiles
Log | Files | Refs

slip.sh (1265B)


      1 #!/usr/bin/env bash
      2 
      3 _term() {
      4 	echo "Caught SIGTERM"
      5 	kill -TERM "$child" 2>/dev/null
      6 }
      7 
      8 DEV=/dev/ttyS2
      9 SPD=1500000
     10 MOD=client
     11 
     12 while [ "$#" -gt 0 ]; do
     13   case "$1" in
     14     -s|--speed)
     15       shift
     16       SPD=$1
     17       ;;
     18     -d|--dev|--tty)
     19       shift
     20       DEV=$1
     21       ;;
     22     -m|--mode)
     23       shift
     24       MOD=$1
     25       ;;
     26   esac
     27   shift
     28 done
     29 
     30 trap _term SIGTERM
     31 sudo stty -F $DEV $SPD
     32 sudo slattach -L -s $SPD -p cslip $DEV &
     33 child=$!
     34 
     35 echo "nameserver 127.0.0.1" | sudo tee -a /etc/resolv.conf
     36 echo "nameserver 1.1.1.1"   | sudo tee -a /etc/resolv.conf
     37 echo "nameserver 1.0.0.1"   | sudo tee -a /etc/resolv.conf
     38 echo "nameserver 8.8.8.8"   | sudo tee -a /etc/resolv.conf
     39 echo "nameserver 8.8.4.4"   | sudo tee -a /etc/resolv.conf
     40 
     41 case "$MOD" in
     42   client)
     43     sudo ifconfig sl0 192.168.16.2 pointtopoint 192.168.16.1 up
     44     sudo route add default dev sl0
     45     ;;
     46   host)
     47     PHY=$(route -n | grep UG | tr ' ' '\n' | tail -1)
     48     sudo iptables -t nat -A POSTROUTING -o $PHY -j MASQUERADE
     49     sudo iptables -A FORWARD -i sl0 -o $PHY -j ACCEPT
     50     sudo iptables -A FORWARD -i $PHY -o sl0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
     51     sudo iptables -A FORWARD -j DROP
     52     sudo ifconfig sl0 192.168.16.1 pointopoint 192.168.16.2 up
     53     ;;
     54 esac
     55 
     56 wait "$child"