Скрипт для подключения VPN (взято с forum.ubuntu.ru)

Модераторы: _e2L, Злой Засранец

Сообщение ikambi » 02 июн 2009 22:44

Я думаю он в состоянии прочесть тему и выложить это все если сочтет нужным :)
А за благодарность спасибо :D, даже приятно. Для удобство можно было и иконку подключения/отключения на рабочий стол поместить, но не смог найти как определить путь к нему, ведь сама папка может быть переименована. Заморочка в том что бы найти переменную где этот путь храниться... Но это отдельный разговор. А для тех у кого безлимитный тарифный план могу посоветовать прописать команду подключения "pon qwerty" в /etc/rc.local для подключения при загрузке.
Аватара пользователя
ikambi
На борту
На борту
 
Сообщения: 206
Зарегистрирован:
17 сен 2008 17:07

Сообщение EraserHead » 02 июн 2009 23:24

Да,теперь,здорово это всё хозяйство поджнимать при старте ОС.
ЗЫ.Даже на Лайв-сиди,всё завелось с пол-оборота! :) Хотел с него же и написать,но русской локали не было-пришлось инсталить.
Точно в ФАК нужно!
Cthulhu's coming...
"-Ктулху-фхтагн?!"
"-Воистину,фхтагн!"

Моё предложение к Lucky SB, о покупке у него, 700-750 гр, его мозгов, по его цене - постоянно в силе.
Аватара пользователя
EraserHead
Пассажир
Пассажир
 
Сообщения: 359
Зарегистрирован:
07 янв 2008 15:40
Откуда: Северный р-н

Сообщение Злой Засранец » 03 июн 2009 10:16

Скрипт супер. Но не могу удержаться от критики :oops:

куски
Код: Выделить всё
printf "Настроить локальную сеть? (y/n) "; read lvs_check
if [ "$lvs_check"="y" ]; then
echo "Копируются файлы конфигурации"
echo "/etc/network/interfaces -> /etc/network/interfaces.old"
cp /etc/network/interfaces /etc/network/interfaces.old
echo "auto lo" > /etc/network/interfaces
echo "iface lo inet loopback" >> /etc/network/interfaces
echo "" >> /etc/network/interfaces
echo "auto eth0" >> /etc/network/interfaces
echo "iface eth0 inet static" >> /etc/network/interfaces
echo "   address $vpn_ip" >> /etc/network/interfaces
echo "   netmask $vpn_mask" >> /etc/network/interfaces
echo "   gateway $vpn_gateway" >> /etc/network/interfaces
echo "nameserver $vpn_dns1" > /etc/resolv.conf
echo "nameserver $vpn_dns2" >> /etc/resolv.conf
echo ""
sleep 2
echo "OK"

и
Код: Выделить всё
echo "$vpn_login PPTP $vpn_password *" > $ppp/chap-secrets

Может быть есть способ чтения файла и его редактирования, а не добавления каждый раз новой строки.
Проблема в том, что повторное выполнение скрипта будет приводить к замусориванию системы.

Прям стыдно :) сказать - сказал, а как исправить мыслей нет...
Последний раз редактировалось Злой Засранец 03 июн 2009 10:18, всего редактировалось 1 раз.
Здесь могла бы быть ваша реклама...
Аватара пользователя
Злой Засранец
Штурман
Штурман
 
Сообщения: 864
Зарегистрирован:
17 окт 2007 08:19
Откуда: из той же оперы...

Сообщение dmn » 03 июн 2009 10:18

Злой Засранец sed
Аватара пользователя
dmn
На борту
На борту
 
Сообщения: 137
Зарегистрирован:
25 мар 2008 13:50

Сообщение Злой Засранец » 03 июн 2009 10:22

dmn
То, что нужно. Спасибо.
http://ru.wikipedia.org/wiki/Sed
Здесь могла бы быть ваша реклама...
Аватара пользователя
Злой Засранец
Штурман
Штурман
 
Сообщения: 864
Зарегистрирован:
17 окт 2007 08:19
Откуда: из той же оперы...

Сообщение ikambi » 03 июн 2009 10:30

Проблема в том, что повторное выполнение скрипта будет приводить к замусориванию системы.
Засорять ничего не будет, фалы будут "заменяться" если они есть, а точнее будут очищаться и заново вноситься изменения.

Можно конечно было и готовые файлы копировать,но это привело бы уже к большему количеству файлов в скрипте,что увеличило бы неудобство. Если есть какие то мнения и предложения, пишите, если будет время и силы то постараюсь внести :)
Аватара пользователя
ikambi
На борту
На борту
 
Сообщения: 206
Зарегистрирован:
17 сен 2008 17:07

Сообщение dmn » 03 июн 2009 10:44

Ну во-первых - deb, как я уже говорил, для сферического Линукса в вакууме это непойдет. Нужно хотя-бы распаковать deb файл(например с помощью mc) и тупо копировать файлы. Надо бы, что-бы старые маршруты удалялись, хотя-бы default, что-бы глюков не было.Ну и неплохо было бы склеить все в один файл.
Аватара пользователя
dmn
На борту
На борту
 
Сообщения: 137
Зарегистрирован:
25 мар 2008 13:50

Сообщение ikambi » 03 июн 2009 11:06

Ну во-первых - deb, как я уже говорил, для сферического Линукса в вакууме это непойдет. Нужно хотя-бы распаковать deb файл(например с помощью mc) и тупо копировать файлы.

А чем deb не утраивает? Это все писалось для *buntu. Зачем все усложнять? Если есть фанаты "исходников", то у них ума хватит самим все настроить и установить. Тем более это все писалось для удобства и простоты.
Надо бы, что-бы старые маршруты удалялись, хотя-бы default, что-бы глюков не было.
А что не так с маршрутами? При поднятии интерфейса eth0 весь трафик идет через шлюз по умолчанию, как и положено, при подключении интерфейса ppp* маршрут default заменятся и трафик идет через ppp* и добавляются еще маршруты к сети 10.0.0.0 к DNS и VPN серверу. При отключении ppp, все возвращается на свои места.
Ну и неплохо было бы склеить все в один файл.

Я так понял это *.run? не знаю как это сделать,искать пока времени нет, сессия...
Аватара пользователя
ikambi
На борту
На борту
 
Сообщения: 206
Зарегистрирован:
17 сен 2008 17:07

Сообщение dmn » 03 июн 2009 14:55

А что не так с маршрутами? При поднятии интерфейса eth0 весь трафик идет через шлюз по умолчанию, как и положено, при подключении интерфейса ppp* маршрут default заменятся и трафик идет через ppp* и добавляются еще маршруты к сети 10.0.0.0 к DNS и VPN серверу. При отключении ppp, все возвращается на свои места.

Я имел в виду, что перед добавлением маршрутов нужно что-то вроде flush сделать.



Я так понял это *.run? не знаю как это сделать,искать пока времени нет, сессия...


Есть разные способы, можно так:

Код: Выделить всё
echo hello>hello && gzip hello


Код: Выделить всё
cat << EOT > hello.r
#!/bin/sh
cat << EOF > hello1.ud
EOT


Код: Выделить всё
cat << EOT > hello.e
uudecode hello1.ud -o hello1.gz
gunzip hello1.gz
EOT


Код: Выделить всё
uuencode --base64 hello.gz hello>hello.uu && cat hello.r hello.uu>hello.rr && echo -e "\nEOF">>hello.rr && cat hello.rr hello.e>hello.run && chmod +x hello.run         
Аватара пользователя
dmn
На борту
На борту
 
Сообщения: 137
Зарегистрирован:
25 мар 2008 13:50

Сообщение suslikk » 03 июн 2009 19:34

ikambi
При разрыве связи?... Скрипт будет держать соединение (reconect)? Очень не хватает этого в network-manager
Аватара пользователя
suslikk
На борту
На борту
 
Сообщения: 127
Зарегистрирован:
01 мар 2008 16:22
Откуда: Voronezh

Сообщение ikambi » 03 июн 2009 21:27

suslikk
Скрипт просто для настройки подключения, для того что бы в ручную не писать настройки и не ковыряться в файлах. Подключаться к интернету уже командой "pon"
Если я правильно понял, то за это отвечает параметр maxfail 0,он будет пытаться подключиться сколько указано раз, 0 - бесконечно, если нужно то могу добавить, просто у меня не было дисконектов...
Аватара пользователя
ikambi
На борту
На борту
 
Сообщения: 206
Зарегистрирован:
17 сен 2008 17:07

Сообщение suslikk » 07 июн 2009 13:52

ikambi
Спасибо за инфу! Попробуемс и отпишемс :) Еще раз спасибо!!!!
Аватара пользователя
suslikk
На борту
На борту
 
Сообщения: 127
Зарегистрирован:
01 мар 2008 16:22
Откуда: Voronezh

Сообщение EraserHead » 21 июн 2009 08:02

Доброго дня всем!
Возник такой вопрос:
Как всё-таки Ъ-способом при использовании этого скрипта поднимать сеть при старте ОС?
Почему спрашиваю?Ставил обычную 9.04,прописывал в
Код: Выделить всё
/etc/network/interfaces
следующее:
Код: Выделить всё
post-up pon is
pre-down poff is
(is-название соединения),и всё отлично работало,и VPN стартовало при загрузке.
Ладно,пришла в голову дурь-снес всё,поставил через некоторое время Mint-нифига не работает!Т.е опять надо
Код: Выделить всё
sudo pon is
,в довершение ко всему.соединение стало тупо рваться через 10-30 мин.И это явно не дисконнект.Где копать?
Cthulhu's coming...
"-Ктулху-фхтагн?!"
"-Воистину,фхтагн!"

Моё предложение к Lucky SB, о покупке у него, 700-750 гр, его мозгов, по его цене - постоянно в силе.
Аватара пользователя
EraserHead
Пассажир
Пассажир
 
Сообщения: 359
Зарегистрирован:
07 янв 2008 15:40
Откуда: Северный р-н

Сообщение ikambi » 21 июн 2009 18:29

EraserHead
Для подключения при загрузке я вписывал команду "pon qwerty" в /etc/rc.local

Почему дисконекты не знаю, у меня нет, но для повторных попыток соединения, впишите параметр "maxfail 0" в файл /etc/ppp/pears/название_соединения. Какой вы исользуете адрес vpn сервера?
А вообще пора переходить на xl2tp, скорость побольше показывает, но разобраться в настройках времени нет пока...
Аватара пользователя
ikambi
На борту
На борту
 
Сообщения: 206
Зарегистрирован:
17 сен 2008 17:07

Сообщение EraserHead » 21 июн 2009 18:53

ikambi,какой вид должен тогда при этом иметь /etc/rc.local ?
В скриптописании,и в кодинге вообще-"0".
У меня вот что-то типо этого:
Код: Выделить всё
#!/bin/sh -e
#
# rc.local
# pon is


exit 0


Какой вы исользуете адрес vpn сервера

пока прописал как 192.168.149.1,но не проблема сменить на pptp.freedom
Cthulhu's coming...
"-Ктулху-фхтагн?!"
"-Воистину,фхтагн!"

Моё предложение к Lucky SB, о покупке у него, 700-750 гр, его мозгов, по его цене - постоянно в силе.
Аватара пользователя
EraserHead
Пассажир
Пассажир
 
Сообщения: 359
Зарегистрирован:
07 янв 2008 15:40
Откуда: Северный р-н

Пред.След.

Вернуться в Linux семейство

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1