23.5. Исходящие соединения по модему
Пред. | Глава 23. Последовательные соединения | След.

## 23.5. Исходящие соединения по модему

Текст, приведенный ниже, это советы, позволяющие настроить ваш хост для доступа к другому компьютеру через модем. Они подходят для установления терминальной сессии с удаленным хостом.

Это подходит для входа на BBS.

Этот вид соединения может очень выручить, если требуется получить файл из интернет и есть проблемы с PPP. Если вам требуется зайти куда-то по FTP, а PPP не работает, используйте терминальную сессию для получения файла по FTP. Затем используйте zmodem для сброса его на свой компьютер.

### 23.5.1. Мой модем Stock Hayes не поддерживается, что я могу сделать?

На самом деле, страница руководства для `tip` устарела. Встроенная поддержка generic Hayes уже есть. Используйте `at=hayes` в файле `/etc/remote`.

Драйвер Hayes не умеет работать с некоторыми расширенными возможностями более новых модемов — сообщения вроде `BUSY`, `NO DIALTONE`, или `CONNECT 115200`. Вы должны отключить эти сообщения при использовании `tip` (с помощью `ATX0&W`).

Таймаут дозвона для `tip` составляет 60 секунд. Ваш модем должен использовать меньшее значение, или `tip` решит, что возникли проблемы со связью. Попробуйте `ATS7=45&W`.

### Примечание:

Оригинальная `tip` не полностью поддерживает модемы Hayes. Решить это проблему можно отредактировав файл `tipconf.h` в каталоге `/usr/src/usr.bin/tip/tip`. Конечно, для этого вам потребуются исходные тексты.

Замените строку `#define HAYES 0` на `#define HAYES 1`. Затем выполните `make` и `make install`. После этого все должно работать отлично.

### 23.5.2. Как нужно выполнять команды AT?

Сделайте то, что называется «прямой» записью в файле `/etc/remote`. Например, если модем подключен к первому последовательному порту, `/dev/cuad0`, добавьте следующую строку:

cuad0:dv=/dev/cuad0:br#19200:pa=none

Используйте для br наибольшее значение bps, поддерживаемое модемом. Для подключения к модему выполните `tip cuad0`.

Или используйте `cu` под `root` так:

`#` `cu -l`line` -s`speed``

`line` это последовательный порт (например `/dev/cuad0`), а `speed` это скорость (например `57600`). После ввода команд AT наберите ~. для выхода.

### 23.5.3. Знак `@` не работает для pn!

Знак `@` в телефонном номере указывает `tip` взять телефонный номер из `/etc/phones`. Но знак `@` это также специальный символ в таких файлах как `/etc/remote`. Экранируйте его с помощью обратной косой черты:

pn=\@

### 23.5.4. Как я могу позвонить по телефонному номеру из командной строки?

Поместите так называемую «generic» запись в файл `/etc/remote`. Например:

tip115200|Dial any phone number at 115200 bps:\ :dv=/dev/cuad0:br#115200:at=hayes:pa=none:du: tip57600|Dial any phone number at 57600 bps:\ :dv=/dev/cuad0:br#57600:at=hayes:pa=none:du:

Затем вы можете сделать следующее:

`#` `tip -115200 5551234`

Если вы предпочитаете `cu` команде `tip`, используйте generic запись для `cu`:

cu115200|Use cu to dial any number at 115200bps:\ :dv=/dev/cuad1:br#57600:at=hayes:pa=none:du:

и выполните:

`#` `cu 5551234 -s 115200`

### 23.5.5. Должен ли я вводить значение bps каждый раз?

Создайте запись `tip1200` или `cu1200`, но используйте то значение bps, которое записано в поле br. `tip` считает, что хорошее значение по умолчанию это 1200 bps, поэтому обращается к записи `tip1200`. Тем не менее, значение bps будет другим.

### 23.5.6. Я получаю доступ ко множеству хостов через терминальный сервер

Вместо ожидания соединения и ввода каждый раз `CONNECT <host>`, используйте возможность `tip` `cm`. Вот пример записи в `/etc/remote`:

pain|pain.deep13.com|Forrester's machine:\ :cm=CONNECT pain\n:tc=deep13: muffin|muffin.deep13.com|Frank's machine:\ :cm=CONNECT muffin\n:tc=deep13: deep13:Gizmonics Institute terminal server:\ :dv=/dev/cuad2:br#38400:at=hayes:du:pa=none:pn=5551234:

Она позволит вам вводить `tip pain` или `tip muffin` для соединения с хостами pain или muffin, и `tip deep13` для доступа к терминальному серверу.

### 23.5.7. Может ли tip соединяться более через одну линию для каждого сайта?

Эта проблема часто возникает в университете, где несколько модемных линий и несколько тысяч студентов, пытающихся их использовать.

Создайте запись для университета в `/etc/remote` и используйте `@` для `pn`:

big-university:\ :pn=\@:tc=dialout dialout:\ :dv=/dev/cuad3:br#9600:at=courier:du:pa=none:

Затем, создайте список телефонов для университета в `/etc/phones`:

big-university 5551111 big-university 5551112 big-university 5551113 big-university 5551114

`tip` попробует связаться с каждым в указанном порядке, затем прекратит попытки. Если вы хотите продолжать соединяться, запустите `tip` в цикле.

### 23.5.8. Почему я должен дважды нажать Ctrl+P для отправки Ctrl+P один раз?

Ctrl+P это «управляющий» символ по умолчанию, используемый для указания `tip` того, что далее идут символьные данные. Вы можете сделать любой другой символ управляющим с помощью экранирования `~s`, которое означает «установить переменную».

Введите `~sforce=`single-char``, завершив ввод новой строкой. `single-char` это любой одиночный символ. Если вы не введете `single-char`, управляющим символом станет nul, который можно получить, введя Ctrl+2 или Ctrl+Space. Хорошее значение для `single-char` это Shift+Ctrl+6, которое используется только на некоторых терминальных серверах.

Вы можете использовать в качестве управляющего символа все, что захотите, поместив его в файл `$HOME/.tiprc`:

force=<single-char>

### 23.5.9. Почему все, что я ввожу, вдруг стало отображаться в верхнем регистре??

Вы нажали Ctrl+A, «повышающий символ» `tip`, который был специально введен для тех, у кого не работает клавиша caps-lock. Используйте `~s` как в примере выше для установки переменной `raisechar` в подходящее значение. Фактически, вы можете установить ее в то же значение, что и управляющий символ, если не собираетесь использовать ни один из них.

Вот пример .tiprc, отлично подходящий для пользователей Emacs, которым часто требуется вводить Ctrl+2 и Ctrl+A:

force=^^ raisechar=^^

Символ ^^ это Shift+Ctrl+6.

### 23.5.10. Могу ли я передавать файлы с помощью `tip`?

Если вы соединяетесь с другой системой UNIX®, возможны передача и прием файлов с помощью команды `~p` (put) и `~t` (take). Эти команды запускают `cat` и `echo` в удаленной системе для приема и передачи файлов. Синтаксис следующий:

`~p` local-file [remote-file]

`~t` remote-file [local-file]

Коррекции ошибок нет, поэтому возможно лучше использовать другой протокол, например zmodem.

### 23.5.11. Как мне запустить zmodem с `tip`?

Для получения файла запустите отправляющую программу на удаленной стороне. Затем, наберите `~C rz` для начала локального приема файла.

Для отправки файлов запустите принимающую программу на удаленной стороне. Затем, наберите `~C sz `файлы`` для отправки их на удаленную систему.

Пред. | Наверх | След.
23.4. Входящие соединения по модему | Начало | 23.6. Настройка последовательной консоли

Этот, и другие документы, могут быть скачаны с http://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку <doc@FreeBSD.org>.