Skrypt u

Potrzebujesz pomocy z C, C++, perl, python, itp.
stoper
Beginner
Posty: 113
Rejestracja: 14 stycznia 2007, 15:11
Lokalizacja: Podkarpacie

Skrypt ułatwiający dostęp do internetu

Post autor: stoper »

Witam.
Mam problem z dostępem do internetu, który pokrótce opiszę.

Posiadam dostęp do internetu przez łącze ethernet po kablu w sieci osiedlowej. Wszystko jest w porządku, jeżeli używam jednego systemu np. Debiana.
Posiadam dwie wady: lubię eksperymentować i lubię mieć więcej dystrybucji linuksowych, również sporadycznie, według potrzeb Windows.
I tu zaczyna się problem ze zmianą systemów i swoisty błogostan zostaje zakłócony. Po zrestartowaniu muszę oczekiwać na automatyczne przydzielenie dzierżawy - w moim przypadku około 60 minut czyli do odświeżenia serwera. Owszem, ręczne ustawienie eth0 (wpisanie adresów, DNS-ów itd.) pozwala na wymuszenie połączenia z internetem. Jest to jednak kłopotliwe i trochę irytujące.
Co ciekawe, przy zmianie systemów z rodziny Debiana i np. Archa, OpenSuse nie powoduje problemu z połączeniem. Natomiast przejście na np. Slackware z rodziną lub Windowsa już sprawia, iż ponowne przejście na np. Debiana nie uzyskuje dzierżawy serwera.
Podobne wątki zdarzały się na Forum, lecz dotąd nie znalazłem łopatologicznej procedury takiego skonfigurowania łącza (o ile taka istnieje) aby zlikwidować opisywane niedogodności.
W sieci i na innych forach jakoś nie znalazłem rozwiązania, które by mnie satysfakcjonowało.
Rozmowy z Administratorem sieci nic nie dawały, a ten trochę się dziwił i nie mógł zrozumieć po co mi tyle systemów, jak mogę mieć jeden np. Windows.
No cóż, z gustami nie powinien dyskutować, a ,,choroba'' eksperymentatorska i niewątpliwa przyjemność w uzyskiwaniu różnych ,,smaczków'' w różnych dystrybucjach przeważa nad logiką.

Kocham Linuksa - nic na to nie poradzę ;-)

Jeżeli ktoś z Was mógłby w ramach relaksu i wolnego czasu coś podpowiedzieć, byłbym wdzięczny.

Pozdrawiam.
Awatar użytkownika
ilin
Senior Member
Posty: 2292
Rejestracja: 26 sierpnia 2007, 11:54
Lokalizacja: PRLu

Post autor: ilin »

Kod: Zaznacz cały

Owszem, ręczne ustawienie eth0 (wpisanie adresów, DNS-ów itd) pozwala na wymuszenie połączenia z internetem. Jest to jednak kłopotliwe i trochę irytujące.
Nie możesz sobie napisać skryptu który to wszystko zrobi za jednym jego odpaleniem ?
stoper
Beginner
Posty: 113
Rejestracja: 14 stycznia 2007, 15:11
Lokalizacja: Podkarpacie

Post autor: stoper »

Super, ale dla mnie pisanie skryptów to problem. Może mógłbym poprosić o gotowca? :-D żeby to działało.

Pozdrawiam
Awatar użytkownika
ilin
Senior Member
Posty: 2292
Rejestracja: 26 sierpnia 2007, 11:54
Lokalizacja: PRLu

Post autor: ilin »

A co i gdzie musisz w debianie wpisać aby wymusić połaczenie ?
stoper
Beginner
Posty: 113
Rejestracja: 14 stycznia 2007, 15:11
Lokalizacja: Podkarpacie

Post autor: stoper »

Od czasu do czasu, ale prosty skrypt, to mi się zdarzył. Spróbuję po południu, po powrocie do domu coś wymyślić. Ewentualnie się "pochwalę", jeżeli będzie działać. Póki co dziękuję pięknie ilin za podpowiedź.

Pozdrawiam
Awatar użytkownika
ilin
Senior Member
Posty: 2292
Rejestracja: 26 sierpnia 2007, 11:54
Lokalizacja: PRLu

Post autor: ilin »

Do samych dnsów wystarczyłoby:

Kod: Zaznacz cały

#!/bin/sh
echo nameserver XXX.XXX.XX.XXX > /etc/resolv.conf
Nie znam parametrów Twojej sieci aby coś więcej powiedzieć.
Awatar użytkownika
lee
Posty: 23
Rejestracja: 03 marca 2007, 16:03

Post autor: lee »

Hey, pisałem coś takiego dawno temu, może pomoże.

Kod: Zaznacz cały

#!/bin/bash

case "$1" in
siec1)
        sudo ifconfig eth1 inet 192.168.2.3/24
        sudo route add default gw 192.168.2.200
        echo "nameserver 192.168.2.10" >> /etc/resolv.conf
        ;;
siec2)
        sudo ifconfig eth1 down
        sudo ifconfig eth1 hw ether xx:xx:xx:xx:xx:xx
        sudo ifconfig eth1 inet xxx.xxx.xxx.xxx/24
        sudo route add default gw xxx.xxx.xxx.xxx
        echo "nameserver xxx.xxx.xxx.xxx" >> /etc/resolv.conf
        echo "nameserver xxx.xxx.xxx.xxx" >> /etc/resolv.conf
        sudo ifconfig eth1 up
        ;;
eth1:1)
        sudo ifconfig eth1:1 inet 192.168.1.3/24
        ;;
*)
        echo "Usage: ~/scripts/networking {siec1|siec2|eth1:1}"
        exit 1
        ;;
esac
do poprawnego działania konieczne skonfigurowanie SUDO, najlepiej tak aby z poziomu zwykłego użytkownika nie pytało o hasło przy wywołaniu.
Skrypt wywołujesz np. tak:

Kod: Zaznacz cały

 /katalog/dostepu/do/skryptu/nazwaskryptu siec2 
w tym przypadku zostanie wywołana konfiguracja odnosząca się do parametru siec2.
Oczywistym faktem jest zmiana adresów ip, dns i nazwy interfejsu eth.

pozdrawiam
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2324
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

Propozycja dla kolegi stoper: idź na łatwiznę - kup sobie router i uruchom na nim dhcp.
Problem rozwiąże się sam, bo on będzie trzymał ciągłą sesję z siecią osiedlową, a Ty będziesz mógł sobie robić co chcesz za nim.
A co do skryptu to wystarczy Ci w zupełności to co podał kolega lee, tylko uważaj jak będziesz wpisywał swój adres IP na maskę podsieci, bo u niego jest 24, ale Ty możesz mieć coś całkiem innego a mogłeś na to nie zwrócić uwagi.
giaur
Member
Posty: 1915
Rejestracja: 25 maja 2007, 22:16

Post autor: giaur »

stoper pisze:Owszem, ręczne ustawienie eth0 (wpisanie adresów, DNS-ów itd.) pozwala na wymuszenie połączenia z internetem. Jest to jednak kłopotliwe i trochę irytujące.
A możesz jaśniej? Czy ktoś cie zmusza do korzystania z dhcp? Jeżeli adres ip dostajesz zawsze ten sam to nie musisz z dhcp przeciez korzystac.
ilin pisze:Nie możesz sobie napisać skryptu który to wszystko zrobi za jednym jego odpaleniem ?
Ale po co? Do tego jest ifup i /etc/network/interfaces (lub analogiczne z innych dystrybucji) albo jak ktos lubi klikac to wicd i inne podobne. Nie widze powodu po co wynajdowac koło na nowo.
ilin pisze: Do samych dnsów wystarczyło by ...
Nie. Dhcp to nadpisze.
Awatar użytkownika
ilin
Senior Member
Posty: 2292
Rejestracja: 26 sierpnia 2007, 11:54
Lokalizacja: PRLu

Post autor: ilin »

Ale po co? Do tego jest ifup i /etc/network/interfaces (lub analogiczne z innych dystrybucji)
Gdyby to działało nie było by tego postu.
Nie. Dhcp to nadpisze.
To byl tylko przykład.

Jeśli się postaramy to nie nadpisze.

Przede wszystkim nie znamy specyfiki tej sieci aby gotowe rozwiązania podawać.
Podajemy przykłady poszczególnych operacji a sam zainteresowany musi je złożyć w całość i dostosować do własnej sytuacji.
ODPOWIEDZ