Habe für mein Subnet immer folgendes genutzt. Das ARRAY macht hier nur Sinn bei wenigen Andressen. Bei vielen, sollte man sich die "ifconfig" Ausgabe strippen und in einer Variable (IP_ARRAY) ablegen.
Code:
#!/bin/bash
IP_ARRAY="127.0.0.1 127.0.0.2 ..."
TIME_WAIT="45" # Sekunden bis zum Wechsel
ADAPTER="eth0" # Primärer Netzwerkadapter
while true; do
for IP_OUT in ${IP_ARRAY}; do
echo -e "\n :: Wechsle IP: ${IP_OUT}"
iptables -t nat -D POSTROUTING 1
iptables -t nat -A POSTROUTING -o ${ADAPTER} -j SNAT --to ${IP_OUT}
echo " :: Aktuelle IP-Adresse: `curl -sS -L "www.wieistmeineip.com" | grep "<h3>" | cut -d\> -f2 | cut -d\< -f1`"
sleep ${TIME_WAIT}s
done
done
Benötigte Pakete:
Code:
apt-get update && apt-get install curl iptables -y
Das "ip_changer.sh" Script mit
Code:
chmod +x ip_changer.sh
die nötigen Rechte geben und in einer Screen-Session ausführen.
Alternativ kann man noch einen Cronjob einfügen der prüft ob das Script "ip_changer.sh" noch läuft, und wenn nicht, automatisch gestartet wird. Alternativ kann auch das TIME_WAIT entfernt und per Cronjob alle x Minuten ausgeführt werden.
Ein minütlich prüfender Cronjob sähe wie folgt aus:
Code:
*/1 * * * * if [ -n "`ps aux | grep ip_changer | grep -v grep`" ]; then screen -dmS ip_changer ./path/to/ip_changer.sh; fi
Das macht natürlich nur Sinn wenn man die IP im Sekundentakt ändern möchte.
Grüße