Я хочу настроить маршрутизатор Ubuntu с автоматической переходом на 3G-связь. Возможно, я настроил маршрутизацию и агрегацию ссылок, но я не знаю, как контролировать статус ссылки и набирать 3G-ссылку, если она не работает. Указатели на полезные ресурсы очень ценятся.
Я не уверен, что есть что-то там, что может сделать это для вас ... Однако вы могли бы с небольшим количеством скриптов немного скомпилировать сценарий, который:
Каждые 10 минут пингует Google с таймаутом в 2 секунды и только с вашего «фиксированного» соединения (а не 3G) (используйте флаг -I). Если ping успешно, и вы находитесь в фиксированном соединении, ничего не делайте. Если вы находитесь в сети 3G и пинг по фиксированному подключению, снимите 3G-адаптер. Если это не удается, подключите адаптер 3G.Вот моя быстрая попытка:
#! /bin/bash
CONNECTION=1
main()
{
if ping -q -c 1 -w 1 -I eth0 google.com > /dev/null ; then
echo "Connection is ok!"
if [ $CONNECTION -eq 0 ] ; then
# take the 3g connection down
ifconfig 3GADAPTERNAME down
CONNECTION=1
fi
else
echo "Connection is dead! Long live the connection!"
if [ $CONNECTION -eq 1 ] ; then
# turn the 3g connection on
ifconfig 3GADAPTERNAME up
CONNECTION=0
fi
fi
sleep 5
main
}
main
Очевидно, замените 3GADAPTERNAME на имя вашего адаптера. выключите eth0, если ваше основное соединение отличается. Убедитесь, что он настроен на автоматическое соединение (поэтому, когда это разрешено, он делает). Сценарий должен запускаться с правами root.
Я не уверен, что есть что-то там, что может сделать это для вас ... Однако вы могли бы с небольшим количеством скриптов немного сходить в Google, скрестив скрипт, который:
Каждые 10 минут пингует Google с таймаутом в 2 секунды и только с вашего «фиксированного» соединения (а не 3G) (используйте флаг -I). Если ping успешно, и вы находитесь в фиксированном соединении, ничего не делайте. Если вы находитесь в сети 3G и пинг по фиксированному подключению, снимите 3G-адаптер. Если это не удается, подключите адаптер 3G.Вот моя быстрая попытка:
#! /bin/bash
CONNECTION=1
main()
{
if ping -q -c 1 -w 1 -I eth0 google.com > /dev/null ; then
echo "Connection is ok!"
if [ $CONNECTION -eq 0 ] ; then
# take the 3g connection down
ifconfig 3GADAPTERNAME down
CONNECTION=1
fi
else
echo "Connection is dead! Long live the connection!"
if [ $CONNECTION -eq 1 ] ; then
# turn the 3g connection on
ifconfig 3GADAPTERNAME up
CONNECTION=0
fi
fi
sleep 5
main
}
main
Очевидно, замените 3GADAPTERNAME на имя вашего адаптера. выключите eth0, если ваше основное соединение отличается. Убедитесь, что он настроен на автоматическое соединение (поэтому, когда это разрешено, он делает). Сценарий должен запускаться с правами root.
Я не уверен, что есть что-то там, что может сделать это для вас ... Однако вы могли бы с небольшим количеством скриптов немного сходить в Google, скрестив скрипт, который:
Каждые 10 минут пингует Google с таймаутом в 2 секунды и только с вашего «фиксированного» соединения (а не 3G) (используйте флаг -I). Если ping успешно, и вы находитесь в фиксированном соединении, ничего не делайте. Если вы находитесь в сети 3G и пинг по фиксированному подключению, снимите 3G-адаптер. Если это не удается, подключите адаптер 3G.Вот моя быстрая попытка:
#! /bin/bash
CONNECTION=1
main()
{
if ping -q -c 1 -w 1 -I eth0 google.com > /dev/null ; then
echo "Connection is ok!"
if [ $CONNECTION -eq 0 ] ; then
# take the 3g connection down
ifconfig 3GADAPTERNAME down
CONNECTION=1
fi
else
echo "Connection is dead! Long live the connection!"
if [ $CONNECTION -eq 1 ] ; then
# turn the 3g connection on
ifconfig 3GADAPTERNAME up
CONNECTION=0
fi
fi
sleep 5
main
}
main
Очевидно, замените 3GADAPTERNAME на имя вашего адаптера. выключите eth0, если ваше основное соединение отличается. Убедитесь, что он настроен на автоматическое соединение (поэтому, когда это разрешено, он делает). Сценарий должен запускаться с правами root.
Я не уверен, что есть что-то, что может сделать это для вас ... Однако вы могли бы с небольшим количеством скриптов немного поработать в Google, скрипке, которая:
-I
). Вот моя быстрая попытка:
#! / bin / bash CONNECTION = 1 main () {если ping -q -c 1 -w 1 -I eth0 google.com & gt; / dev / null; затем эхо «Соединение в порядке!» если [$ CONNECTION -eq 0]; затем # взять 3g-соединение вниз ifconfig 3GADAPTERNAME вниз CONNECTION = 1 fi else echo «Соединение мертво! Да здравствует соединение!» если [$ CONNECTION -eq 1]; затем # включить соединение 3g на ifconfig 3GADAPTERNAME вверх ПОДКЛЮЧЕНИЕ = 0 fi fi sleep 5 main} main
Очевидно, замените 3GADAPTERNAME
на имя вашего адаптера. выключите eth0
, если ваше основное соединение отличается. Убедитесь, что он настроен на автоматическое соединение (поэтому, когда это разрешено, он делает). Сценарий должен работать от имени root.
Я не уверен, что есть что-то, что может сделать это для вас ... Однако вы могли бы с небольшим количеством скриптов немного поработать в Google, скрипке, которая:
-I
). Вот моя быстрая попытка:
#! / bin / bash CONNECTION = 1 main () {если ping -q -c 1 -w 1 -I eth0 google.com & gt; / dev / null; затем эхо «Соединение в порядке!» если [$ CONNECTION -eq 0]; затем # взять 3g-соединение вниз ifconfig 3GADAPTERNAME вниз CONNECTION = 1 fi else echo «Соединение мертво! Да здравствует соединение!» если [$ CONNECTION -eq 1]; затем # включить соединение 3g на ifconfig 3GADAPTERNAME вверх ПОДКЛЮЧЕНИЕ = 0 fi fi sleep 5 main} main
Очевидно, замените 3GADAPTERNAME
на имя вашего адаптера. выключите eth0
, если ваше основное соединение отличается. Убедитесь, что он настроен на автоматическое соединение (поэтому, когда это разрешено, он делает). Сценарий должен работать от имени root.
Я не уверен, что есть что-то, что может сделать это для вас ... Однако вы могли бы с небольшим количеством скриптов немного поработать в Google, скрипке, которая:
-I
). Вот моя быстрая попытка:
#! / bin / bash CONNECTION = 1 main () {если ping -q -c 1 -w 1 -I eth0 google.com & gt; / dev / null; затем эхо «Соединение в порядке!» если [$ CONNECTION -eq 0]; затем # взять 3g-соединение вниз ifconfig 3GADAPTERNAME вниз CONNECTION = 1 fi else echo «Соединение мертво! Да здравствует соединение!» если [$ CONNECTION -eq 1]; затем # включить соединение 3g на ifconfig 3GADAPTERNAME вверх ПОДКЛЮЧЕНИЕ = 0 fi fi sleep 5 main} main
Очевидно, замените 3GADAPTERNAME
на имя вашего адаптера. выключите eth0
, если ваше основное соединение отличается. Убедитесь, что он настроен на автоматическое соединение (поэтому, когда это разрешено, он делает). Сценарий должен работать от имени root.
Я не уверен, что есть что-то, что может сделать это для вас ... Однако вы могли бы с небольшим количеством скриптов немного поработать в Google, скрипке, которая:
-I
). Вот моя быстрая попытка:
#! / bin / bash CONNECTION = 1 main () {если ping -q -c 1 -w 1 -I eth0 google.com & gt; / dev / null; затем эхо «Соединение в порядке!» если [$ CONNECTION -eq 0]; затем # взять 3g-соединение вниз ifconfig 3GADAPTERNAME вниз CONNECTION = 1 fi else echo «Соединение мертво! Да здравствует соединение!» если [$ CONNECTION -eq 1]; затем # включить соединение 3g на ifconfig 3GADAPTERNAME вверх ПОДКЛЮЧЕНИЕ = 0 fi fi sleep 5 main} main
Очевидно, замените 3GADAPTERNAME
на имя вашего адаптера. выключите eth0
, если ваше основное соединение отличается. Убедитесь, что он настроен на автоматическое соединение (поэтому, когда это разрешено, он делает). Сценарий должен работать от имени root.
Я не уверен, что есть что-то, что может сделать это для вас ... Однако вы могли бы с небольшим количеством скриптов немного поработать в Google, скрипке, которая:
-I
). Вот моя быстрая попытка:
#! / bin / bash CONNECTION = 1 main () {если ping -q -c 1 -w 1 -I eth0 google.com & gt; / dev / null; затем эхо «Соединение в порядке!» если [$ CONNECTION -eq 0]; затем # взять 3g-соединение вниз ifconfig 3GADAPTERNAME вниз CONNECTION = 1 fi else echo «Соединение мертво! Да здравствует соединение!» если [$ CONNECTION -eq 1]; затем # включить соединение 3g на ifconfig 3GADAPTERNAME вверх ПОДКЛЮЧЕНИЕ = 0 fi fi sleep 5 main} main
Очевидно, замените 3GADAPTERNAME
на имя вашего адаптера. выключите eth0
, если ваше основное соединение отличается. Убедитесь, что он настроен на автоматическое соединение (поэтому, когда это разрешено, он делает). Сценарий должен работать от имени root.
Я не уверен, что есть что-то, что может сделать это для вас ... Однако вы могли бы с небольшим количеством скриптов немного поработать в Google, скрипке, которая:
-I
). Вот моя быстрая попытка:
#! / bin / bash CONNECTION = 1 main () {если ping -q -c 1 -w 1 -I eth0 google.com & gt; / dev / null; затем эхо «Соединение в порядке!» если [$ CONNECTION -eq 0]; затем # взять 3g-соединение вниз ifconfig 3GADAPTERNAME вниз CONNECTION = 1 fi else echo «Соединение мертво! Да здравствует соединение!» если [$ CONNECTION -eq 1]; затем # включить соединение 3g на ifconfig 3GADAPTERNAME вверх ПОДКЛЮЧЕНИЕ = 0 fi fi sleep 5 main} main
Очевидно, замените 3GADAPTERNAME
на имя вашего адаптера. выключите eth0
, если ваше основное соединение отличается. Убедитесь, что он настроен на автоматическое соединение (поэтому, когда это разрешено, он делает). Сценарий должен работать от имени root.