Warning: Missing argument 2 for artykul(), called in /homez.143/epubzmnd/linuxpub/old/lib/druk.php on line 22 and defined in /homez.143/epubzmnd/linuxpub/old/lib/artykul.php on line 8
LinuxPub : Połączenie modemowe : Dokumentacja, Wiadomości, Pomoc, Forum, Howto, Manual, Bezpieczeństwo Fragment strony http://linuxpub.pl/. Wydrukowano:23.05.2012 03:23
Powrót Powrót 
 
Wyślij znajomemu

Podłączenie linuksa do internetu przez linie modemowe
Lucjan Modzel

Trochę na wstęp

Wielu użytkowników linuksa (zwłaszcza tych bardzo początkujących) ma problem z połączeniem się do internetu przez modem (oczywiście sprawa rozchodzi się o numer dostępowy telekomunikacji - 0202122). Zdaję sobie sprawę równocześnie jak dużo jest dostępnych dokumentów na ten temat. Kiedyś sam jednak szukałem rozwiązania tego problemu, jednak dostępnych publikacji nie było ówczas tak dużo jak jest teraz, a te które były nie zawsze działały tak jak trzeba. Jedne straszyły kompilacją jądra, a inne opierały się o konkretne dystrybucje, i jako takie u mnie nie działały. Poświęcając trochę czasu oraz impulsów (za każde nieudane połączenie), problem został rozwiązany.

Czego potrzebuję?

Właściwie wymagań dużych nie ma. Jedyne co jest wymagane to komputer z zainstalowanym linuksem, modem zewnętrzny oraz linia telefoniczna. Komputer preferowany to co najmniej 486DX (na 386SX też się powinniśmy połączyć - ale po co ?). Linux - jakaś nowsza dystrybucja RedHata, Slackware, Debiana czy też Mandrake'a (Nowsza to znaczy powstała nie więcej niż np. 2-3 lata temu( w starszych może wystąpić problematyczna zwykle dla początkujących kompilacja jądra). Modem musi być zewnętrzny (o wewnętrznych kiedyś indziej - chyba ,że ktoś sam potrafi go skonfigurować tak aby był widoczny jako modem dla linuksa).

Ustawienia systemowe

Najważniejsze jest posiadanie programów pppd oraz chat. Sprawdzamy po prostu czy w katalogu /usr/sbin (ewentualnie /usr/bin) istnieją takowe pozycje. Są one dostępne nawet w Debianie Potato instalowanym z dyskietek (bodajże 14-tu) tak, że nie powinno być problemu.
Drugą sprawą jest wyedytowanie pliku /etc/resolv.conf. Oto co powinien on zawierać:
search .
nameserver 194.204.159.1
nameserver 194.204.152.34

Główne skrypty

Teraz musimy stworzyć dwa pliki w katalogu /etc/ppp: onppp oraz chatscript

Zawartość pliku /etc/ppp/chatscript:

ECHO ON
TIMEOUT 5
"" ATZ
OK ATDT0202122
ABORT "NO CARRIER"
ABORT BUSY
ABORT "NO DIALTONE"
ABORT WAITING
TIMEOUT 45
CONNECT ""
TIMEOUT 5
name: ppp
word: ppp

Zawartość pliku /etc/ppp/onppp:

/usr/sbin/pppd connect
'/usr/sbin/chat -v -f /etc/ppp/chatscript'
-detach crtscts modem defaultroute
/dev/ttyS0 115200

Teraz wszystko razem

Ustawiamy teraz plik /etc/ppp/onppp jako wykonywalny a robimy to poleceniem:

chmod +x /etc/ppp/onppp Następnie uruchamiamy go - wpisujemy mianowicie:

/etc/ppp/onppp

Modem powinien się połączyć i po chwili powinniśmy mieć dostęp do internetu. A jak to sprawdzić? - Bardzo prosto - wpisujemy lynx www.linuxpub.w.p i jeśli ukaże się strona oznacza to że jest ok. Prościej jednak chyba będzie "pingnąć" jakiegoś serwera np. ping www.interia.pl - pojawiające się odpowiedzi typu: "reply from ..." będą świadczyły, że nasze połączenie jest już ok, a więc nie traćmy czasu tylko sobie "posurfujmy"!

A teraz kilka słów wyjaśnień

Na początku zmodyfikowaliśmy plik /etc/resolv.conf - służy on do konfiguracji tzw. serwerów dns. Oznacza to dla nas, że nie będziemy wpisywać 102.78.45.32/~strona/ tylko www.strona.pl/~strona/ - na pewno łatwiej zapamiętać. Pierwsza linia oznacza, że najpierw będzie przeszukiwać naszego linuxa w poszukiwaniu adresu IP dla podanego "URL'a"(czyli www.strona.pl/~strona) a dwa następne wpisy to adresy dwóch serwerów DNS telekomunikacji.
Plik /etc/ppp/onppp jest po prostu poleceniem wykonania pppd z długą listą parametrów - jeśli ktoś sobie życzy może wpisywać je za każdym razem.
A teraz co one po kolei oznaczają:
connect '/usr/sbin/chat -v -f /etc/ppp/chatscript': użyj programu wykonywalnego chat do skonfigurowania lini szeregowej, wykrecenia numeru oraz rozpoczęcia zdalnej sesji ppp (man pppd)
-detach:opcja ta daje nam możliwość tego, że po podłączeniu wyświetlane są komunikaty o szybkości połączenia adresy ip: nasz i naszej bramy, poza tym blokowana jest konsola przez co aby zakończyć naciskamy po prostu Control-C i wtedy widzimy czas połączenia i liczbe odebranych i wysłanych bajtów
crtscts: używaj sprzętowego sterowania przepływem
modem: używaj linii sterowania modemem
defaultroute: dodaj domyślną trasę do systemowych linii trasowania - oznacza to, że po uzyskaniu połączenia komputer zdalny, z którym się połączyliśmy będzie traktowany jako nasza domyślna brama do internetu
/dev/ttyS0: modem jest przyłączony do "coma1"
115200: szybkosc lini szeregowej - najczęściej ustawia się ten parametr na podwójną szybkość modemu

Plik /etc/ppp/chatcript jest skryptem, z którego korzysta program chat -- opcja -f oznacza korzystaj ze skryptu). Opcja -v włącza logowanie wszystich tekstów uzyskanych od modemu - co umożliwia wykrywanie przyczyn błędów w połączeniach Skrypt ten jest zestawem gotowych "zapytań i odpowiedzi". Jeśli jedna z nich się nie będzie zgadzać to skrypt przerwie wykonywanie. A to co oznaczają poszczególne opcje:
ECHO ON :pokazywane na ekranie będą wszystkie komunikaty - widzimy co ewentualnie może pójść nie tak. Później możemy (jeśli nie będzie żadnych problemów) przestawić na ECHO OFF
TIMEOUT : po prostu czekaj do 5 sekund
"" ATZ : inicjalizacja modemu (standardowo modem po tym zapytaniu wysyła sygnał OK)
OK ATDT0202122 :jesli modem odpowie OK (co oznacza nie mniej nie więcej jestem gotów) wykręć numer 0202122 - nawiasem mówiąc jeśli wstawimy pomiędzy AT i DT jeszcze opcję M0 to modem będzie bezgłośnie wybierał numer
ABORT "NO CARRIER" : zakończ jeśli nie ma odpowiedzi
ABORT BUSY : zakończ jeśli zajęte
ABORT "NO DIALTONE" : zakończ jeśli nie ma sygnału wybierania
ABORT WAITING : zakończ jeśli brak odpowiedzi w czasie określonym przez TIMEOUT
TIMEOUT 45 : czekaj do 45 sekund
CONNECT "" : czekaj na sygnał CONNECT
TIMEOUT 5 : czekaj do 5 sekund
name: ppp : oczekuj ciągu "name" ( username, Username itd.) i po tym wyślij ppp
word: ppp : oczekuj ciągu "word" ( password, Password itd.) i po tym wyślij ppp


Co poza tym
Według naszych ustawień zawsze jeśli coś pójdzie nie tak możemy przejrzeć plik /var/log/messages, w którym powinniśmy zapisane szczegóły naszej sesji ppp. Jeśli coś dalej będzie nie tak sprawdźmy czy pod tego coma jest podpięty modem ( opcja /dev/ttyS0 - com1 i /dev/ttyS1 - com2 ) itd. Autorowi ta konfiguracja "ruszyła" pod linuksami: RedHat(5.2, 6.0), Mandrake (7.0) Debianem (2.1, 2.2), Suse 6.0, Slackware 3.6.0 oraz non-stop działa pod Slackware 7.1 - teoretycznie problemu nie powinno być tym bardziej, że skrypty były testowane na "domyślnych" instalacjach. Zawsze możemy uznać też, że jest to kolejny nieidealny opis połączenia linuxa z magicznym numerem 0202122. Albo też możemy się niepoddać i po prostu wysłać e-maila do Autora, który z chęcią pomoże, a i przy okazji będzie miał szansę udoskonalenia tego dokumentu. Zdaję sobie sprawę jednocześnie z błędów jakie mogły się tu pojawić - jeśli coś zauważyłeś mail-me oczywiście całość materiału jest potraktowna ogólnikowo - ale szczegóły można znaleźć w dokumentach howto (szczególnie ISP-howto, PPP-howto) oraz w manie systemowym. Stronę stworzono przy pomocy cudownego narzędzia jakim jest mcedit.
Autor: Lucjan Modzel
Strona domowa
Kopiowanie i rozpowszechnianie bardzo wskazane (przy uwzględnieniu praw autorskich, człowieka itd. itp.)

 


Do góry Do góry 
 
Powrót Powrót 
Wyślij znajomemu