0

Script de connexion iodine

iodine est un logiciel permettant de faire de l'IP over DNS. En effet le DNS est très rarement bloqué sur les hotspots payants (tels qu'on trouve souvent dans les hôtels) et c'est chiant de devoir payer juste pour vérifier ses mails.

Voici donc pour mémoire mon petit script permettant de me connecter à mon serveur iodine et d'établir les routes correctes.

#!/bin/bash

# Iodine parameters
DOMAIN="iodine.example.com"
PASSWORD="my0v3rS3cur3pass"

if [[ $EUID -ne 0 ]]; then
        echo "You must be root, young padawan" 2>&1
        exit 1
fi

# Kill previous instances and set usefull variables
killall iodine
GATEWAY=$(/sbin/ip route | awk '/default/ { print $3 }')
DNS=$(awk '/nameserver/ {print $2}' /etc/resolv.conf | head -1)

# Use only local DNS server
echo "nameserver $DNS" > /etc/resolv.conf

# Initiate iodine. You can try without -r for better perfs
iodine -r -P $PASSWORD $DNS $DOMAIN

# Routes : one to local DNS, then the two for Internet access
route add -host $DNS gw $GATEWAY
route add -net 0.0.0.0/1 gw 172.16.42.1
route add -net 128.0.0.0/1 gw 172.16.42.1

echo -e "\033[1;33mTesting connectivity...\033[0m"
MYIP=$(curl -s ifconfig.me)
echo -e "Public IP is now \033[1;32m$MYIP\033[0m"
PING=$(ping -c10 -i0.2 google.com | awk -F'/' '/rtt/ {print $5}')
echo -e "Average Google ping is \033[1;32m$PING\033[0m"