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"