рЕТЕД ОБЮБМПН ОБУФТПКЛЙ PPP ОБ ЧБЫЕН ЛПНРШАФЕТЕ, ХВЕДЙФЕУШ, ЮФП pppd ОБИПДЙФУС Ч /usr/sbin Й ЛБФБМПЗ /etc/ppp УХЭЕУФЧХЕФ.
pppd НПЦЕФ ТБВПФБФШ Ч ДЧХИ ТЕЦЙНБИ:
ч ЛБЮЕУФЧЕ ''ЛМЙЕОФБ'' -- ЛПЗДБ ЧЩ ИПФЙФЕ РПДЛМАЮЙФШ ЛПНРШАФЕТ Л ЧОЕЫОЕНХ НЙТХ ЮЕТЕЪ РПУМЕДПЧБФЕМШОПЕ УПЕДЙОЕОЙЕ PPP ЙМЙ НПДЕНОХА МЙОЙА.
ч ЛБЮЕУФЧЕ ''УЕТЧЕТБ'' -- ЛПЗДБ ЛПНРШАФЕТ РПДЛМАЮЕО Л УЕФЙ Й ЙУРПМШЪХЕФУС ДМС РПДЛМАЮЕОЙС ДТХЗЙИ ЛПНРШАФЕТПЧ ЮЕТЕЪ PPP.
ч ПВЕЙИ УМХЮБСИ ЧБН РПФТЕВХЕФУС ОБУФТПЙФШ ЖБКМ РБТБНЕФТПЧ (/etc/ppp/options ЙМЙ ~/.ppprc ЕУМЙ ОБ ЧБЫЕН ЛПНРШАФЕТЕ ВПМЕЕ ПДОПЗП РПМШЪПЧБФЕМС ТБВПФБАФ У PPP).
чБН РПФТЕВХЕФУС ФБЛЦЕ РТПЗТБННБ ДМС НПДЕНОЩИ/РПУМЕДПЧБФЕМШОЩИ МЙОЙК (РТЕДРПЮФЙФЕМШОП comms/kermit) ДМС ДПЪЧПОБ Й ХУФБОПЧЛЙ УПЕДЙОЕОЙС У ХДБМЕООЩН ИПУФПН.
дМС РПДЛМАЮЕОЙС Л МЙОЙЙ PPP ФЕТНЙОБМШОПЗП УЕТЧЕТБ Cisco НПЦЕФ ЙУРПМШЪПЧБФШУС УМЕДХАЭЙК ЖБКМ /etc/ppp/options.
crtscts # enable hardware flow control modem # modem control line noipdefault # remote PPP server must supply your IP address # if the remote host does not send your IP during IPCP # negotiation, remove this option passive # wait for LCP packets domain ppp.foo.com # put your domain name here :<remote_ip> # put the IP of remote PPP host here # it will be used to route packets via PPP link # if you didn't specified the noipdefault option # change this line to <local_ip>:<remote_ip> defaultroute # put this if you want that PPP server will be your # default router
дМС РПДЛМАЮЕОЙС:
дПЪЧПОЙФЕУШ ОБ ХДБМЕООЩК ИПУФ, ЙУРПМШЪХС kermit (ЙМЙ МАВХА ДТХЗХА НПДЕНОХА РТПЗТБННХ), Й ЧЧЕДЙФЕ ЧБЫЕ ЙНС РПМШЪПЧБФЕМС Й РБТПМШ (ЙМЙ ФЕ ДБООЩЕ, ЛПФПТЩЕ ФТЕВХАФУС ДМС ХУФБОПЧМЕОЙС PPP УПЕДЙОЕОЙС У ХДБМЕООЩН ИПУФПН).
чЩКДЙФЕ ЙЪ kermit (ВЕЪ ПВТЩЧБ УПЕДЙОЕОЙС).
чЧЕДЙФЕ УМЕДХАЭЕЕ:
# /usr/src/usr.sbin/pppd.new/pppd /dev/tty01 19200
хВЕДЙФЕУШ, ЮФП ЧЩВТБОЩ РПДИПДСЭБС УЛПТПУФШ Й РТБЧЙМШОПЕ ЙНС ХУФТПКУФЧБ.
фЕРЕТШ ЧБЫ ЛПНРШАФЕТ РПДЛМАЮЕО РП PPP. еУМЙ УПЕДЙОЕОЙЕ ОЕ УПУФПСМПУШ, ЧЩ НПЦЕФЕ
ДПВБЧЙФШ РБТБНЕФТ debug
Л ЖБКМХ /etc/ppp/options, Й ПФУМЕДЙФШ РТПВМЕНХ РП УППВЭЕОЙСН ОБ
ЛПОУПМЙ.
уМЕДХАЭЙК УЛТЙРФ /etc/ppp/pppup РТПЧЕДЕФ ЧУЕ 3 УФБДЙЙ Ч БЧФПНБФЙЮЕУЛПН ТЕЦЙНЕ:
#!/bin/sh ps ax |grep pppd |grep -v grep pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'` if [ "X${pid}" != "X" ] ; then echo 'killing pppd, PID=' ${pid} kill ${pid} fi ps ax |grep kermit |grep -v grep pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'` if [ "X${pid}" != "X" ] ; then echo 'killing kermit, PID=' ${pid} kill -9 ${pid} fi ifconfig ppp0 down ifconfig ppp0 delete kermit -y /etc/ppp/kermit.dial pppd /dev/tty01 19200
/etc/ppp/kermit.dial ЬФП УЛТЙРФ kermit, ЛПФПТЩК ДПЪЧБОЙЧБЕФУС ДП ХДБМЕООПЗП ИПУФБ Й РТПИПДЙФ ОЕПВИПДЙНХА БЧФПТЙЪБГЙА (РТЙНЕТ ФБЛПЗП УЛТЙРФБ ОБИПДЙФУС Ч ЛПОГЕ ЬФПЗП ТБЪДЕМБ).
йУРПМШЪХКФЕ УМЕДХАЭЙК УЛТЙРФ /etc/ppp/pppdown ДМС ПФЛМАЮЕОЙС ПФ PPP МЙОЙЙ:
#!/bin/sh pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'` if [ X${pid} != "X" ] ; then echo 'killing pppd, PID=' ${pid} kill -TERM ${pid} fi ps ax |grep kermit |grep -v grep pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'` if [ "X${pid}" != "X" ] ; then echo 'killing kermit, PID=' ${pid} kill -9 ${pid} fi /sbin/ifconfig ppp0 down /sbin/ifconfig ppp0 delete kermit -y /etc/ppp/kermit.hup /etc/ppp/ppptest
рТПЧЕТШФЕ, ЪБРХЭЕО МЙ ЕЭЕ pppd, ЧЩРПМОЙЧ /usr/etc/ppp/ppptest, ЛПФПТЩК ЧЩЗМСДЙФ РТЙНЕТОП ФБЛ:
#!/bin/sh pid=`ps ax| grep pppd |grep -v grep|awk '{print $1;}'` if [ X${pid} != "X" ] ; then echo 'pppd running: PID=' ${pid-NONE} else echo 'No pppd running.' fi set -x netstat -n -I ppp0 ifconfig ppp0
дМС ПВТЩЧБ УПЕДЙОЕОЙС, ЧЩРПМОЙФЕ /etc/ppp/kermit.hup, ЛПФПТЩК ДПМЦЕО УПДЕТЦБФШ:
set line /dev/tty01 ; put your modem device here set speed 19200 set file type binary set file names literal set win 8 set rec pack 1024 set send pack 1024 set block 3 set term bytesize 8 set command bytesize 8 set flow none pau 1 out +++ inp 5 OK out ATH0\13 echo \13 exit
уХЭЕУФЧХЕФ БМШФЕТОБФЙЧОЩК НЕФПД, ЙУРПМШЪХАЭЙК chat ЧНЕУФП kermit:
дМС ХУФБОПЧМЕОЙС УПЕДЙОЕОЙС pppdДПУФБФПЮОП ДЧХИ ЖБКМПЧ.
/etc/ppp/options:
/dev/cuaa1 115200 crtscts # enable hardware flow control modem # modem control line connect "/usr/bin/chat -f /etc/ppp/login.chat.script" noipdefault # remote PPP serve must supply your IP address # if the remote host doesn't send your IP during # IPCP negotiation, remove this option passive # wait for LCP packets domain <your.domain> # put your domain name here : # put the IP of remote PPP host here # it will be used to route packets via PPP link # if you didn't specified the noipdefault option # change this line to <local_ip>:<remote_ip> defaultroute # put this if you want that PPP server will be # your default router
/etc/ppp/login.chat.script:
ъБНЕЮБОЙЕ: чУЕ ЬФП НПЦЕФ ВЩФШ ТБУРПМПЦЕОП ОБ ПДОПК УФТПЛЕ.
ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDT<phone.number> CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: <login-id> TIMEOUT 5 sword: <password>
лБЛ ФПМШЛП ЬФЙ ЖБКМЩ ВХДХФ УПЪДБОЩ Й ПФТЕДБЛФЙТПЧБОЩ, ОЕПВИПДЙНП ФПМШЛП ЪБРХУФЙФШ pppd, ЧПФ ФБЛ:
# pppd
/etc/ppp/options ДПМЦЕО УПДЕТЦБФШ РТЙНЕТОП УМЕДХАЭЕЕ:
crtscts # Hardware flow control netmask 255.255.255.0 # netmask (not required) 192.114.208.20:192.114.208.165 # IP's of local and remote hosts # local ip must be different from one # you assigned to the Ethernet (or other) # interface on your machine. # remote IP is IP address that will be # assigned to the remote machine domain ppp.foo.com # your domain passive # wait for LCP modem # modem line
уМЕДХАЭЙК УЛТЙРФ /etc/ppp/pppserv ХЛБЦЕФ pppd ТБВПФБФШ Ч ЛБЮЕУФЧЕ УЕТЧЕТБ:
#!/bin/sh ps ax |grep pppd |grep -v grep pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'` if [ "X${pid}" != "X" ] ; then echo 'killing pppd, PID=' ${pid} kill ${pid} fi ps ax |grep kermit |grep -v grep pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'` if [ "X${pid}" != "X" ] ; then echo 'killing kermit, PID=' ${pid} kill -9 ${pid} fi # reset ppp interface ifconfig ppp0 down ifconfig ppp0 delete # enable autoanswer mode kermit -y /etc/ppp/kermit.ans # run ppp pppd /dev/tty01 19200
йУРПМШЪХКФЕ ЬФПФ УЛТЙРФ /etc/ppp/pppservdown ДМС ПУФБОПЧЛЙ УЕТЧЕТБ:
#!/bin/sh ps ax |grep pppd |grep -v grep pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'` if [ "X${pid}" != "X" ] ; then echo 'killing pppd, PID=' ${pid} kill ${pid} fi ps ax |grep kermit |grep -v grep pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'` if [ "X${pid}" != "X" ] ; then echo 'killing kermit, PID=' ${pid} kill -9 ${pid} fi ifconfig ppp0 down ifconfig ppp0 delete kermit -y /etc/ppp/kermit.noans
уМЕДХАЭЙК kermit УЛТЙРФ (/etc/ppp/kermit.ans) ЧЛМАЮЙФ/ПФЛМАЮЙФ ТЕЦЙН ПФЧЕФБ НПДЕНБ ОБ ЧИПДСЭЙЕ ЪЧПОЛЙ. пО ДПМЦЕО ЧЩЗМСДЕФШ РТЙНЕТОП ФБЛ:
set line /dev/tty01 set speed 19200 set file type binary set file names literal set win 8 set rec pack 1024 set send pack 1024 set block 3 set term bytesize 8 set command bytesize 8 set flow none pau 1 out +++ inp 5 OK out ATH0\13 inp 5 OK echo \13 out ATS0=1\13 ; change this to out ATS0=0\13 if you want to disable ; autoanswer mode inp 5 OK echo \13 exit
уЛТЙРФ, ОБЪЩЧБАЭЙКУС /etc/ppp/kermit.dial, ЙУРПМШЪХЕФУС ДМС ДПЪЧПОБ Й БХФЕОФЙЖЙЛБГЙЙ ОБ ХДБМЕООПН ИПУФЕ. чБН РПФТЕВХЕФУС РТЙУРПУПВЙФШ ЕЗП РПД УПВУФЧЕООЩЕ ОХЦДЩ. рПНЕУФЙФЕ ЧБЫ МПЗЙО Й РБТПМШ Ч ЬФПФ УЛТЙРФ; ЧБН ФБЛЦЕ РПФТЕВХЕФУС ЙЪНЕОЙФШ ПРЕТБФПТЩ input Ч ЪБЧЙУЙНПУФЙ ПФ ПФЧЕФПЧ ПФ НПДЕНБ Й ХДБМЕООПЗП ИПУФБ.
; ; put the com line attached to the modem here: ; set line /dev/tty01 ; ; put the modem speed here: ; set speed 19200 set file type binary ; full 8 bit file xfer set file names literal set win 8 set rec pack 1024 set send pack 1024 set block 3 set term bytesize 8 set command bytesize 8 set flow none set modem hayes set dial hangup off set carrier auto ; Then SET CARRIER if necessary, set dial display on ; Then SET DIAL if necessary, set input echo on set input timeout proceed set input case ignore def \%x 0 ; login prompt counter goto slhup :slcmd ; put the modem in command mode echo Put the modem in command mode. clear ; Clear unread characters from input buffer pause 1 output +++ ; hayes escape sequence input 1 OK\13\10 ; wait for OK if success goto slhup output \13 pause 1 output at\13 input 1 OK\13\10 if fail goto slcmd ; if modem doesn't answer OK, try again :slhup ; hang up the phone clear ; Clear unread characters from input buffer pause 1 echo Hanging up the phone. output ath0\13 ; hayes command for on hook input 2 OK\13\10 if fail goto slcmd ; if no OK answer, put modem in command mode :sldial ; dial the number pause 1 echo Dialing. output atdt9,550311\13\10 ; put phone number here assign \%x 0 ; zero the time counter :look clear ; Clear unread characters from input buffer increment \%x ; Count the seconds input 1 {CONNECT } if success goto sllogin reinput 1 {NO CARRIER\13\10} if success goto sldial reinput 1 {NO DIALTONE\13\10} if success goto slnodial reinput 1 {\255} if success goto slhup reinput 1 {\127} if success goto slhup if < \%x 60 goto look else goto slhup :sllogin ; login assign \%x 0 ; zero the time counter pause 1 echo Looking for login prompt. :slloop increment \%x ; Count the seconds clear ; Clear unread characters from input buffer output \13 ; ; put your expected login prompt here: ; input 1 {Username: } if success goto sluid reinput 1 {\255} if success goto slhup reinput 1 {\127} if success goto slhup if < \%x 10 goto slloop ; try 10 times to get a login prompt else goto slhup ; hang up and start again if 10 failures :sluid ; ; put your userid here: ; output ppp-login\13 input 1 {Password: } ; ; put your password here: ; output ppp-password\13 input 1 {Entering SLIP mode.} echo quit :slnodial echo \7No dialtone. Check the telephone line!\7 exit 1 ; local variables: ; mode: csh ; comment-start: "; " ; comment-start-skip: "; " ; end:
рТЕД. | оБЮБМП | уМЕД. |
PPP ХТПЧОС РПМШЪПЧБФЕМС | хТПЧЕОШ ЧЩЫЕ | тЕЫЕОЙЕ РТПВМЕН У УПЕДЙОЕОЙСНЙ PPP |
ьФПФ, Й ДТХЗЙЕ ДПЛХНЕОФЩ, НПЗХФ ВЩФШ УЛБЮБОЩ У ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
рП ЧПРТПУБН, УЧСЪБООЩН У FreeBSD, РТПЮЙФБКФЕ ДПЛХНЕОФБГЙА РТЕЦДЕ ЮЕН РЙУБФШ Ч <questions@FreeBSD.org>.
рП ЧПРТПУБН, УЧСЪБООЩН У ЬФПК ДПЛХНЕОФБГЙЕК, РЙЫЙФЕ <doc@FreeBSD.org>.
рП ЧПРТПУБН, УЧСЪБООЩН У ТХУУЛЙН РЕТЕЧПДПН ДПЛХНЕОФБГЙЙ, РЙЫЙФЕ Ч ТБУУЩМЛХ <frdp@FreeBSD.org.ua>.
йОЖПТНБГЙС РП РПДРЙУЛЕ ОБ ЬФХ ТБУУЩМЛХ ОБИПДЙФУС ОБ УБКФЕ РТПЕЛФБ РЕТЕЧПДБ.