





Автоматическое Создание 2Ух Pppoe Подключений В Ubuntu/debian
linux domolink
#!/usr/bin/env python # -*- coding: utf-8 -*- # # crecons.py v 0.3 # # Copyright 2010 Phoen <phoenmaster@gmail.com> # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. import os intname = raw_input ('Введите название интерфейса вашей сетевой карты (если eth0 - оставьте это поле пустым и нажмите enter):') if intname == '': intx ='eth0' else: intx = intname iuser = raw_input('Введите имя пользователя для подключения к интернету:') ipass = raw_input('Введите пароль для подключения к интернету:') luser = raw_input('Введите имя пользователя для подключения к локальной сети (с префиксом /local):') lpass = raw_input('Введите пароль для подключения к локальной сети:') conf = {"a":intx, "b":iuser, "c":ipass, "d":luser, "e":lpass} with open('/etc/ppp/peers/inet-dsl', 'w') as connection1: connection1.write("""pty "/usr/sbin/pppoe -I %(a)s -T 80 -s -m 1452 -C BRAS -U" noipdefault defaultroute replacedefaultroute hide-password lcp-echo-interval 20 lcp-echo-failure 3 persist noauth maxfail 0 usepeerdns plugin rp-pppoe.so %(a)s user "%(b)s" unit 1 """ % conf) connection1.close with open('/etc/ppp/peers/local-dsl', 'w') as connection2: connection2.write("""pty "/usr/sbin/pppoe -I %(a)s -T 80 -s -m 1452 -C BRAS -U" noipdefault nodefaultroute noreplacedefaultroute hide-password lcp-echo-interval 20 lcp-echo-failure 3 maxfail 0 persist noauth plugin rp-pppoe.so %(a)s user "%(d)s" unit 2 """ % conf) connection2.close with open('/etc/ppp/pap-secrets', 'a') as logpass: logpass.write('%(b)s\t*\t%(c)s\n%(d)s\t*\t%(e)s\n' % conf) logpass.close with open('/etc/network/interfaces', 'a') as interfaces: interfaces.write(""" auto local-dsl iface local-dsl inet ppp pre-up /sbin/ifconfig %(a)s up provider local-dsl post-up ip route add 10.152.0.0/16 dev $IFACE pre-down ip route del 10.152.0.0/16 dev $IFACE """ % conf) interfaces.close dnsw = open('/etc/dhcp3/dhclient.conf', 'a') dnsw.write('supersede domain-name-servers 10.152.203.3, 10.152.195.95;') dnsw.close pon = raw_input('Подключиться сейчас?(yes/no):') if pon == 'yes': os.system('pon inet-dsl && pon local-dsl && route add -net 10.152.0.0 netmask 255.255.0.0 dev ppp2 && plog')
Сохраняем скрипт в любую папку, делаем
chmod +x scriptname.py
и запускаем от root'а:
sudo ./scriptname.py.
Поидее все должно работать, однако попробовать было не на чем.
По сравнению с предыдущей версией
-Скрипт переведен с тарабарского наречия питона, на нечто похожее на общепринятый =)
-Появилась возможность указать интерфейс сетевой карты (по умолчанию eth0)
В планах добавить вывод доступных в системе сетевых адаптеров и сделать опциональное добавление подключений в автозагрузку.
ps Для работы скрипта необходим установленный пакет pppoe.
pps При повторном запуске скрипта файлы подключений inet-dsl и local-dsl переписываются автоматически, а interfaces, pap-secrets и dhclient.conf необходимо будет отредактировать вручную (новые параметры добавляются в конец файла).