Linux mini-HOWTO

         

Связь и коммуникации при помощи pppd и chat


Вероятно, наиболее простой способ - это написать скрипт в домашнем каталоге root-а и назвать его ppp-connect, и включать его тогда, когда вам нужно соединение. Обсудим этот метод.

Откройте ваш любимый текстовый редактор, на правах root, и создайте файл ppp-connect. Далее надо определиться по вашим параметрам.

pppd connect 'chat -v "" "строка_инициализации" "" ATDTтелефонный_номер CONNECT "" ogin: учетное_имя word: пароль' /dev/tty(0/1/2) скорость modem

pppd запускает /usr/sbin/pppd в моей системе, затем загружает chat для дозвона. Chat посылает строку_инициализации

модему, затем набирает номер телефонный_номер. Затем он ожидает от модема ответа CONNECT, и ждет фразы ogin: (буква l убрана, так как первый символ может быть потерян или может быть буквой L), посылает учетное_имя, ожидает word: и посылает your_passwd. После этого chat прекращает работу, и передает управление pppd.

Последняя часть команды определяет порт модема (у меня /dev/ttyS1). В большинстве случаев это будет ttyS1 (COM2: в DOS-е), ttyS0 (COM1: в DOS-е); или, если вы используете Slackware, cua1 или cua0. (Примечание переводчика: в последних поставках Linux появилось устройство /dev/modem, которое является символьной ссылкой (symbolic link) на соответствующее устройство. Просто настройте эту ссылку на нужное устройство и все.). Скорость - это скорость модема. Я использую 115200 (скорость моего модема - 33600). Если у вас достаточно новый компьютер (с микросхемой UART 16550), то я бы не делал скорость ниже 57600. Иначе для 14400-модема, используйте 38400. Слово "modem" просто сообщает, что это соединение с использованием последовательного порта и модема. Уберите флаг -v, если вы не хотите получать подробных записей в ваших журналах.

Сценарий, приведенный ниже, написан специально для тех, кто дозванивается до провайдера, и тот автоматически запускает PPP, т.е. для тех, у кого не запускается командная оболочка (shell). Вот содержимое их /ppp-connect:

pppd connect 'chat "" "ATZ" "" ATDT555-1800 CONNECT "" ogin: johnny word: blackjak' /dev/ttyS1 115200 modem

Но у некоторых, у кого ISP запускает оболочку и автоматически не запускает PPP, могут возникнуть проблемы. К счастью, chat может справиться и с этим. Просто надо добавить еще пару команд в ваш chat-скрипт. Ниже приведен пример, где провайдер пользователя "johnny" просто запускает для него оболочку (shell), и от "johnny" требуется набрать ppp для установления ppp-соединения. Его приглашение оболочки (shell prompt) заканчивается символом $.

pppd connect 'chat "" "ATZ" "" ATDT555-1800 CONNECT "" ogin: johnny word: blackjak $ ppp' /dev/ttyS1 115200 modem

Если у вас больше одного слова в одной фразе посылки, не забудьте заключить его в двойные кавычки. Я надеюсь, вы уловили суть всего вышесказанного и сможете сами написать свой скрипт для своего соединения. Просто исправьте первый или второй johnny-скрипт по вашим настройкам (порт, сервер и т.п.) и запишите файл.

Теперь, когда вы создали свой файл, убедитесь, что только root может исполнять, читать этот файл или писать в него. Это очень важно. Также убедитесь в том, чтобы никто не смог прочитать ваши журналы (log files), если вы решили оставить опцию -v, так как, в этом случае, в журналы попадет ваш пароль. (Я не вижу особой нужды в -v, если вы не знаете, о чем я, то уберите -v).



Содержание раздела