Целью было часто менять исходный IP-адрес по умолчанию на компьютере с несколькими интерфейсами и жить ips.Что может помешать частому переключению источника ip по умолчанию с несколькими интерфейсами
Я использовал ip-маршрут для замены по умолчанию в соответствии с его документацией и позволял скрипту работать в цикле на некоторый интервал. Он немного меняет источник ip-кода, но затем все интернет-доступ к компьютеру теряется. Он должен быть удаленно перезагружен с веб-интерфейса, чтобы иметь любую работу
Есть ли что-то, что могло бы помешать этому работать стабильно. Я пробовал это на нескольких серверах?
Ниже приведен минимальный пример
# extract all currently active source ips except loopback
IPs="$(ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 |
awk '{ print $1}')"
read -a ip_arr <<<$IPs
# extract all currently active mac/ethernet addresses
Int="$(ifconfig | grep 'eth'| grep -v 'lo' | awk '{print $1}')"
read -a eth_arr <<<$Int
ip_len=${#ip_arr[@]}
eth_len=${#eth_arr[@]}
i=0;
e=0;
while(true); do
#ip route replace 0.0.0.0 dev eth0:1 src 192.168.1.18
route_cmd="ip route replace 0.0.0.0 dev ${eth_arr[e]} src ${ip_arr[i]}"
echo $route_cmd
eval $route_cmd
sleep 300
(i++)
(e++)
if [ $i -eq $ip_len ]; then
i=0;
e=0;
echo "all ips exhausted - starting from first again"
# break;
fi
done
'(истина)' ошибка (безвредно, но тем не менее, ошибка), что порождает бессмысленную подоболочку. Вам не хватает открытия '(' на строке 'i ++' (я предполагаю, что это опечатка транскрипции, хотя. Не путайте с 'eval', когда вам это не нужно (и вам не обязательно сюда). вы хотите увидеть запущенную команду, вы можете использовать 'set -x' /' set + x' или 'set -v' /' set + v' в строке 'ip route', чтобы заставить оболочку распечатать ('-x') или строка, которую он читает (' -v') у вас. Где в процессе происходит нарушение? Конец первого прохода? Случайно? Каково состояние маршрутов, когда это происходит ? –
Все интерфейсы в одной локальной сети (например, 192.168.1.0/24?) – RTLinuxSW
Спасибо, ребята, извините за то, что скрипт работает отлично даже в течение нескольких дней, когда он работает в фоновом режиме. Для первых 10 15 итераций (где в основном ip изменяется примерно в 15 раз), все отлично работает. После этого случайная возможность доступа к интернету теряется с этой машины. Поскольку это удаленный сервер, я не могу пинговать ни один из интерфейсов, поэтому я должен перезагрузить его из на основе http-панели управления, чтобы получить обратно ssh-доступ. Да, они все в одной локальной сети. Но все являются живыми IP-адресами – fayyazkl