trying to understand http and headers i was playing around with telnet to send requests. to not type everything again and again and again i thought i’d write a small textfile with all the commands i need.
my file is as simple as follows:
GET /somefile.php HTTP/1.1
Host: localhost
i then try to feed it to telnet with io-redirection:
$ telnet localhost 80 < telnet.txt
but all output i get is
Trying ::1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.
what am i doing wrong?
asked Apr 14, 2010 at 17:06
knittlknittl
241k53 gold badges310 silver badges361 bronze badges
1
telnet is not the right tool for this job. Try :
netcat localhost 80 < telnet.txt
btw, if you don’t have the tool installed on your machine, you
can get it here:
http://netcat.sourceforge.net/
user987339
10.4k8 gold badges40 silver badges45 bronze badges
answered Apr 14, 2010 at 17:11
chetanchetan
9334 silver badges11 bronze badges
7
The problem is that you feed all input to the telnet command instantly, without waiting for its output. Right after all of your input file has been fed, it will automatically cause telnet to «hang up», because the input stream reaches its end (EOF). Telnet might still be in its first millisecond or microsecond of actually waiting to establish a connection to the remote server when this happens.
What you want to do is, send a command to telnet, then wait for it to do its job aka wait for the server’s response, then send the next command, and so on, and only hang up at the very end when all the commands you sent were actually processed.
To do this, use an ‘expect’ script instead of insta-feeding a text file. ‘Expect’ is the usual tool to do this job.
answered May 16, 2014 at 16:26
user2316370user2316370
2631 gold badge4 silver badges11 bronze badges
The advice above is pretty good, except the port number is 23, not 80, for telnet. So if you came here looking for how to feed data into a telnet port (as I did, to configure an ethernet-controlled power switch) then use port 23.
answered Jul 1, 2020 at 16:19
I don’t know if that’s possible with telnet
. Have you looked at netcat
?
answered Apr 14, 2010 at 17:08
amertuneamertune
6505 silver badges9 bronze badges
I just uploaded a ~7 Kb firmware file to a BusyBox based Linux embedded system over the serial port.
No networking, no file transfer utilities; no Base64 utils or anything remotely useful on the device.
On the host, I trivially encoded a firmware into the following format; a kind of hex-dump consisting of shell literals combined with printf
commands:
printf "xDExADxBExEFx...xF0"
printf "xCAxFEx33xE1x...xD3"
basically shell printf
commands with x
escape sequences that printf
interprets. On the device I did:
device $ cat > firmware.sh
then used the minicom
‘s ASCII file send (Ctrl-AS) to send this file to the host. I could just have used copy and paste, since the amount of data is small.
Then, marked executable and ran the printf
script:
device $ chmod a+x firmware.sh
device $ ./firmware.sh > firmware.bin
Checked using BusyBox’s md5sum
that the firmware.bin
checksum on the device matches the original firmware image on the host.
P.S. The shell double quote syntax passes through x
verbatim because it’s not a recognized escape sequence; hence we don’t have to double up the backslashes.
FTP — протокол передачи файлов по сети, является одним из старейших прикладных протоколов, появившихся задолго до HTTP, и даже до TCP/IP, в 1971 году. Протокол построен на архитектуре «клиент-сервер» и использует разные сетевые соединения для передачи команд и данных между клиентом и сервером. Пользователи FTP могут подключиться анонимно или пройти аутентификацию.
У меня две виртуальные машины — ftp-client
и ftp-server
(ip-адрес 192.168.30.21
) в одной сети. Открываем окно терминала на машине ftp-client
:
$ telnet 192.168.30.21 21 Trying 192.168.30.21... Connected to 192.168.30.21. Escape character is '^]'. 220 (vsFTPd 3.0.3)
Передаем имя пользователя и пароль:
$ telnet 192.168.30.21 21 Trying 192.168.30.21... Connected to 192.168.30.21. Escape character is '^]'. 220 (vsFTPd 3.0.3) USER evgeniy 331 Please specify the password. PASS qwerty 230 Login successful.
Запросы клиента всегда состоят из одной строки формата КОМАНДА [аргументы]
, в то время как ответы сервера могут содержать несколько строк.
Первая и последняя строки начинается с трех цифр, представляющих собой код ответа, за которыми идет текстовое описание ответа, отделенное от кода либо пробелом, либо тире. Если в качестве разделителя используется пробел, значит строка является последней в ответе (и, возможно, единственной), иначе — это первая строка многострочного ответа.
Выполним еще одну команду — PWD
:
$ telnet 192.168.30.21 21 Trying 192.168.30.21... Connected to 192.168.30.21. Escape character is '^]'. .................... PWD 257 "/home/evgeniy" is the current directory
Теперь попробуем выполнить команду LIST
. Для этого надо перейти в пассивный режим — тогда сервер сообщит нам, на какой порт выполнять соединение, чтобы получить ответ. Дело в том, что результат команды LIST
отправляется не через управляющее соединение, а через соединение для передачи данных:
$ telnet 192.168.30.21 21 Trying 192.168.30.21... Connected to 192.168.30.21. Escape character is '^]'. 220 (vsFTPd 3.0.3) .................... PASV 227 Entering Passive Mode (192,168,30,21,234,161).
В ответе сервера есть ip-адрес сервера и порт, на котором клиент должен установить соединение. Адрес — это первые четыре числа, порт — это последние два числа. Порт можно вычислить так: 234*256+161=60065
. Так что открываем еще одно окно терминала и выполняем команду:
$ telnet 192.168.30.21 60065 Trying 192.168.30.21... Connected to 192.168.30.21. Escape character is '^]'.
Теперь выполняем в первом окне терминала команду LIST
и смотрим ответ во втором окне:
$ telnet 192.168.30.21 60065 Trying 192.168.30.21... Connected to 192.168.30.21. Escape character is '^]'. -rw-rw-r-- 1 1000 1000 361278 Feb 22 15:25 image.jpg drwxrwx--- 1 0 999 4096 Feb 22 13:52 share drwx------ 2 1000 1000 4096 Feb 24 14:53 test Connection closed by foreign host.
В списке есть файл image.jpg
. Давайте удалим его с помощью команды DELE
:
$ telnet 192.168.30.21 21 Trying 192.168.30.21... Connected to 192.168.30.21. Escape character is '^]'. 220 (vsFTPd 3.0.3) .................... DELE image.jpg 250 Delete operation successful.
Изменим текущую директорию:
$ telnet 192.168.30.21 21 Trying 192.168.30.21... Connected to 192.168.30.21. Escape character is '^]'. 220 (vsFTPd 3.0.3) .................... CWD share 250 Directory successfully changed.
В директории share
есть файл readme.txt
. Получить его с помощью telnet
мы не сможем, для этого нужен ftp-клиент, но посмотреть содержимое — можем. Перейдем в пассивный режим с помощью команды PASV
, во втором окне терминала подключимся к ftp-серверу на указанном порту и выполним команду RETR readme.txt
(скачать файл) в первом окне:
$ telnet 192.168.30.21 21 Trying 192.168.30.21... Connected to 192.168.30.21. Escape character is '^]'. 220 (vsFTPd 3.0.3) .................... PASV 227 Entering Passive Mode (192,168,30,21,234,144). RETR readme.txt 150 Opening BINARY mode data connection for readme.txt (36 bytes). 226 Transfer complete.
$ telnet 192.168.30.21 60045 Trying 192.168.30.21... Connected to 192.168.30.21. Escape character is '^]'. This is content of file readme.txt. Connection closed by foreign host.
На этом все — выходим из telnet
:
QUIT
221 Goodbye.
Connection closed by foreign host.
Основные команды:
Команда | Код | Описание |
---|---|---|
DELE |
250 |
Удалить файл |
RMD |
250 |
Удалить директорию |
CWD |
250 |
Перейти в директорию |
MKD |
257 |
Создать директорию |
PWD |
257 |
Узнать текущую директорию |
QUIT |
221 |
Закончить работу |
TYPE |
200 |
Установить тип передачи |
PORT |
200 |
Перейти в активный режим |
PASV |
227 |
Перейти в пассивный режим |
LIST |
150,226 |
Получить содержимое каталога |
RETR |
150,226 |
Скачать файл |
STOR |
150,226 |
Закачать файл |
ABOR |
426,226 |
Отменить передачу |
RNFR |
350 |
Выбрать файл для переименования |
RNTO |
250 |
Переименовать файл |
Поиск:
CLI • FTP • Сервер • Протокол • telnet
Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
������������� ������� ��������� ��������� ���������� (man-��)
telnet (1)
telnet(1) |
��������
telnet — ���������������� ��������� � ��������� �������,
������������ �������� TELNET
���������
-
telnet [-8][-E][-L][-a][-d][-e �����������_������]
[-l ������������] [-n ����_�����������]
[-r][���� [����]]
��������
������� telnet ������������ ��� ����� � ������ ������ �� ���������
TELNET.
�����
- $HOME/.telnetrc
- ������������� ������������� ��������� ������� telnet
- /usr/lib/locale/������/LC_MESSAGES/uxtelnet
- ���� ��������� ��� �������� �����
(��. LANG � environ(5).)
���������� �����
������� telnet ���������� ��� ������� ��������� ���������� �����:
HOME, SHELL, USER, DISPLAY � TERM.
������ ���������� �����
����� �������� �� ��������� ��������� � ������� ����� TELNET
ENVIRON.
�������������
���� ������� telnet ������� ��� ��������� �����, ��� ������ �
��������� �����, ��� ���������� ����������� telnet>. � ���� ������
telnet ������������ � ��������� ������������� ���� �������. ����
telnet ������� � �����������, ��� �������� ������� open
(��. ��������
������ telnet ����) � ����� �����������.
�����
telnet ������������ ��������� �����:
-8 |
������������� ������������� �������� ������. ��� �������� � ������� ���������� ����� BINARY ��� ������� � �������� ������. |
-E |
���������� ������������� ������ ������� ��� ������������. |
-L |
������������� ������������� �������� �������� ������. ��� �������� � ������� ��������� ����� BINARY ��� �������� ������. |
-a |
�������������� ����������� � ��������� �������. ���� ��������� ������� ������������ ����� ENVIRON, ���������� USER ����� �������� ��������� �������. ��� ����� ����� ����� �������������� � �������� open. |
-d |
����������� ������� �� ������ ������� (���������� ������ ������������������ ������������). ������������� ��������� �������� ������������� ������� � TRUE. |
-e [ ���_������ ] |
������������� ��������� ����������� ������ TELNET � ���_������. ���� ���_������ — ������ ������ («»), �� ����������������� ������������ ������� �� �����. |
-l ������������ |
��� ����������� � ��������� �������, �������������� ����� ENVIRON, ������������ ����� ������ ��������� ������� � �������� �������� ���������� USER. ��� ����� ����� ����� �������������� � �������� open. |
-n ����_����������� |
��������� ����_����������� ��� ������ �������������� ����������. (��. �������� ������� set tracefile ����.) |
-r |
���������� ���������������� ���������, ����������� rlogin(1). � ���� ������ ����������� �������� �������� ������ («~«), ���� ������ ������ �� ������ ������ -e. |
host |
���������� ����������� ��� �����: ��������� ��� Internet-����� ���������� �����. |
port |
���������� ����� ����� (�.�., ����� ����������). ���� ����� ����� �� ������ ��� ������� ���������, ������������ ����������� ����� ����� TELNET. |
����� ��������� (��������) ����������, TELNET ��������� � «�����
�����». TELNET ���������� ���������� ����� LINEMODE (����������
�����). ���� ��� �� ������� �������, TELNET �������� � ���� �� ����
������� �����: ���� � «������������» ����� («character at a time»
mode), ���� � «������ ����������» ����� («old line by line» mode), �
����������� �� ����, ����� �� ��� �������������� ��������� ��������.
����� ����� LINEMODE �����������, ��������� �������� �����
����������� �� ��������� �������, �� ��� ����������� ���������
�������. ����� �������������� ����� ��� ����������� ��������
���������� ���������, ��������� ������� �������� ��� ����������.
��������� ������� ����� �������� ��������� ����� �����������
��������, ������������ �� ��������� �������, ���, ����� ��� �����
���� ��������� �� ��������� �������.
� «������������» ������ �������� ����� ���������� ������ �����
��������������� ���������� �� ��������� ���� ��� ���������.
� «������ ����������» ������ ����� ����� ������������ ��������, ��
(������) ������ ����������� ������ ����� ���������� �� ���������
����. ��� ��������� � ���������� ������ ���������� �����������
����� ������������ «��������� ������ �����������» («local echo
character», ������������� — «^E«), ��� ����� ����� ������������ ������
��� ����� �������, ����� ������ �� �����������.
���� ����� LINEMODE ����������� ��� �������������
localchars �����
�������� TRUE (��� �������� ��������������� �� ��������� ���
«������� �����������» ������; ��. ����), ���������������� �������
quit, intr � flush ����� ��������������� �������� � ���������� ���
������������������ ��������� TELNET �� ��������� ������. ����
�����-���� ����� ���� ����������� ����� LINEMODE, �� ��������
������������� ������� susp � eof ���� ����� ���������� ���
������������������ ��������� TELNET; quit ����� ���������� ���
TELNET ABORT, � �� ��� BREAK. ������� ����� (��. �������������
autoflush � autosynch ����),
��� ��������� ������� ������ ��������
��������� ���� ���������� ����� �� �������� (���� ��������� ���� ��
���������� ����� ������������������ TELNET) � ���������
���������� ���� � ��������� (� ������ quit � intr).
����� ���������� � ��������� ������ � ��������� ����� telnet
����� �����, ����� «����������� ������» TELNET (���������� — «^[«).
��� ������ � ��������� ������ �������������� ������� ����������
�� �������������� ��� ���������.
�������
�������������� ��������� ������� TELNET, ������ ����� ��������
������ ��������� ����� �������, ����������� ��� �� ������������
����������� (��� �� ������� � ��� ���������� ������
mode, set,
toggle,
unset, slc, environ �
display).
- close
- ��������� ����� TELNET � ������������ � ��������� �����.
- display �������� …
- ���������� �������� ���� ��� ��������� ��������� �
��������������. - mode ���
-
� ����������� �� ��������� ������ TELNET, �������� ��� �����
����� ���� �� �������������� ���� ��������. � ����������
����� ����� ��������� ���������� �� ������� � ���������
�����. ���� ��������� ���� �������� ������� � ���� �����, ��
�������� � ����.character
��������� ����� TELNET LINEMODE; ���,
���� ��������� ������� �� �������� �����
LINEMODE, ������� � «������������» �����.line
�������� ����� TELNET LINEMODE; ���,
���� ��������� ������� �� �������� �����
TELNET LINEMODE, ���������� ������� �
������ ����������» �����.isig
-isig
���������� �������� (���������) �����
TRAPSIG ����� TELNET LINEMODE. ���
����� ����������, ����� ����� LINEMODE
���� ��������.edit
-edit
���������� �������� (���������) ����� EDIT
����� LINEMODE. ��� ����� ����������,
����� ����� LINEMODE ���� ��������.softtabs
-softtabs
���������� �������� (���������) �����
SOFT_TAB ����� LINEMODE. ��� �����
����������, ����� ����� LINEMODE ����
��������.lopenxso
-lopenxso ���������� �������� (���������) �����
LIT_ECHO ����� LINEMODE. ��� �����
����������, ����� ����� LINEMODE ����
��������.?
������ ���������� ���������� �� �������
mode. - open [ -l ������������ ] [ -a ] ���� [[-]���� ]
- ��������� ���������� � ��������� ������. ������, ��� �������
��� ���������� �������� � ���������� ������� �����������.
���� ����� ����� �� ������, telnet ���������� ��������� �
�������� TELNET �� ����������� �����. ���� ����� ���������
��� �� ����� (��. hosts(4)), ��� � � ���� ������ Internet �
«�������� ������» (��. inet(3N)).����� ������������ ����� -l ��� -a ��� ������� �����
������������, ������� ����� �������� ��������� ������� �����
����� ENVIRON.��� ����������� � �������������� �����, telnet �� �����
������������� ������������ ������� ����� TELNET. ���� �����
������� ����� ������ ���� �����, ��������� ������������ �����
����� ����������� ��������� �������: ����� ���������
���������� ����� ������ ���� .telnetrc � ��������� ��������
������������. ������, ������������ � #, ��������������� ���
�����������; ������ ������ ����� ���������������. ������,
������������ �� � ��������, ��������� ������� ������ �
������. ������ � ������ ���� ��� ������, � �������
������������ ������ ����. ������� ������ — � �����������
������, ������������ � ������� — ��������������� ��� �������
telnet � ����� ���������, ��� ���� �� ��� ���� �������
������������� � ����� �� ��������� ����������� telnet. - quit
- ��������� ����� �������� ����� TELNET � ��������� ������
��������� telnet. ��� ������ � ��������� ������, ���� �������
����� ����� (EOF) ����� �������� � �������� ������ �
���������� ������. - send ���������
- �������� ���� (��� ���������) ������������������� �����������
�������� �� ��������� ����. ����� ��������� ���������
��������� (� ����� ������� ����� ��������� ���������
����������):abort
�������� ������������������ TELNET
ABORT (���������� ��������).ao
�������� ������������������ TELNET
AO (Abort Output — ���������� ������),
������� ������ �������� � ����������
������ �������� ������ ���������
������� �� �������� ������������.ayt
�������� ������������������ TELNET
AYT (Are You There? — �� ����?);
��������� ������� ����� �������� �� ���
���������, � ����� � �� ��������.brk
�������� ������������������ TELNET
BRK (BReaK — ��������), ������� �����
����� �������� ��� ��������� �������.ec
�������� ������������������ TELNET EC
(Erase Character — ������� ������),
������� ������ �������� � ��������
���������� ���������� ������� ���������
��������.el
�������� ������������������ TELNET EL
(Erase Line — ������� ������), �������
������ �������� � �������� ��������
������ ��������� ��������.eof
�������� ������������������ TELNET
EOF (End Of File — ����� �����).eor
�������� ������������������ TELNET
EOR (End of Record — ����� ������).escape
�������� ������� ����������� ������
TELNET (���������� — «^[«).ga
�������� ������������������ TELNET
GA (Go Ahead — ���������), �������,
������ �����, �� ����������� ���
��������� �������.getstatus
���� ��������� ������� ������������
������� TELNET STATUS, getstatus
������ ������ �� ������ ��������
�������� ������� �����.ip
�������� ������������������ TELNET IP
(Interrupt Process — �������� �������),
������� ������ �������� � �����������
��������� �������� ��������
������������ ��������.nop
�������� ������������������ TELNET
NOP (No OPeration — ��� ��������).susp
�������� ������������������ TELNET
SUSP (SUSPend process — �������������
�������).synch
�������� ������������������ TELNET
SYNCH. ��� ������������������ ��������
� ����, ��� ��������� �������
����������� ��� ��� ��������� (�� ���
�� �����������) ����������. ���
������������������ ���������� ���
������� ������ (urgent data) TCP (�
����� �� ���������, ���� ���������
������� — 4.2 BSD; ����
������������������ �� ���������, ��
�������� ����� ���� ����� ������ «|» �
������ ��������).?
������ ���������� ���������� ��
������� send. - set �������� ��������
- unset �������� ��������
-
������� set ������������� ����� �� �������������� ����������
TELNET ��������� �������� ��� �������� TRUE. �����������
�������� off ��������� �������, ��������� � ������ ����������;
��� ������������ ������������� ������� unset. ������� unset
�������� (��� ��������� � FALSE) ����� ��������� �������.
�������� ���������� ����� �������� � ������� �������
display. ����������, ������� ����� ���������� ��� ��������, ��
�� �����������, ����������� ����. ����� ����, ����� ��
���������� ��� ������� toggle, ����� ���� ���� �������� ���
��������� � ������� ������ set � unset.echo
��� �������� (�������������, «^E«), �������, ���
����� � «����������» ������, �������� ���������
����������� ��������� �������� (��� ����������
���������) ��� ��������� ����������� (��������,
��� ����� ������).eof
���� telnet �������� � ������ LINEMODE ��� �
«������ ����������» ������, ���� ����� ������� �
�������� ������� ������� ������ �������� � ���
������� ��������� �������. ��������������
��������� ������� EOF �������� ������ �����
����� (eof) ���������.erase
���� telnet ��������� � ������ localchars (��.
toggle localchars ����) � �������� � «������������»
������, �� ��� ����� ����� ������� ���������
������� ���������� ������������������ TELNET
EC (��. send ec ����). �������������� ���������
������� erase �������� ������ �������� (erase)
���������.escape
��� ����������� ������ TELNET (�������������,
«^[«), ���������� ������� � ��������� �����
TELNET, ����� ������������ ��������� �
��������� �������.flushoutput
���� telnet ��������� � ������ localchars (��.
toggle localchars ����) � ������ ������
flushoutput,
�� ��������� ���� ���������� ������������������
TELNET AO (��. send ao ����). � ��������
���������� �������� ��� ������� ������ (flush
character) ������� ������ ������ ���������.interrupt
���� telnet ��������� � ������ localchars (��.
toggle localchars ����) � ������
������ ����������
(interrupt character), �� ��������� ���� ����������
������������������ TELNET IP (��. send ip ����).
� �������� ���������� �������� ��� �������
���������� ������� ������ intr ���������.kill
���� telnet ��������� � ������ localchars (��.
toggle localchars ����) � �������� � «������������»
������, �� ��� ����� ����� ������� ���������
������� ���������� ������������������ TELNET
EL. � �������� ���������� �������� ������� kill
������� ������ kill ���������.lnext
���� telnet �������� � ������ LINEMODE ��� �
«������ ����������» ������, ���� ������
��������������� � �������� ������� lnext ���
���������. � �������� ���������� �������� ���
������� lnext ������� ������ lnext ���������.quit
���� telnet ��������� � ������ localchars (��.
toggle localchars ����) � ������ ������ quit, ��
��������� ���� ���������� ������������������
TELNET BRK (��. send brk ����). � ��������
���������� �������� ��� ������� quit �������
������ quit ���������.reprint
���� telnet �������� � ������ LINEMODE ��� �
«������ ����������» ������, ���� ������
��������������� � �������� ������� reprint ���
���������. � �������� ���������� �������� ���
������� reprint ������� ������ reprint ���������.start
���� �������� ����� TELNET TOGGLE-FLOW-
CONTROL, ���� ������ ��������������� � ��������
������� start ��� ���������. � �������� ����������
�������� ��� ������� start ������� ������ start
���������.stop
���� �������� ����� TELNET TOGGLE-FLOW-
CONTROL, ���� ������ ��������������� � ��������
������� stop ��� ���������. � �������� ����������
�������� ��� ������� stop ������� ������ stop
���������.susp
���� telnet ��������� � ������ localchars ��� ����
������� ����� LINEMODE � ������ ������
suspend, �� ��������� ���� ����������
������������������ TELNET SUSP (��. send susp
����). � �������� ���������� �������� ��� �������
suspend ������� ������ suspend ���������.tracefile
� ���� ���� ����� ������������ ����������,
��������������� �������� netdata.worderase
���� telnet �������� � ������ LINEMODE ��� �
«������ ����������» ������, ���� ������
��������������� � �������� ������� �������� �����
(worderase character) ��� ���������. � ��������
���������� �������� ������� �������� �����
������� ������ �������� ����� ���������.?
������ ������ ���������� ������ set � unset. - slc ���������
-
������� slc (Set Local Characters — ���������� ���������
�������) ������������ ��� ��������� (��� ���������) ���������
����������� ��������, ����� �������� ����� TELNET
LINEMODE. ������������ ���������� �������, �������������
� ��������� ������������������ TELNET (��������, ip ��� quit)
��� ������� �������������� ����� (��������, erase � kill). ��
���������, �������������� «��������� ����������� �������».export
������� �� ��������� ����������� �������� ���
«����������� ��������». ���������� ������������
���������� �������� �������� ��� ����������
��������� �� ������ ������� telnet.import
������� �� ��������� ����������� �������� ���
«����������� ��������». ���������� ������������
���������� �������� �������� �����������
�������� ��������� ������� �� ������ ���������
���������� TELNET.check
��������� ������� ��������� ��� «�����������
��������». �� ��������� ������� �������������
������� ���� ������� ��������� �����������
��������; ���� ������� �������� �� ��������� �
��������� ��������, ��������� ������� ���������
�� ����� ��������� ��������.? ������ ���������� ���������� �� ������� slc. - environ ��������� [ … ]
-
������� environ ������������ ��� ������ � �����������,
������� ����� ���� ������� � ������� ����� TELNET
ENVIRON. ��������� ����� ���������� ������� �� �����
������������, ������ �������������� ������ ���������� USER �
DISPLAY.��������� ��������� ��������� ������� environ:
- define ���������� ��������
- ���������� ���������� � ��������� ���������. ���
������������ � ������� ���� ������� ����������
������������� ��������������. �������� ����� ����� �
��������� ��� ������� �������, ��� ��������� �������� �
���� ������� � ������� ���������. - undefine ����������
- ������� ��������� ���������� �� ������ ����������
�����. - export ����������
- �������� ��������� ���������� ��� ����������
��������������� �� ��������� �������. - unexport ����������
- �������� ��������� ���������� ��� �� ����������
���������������, ���� ������ ��� �� ����� ���� ���������
��������� ��������. - list
- ������ ������� ����� ���������� �����. ��, ���
�������� *, ����� ���������� �������������; ���
��������� ���������� ����� ������� ������ � ����� ��
������. - ?
- ������ ���������� ���������� �� ������� environ.
- define ���������� ��������
- toggle ��������� [ … ]
-
����������� ��������� ����� (�� �������� TRUE �� FALSE �
��������), ����������� �������� TELNET �� ������������
�������. ��� ����� ����� ���� ���������� � TRUE ��� FALSE �
������� ������������� ���� ������ set � unset. � �������
����� ��������� ��������� ����������. ��������� ���� ������
����� ������ � ������� ������� display.
��������� ���������
���������:autoflush
���� ����� autoflush � localchars ����� ��������
TRUE, �� ��� ��������� �������� ao ��� quit
(����� �� �������������� � ������������������
TELNET, ��� ������� ����), telnet ������������
���������� �� ��������� ������������ �����
������ �� ��� ���, ���� ��������� ������� ��
���������� (����� ����� TELNET TIMING MARK),
��� ��� ���������� ��� ������������������
TELNET. ��������� �������� ����� ������������� —
TRUE, ���� ������������ ��������� �� ��������
������� stty noflsh, � FALSE � ��������� ������
(��. stty(1)).autosynch
���� ����� autosynch � localchars ����� ��������
TRUE, �� ��� ����� ������ �� �������� intr ���
quit (��. �������� �������� intr
� quit � �������
������� set ����) ����� ���������������
������������������ TELNET ����� �������
������������������ TELNET SYNCH. � ����������
��������� ������� ������ ����� ��������� ����
���������� ����, ���� ��� ������������������
TELNET �� ����� ��������� � ����������.
��������� �������� ����� ������������� — FALSE.binary
�������� ��� ��������� ����� TELNET BINARY
��� ��� �������, ��� � ��� �������� ������.inbinary
�������� ��� ��������� ����� TELNET BINARY
��� ������� ������.outbinary
�������� ��� ��������� ����� TELNET BINARY
��� �������� ������.crlf
���� �������� ����� ������������� — TRUE, ��
�������� ������� ����� ���������� ��� <CR><LF>.
���� �� �� ����� �������� FALSE, �� ��������
������� ����� ���������� ��� <CR><NUL>.
��������� �������� ����� ������������� — FALSE.crmod
����������� ����� �������� �������. ����� ����
����� �������, ����������� �������� ��������
�������, ���������� � ���������� �����, �����
������������� � ������� ������� (Carriage Return),
�� ������� ���� ������� ������ (Line Feed). ����
����� �� ������ �� �������, ��������
�������������, — ������ �� ���������� �
���������� �����. ���� ����� �� �������� �����,
���� ������ ��������� ���� �� �������� ������
������ �������� ������� � ������� — ��������
�����. ��������� �������� ����� ������������� —
FALSE.debug
����������� ����� ������� �� ������ �������
(���������� ������ ������������������
������������). ��������� �������� �����
������������� — FALSE.localchars
���� ���� ������������� ����� �������� TRUE,
������� flush, interrupt,
quit, erase � kill (��.
�������� set ����) ������������ �������� �
������������� � (����� ���������)
��������������� ����������� ������������������
TELNET (ao, ip, brk, ec � el, ��������������; ��.
�������� send ����). ��������� �������� �����
������������� — TRUE � «������ ����������»
������ � FALSE � «������������» ������.����� �������� ����� LINEMODE, ��������
localchars ������������ � �������������� ������
��������. ���� ����� LINEMODE ����������, quit
����� ���������� ��� abort; eof � suspend �����
���������� ��� eof � susp; (��. �������� send ����).netdata
����������� ����� ���� ������� ������ (�
����������������� �������). ��������� ��������
����� ������������� — FALSE.options
����������� ����� ������������ ����������
��������� ��������� telnet, ��������� � �������
TELNET. ��������� �������� ����� ������������� —
FALSE.prettydump
���� ������� ������������� netdata � �������
prettydump, ��������� ������ ������� netdata
����� ������������ � ����� ������� ���
������������ ������. ����� ��������� �
����������� ����� ��������� �������, � ������
����� ����������� ������������������ TELNET
����� �������� ���������� (‘*‘), ����� ����� ����
�� �����.? ���������� ���������� ������� toggle. - Ctrl-z
- ���������������� telnet. ��� ������� ����� ��������, ������
���� ������������ ���������� ��������� ������������� csh(1)
��� ksh(1). - ! [ ������� ]
- ��������� ��������� ������� � ����������� ���������
�������������� (subshell) �� ��������� �������. ���� ������� ��
�������, ����� ������ ������������� �����������
�������������. - status
- ���������� ������� ������ telnet, � ��� ����� ������, � �������
��������� ���������, � ������� �����. - ? [ ������� ]
- ���������� �������. ���� ������� �� �������, telnet �������
������� �������� �������� ����� ������. ���� ������� �������,
telnet ������ ���������� ���������� �� ���� �������.
��������������
�� ��������� ��������� �������� ���������� ������� ���������
������� echo ��� ������ � «������ ����������» ������.
��� ������ � «������ ����������» ������ ��� � ������ LINEMODE,
������ ����� ����� (eof) ��������� ������������ (� ����������
��������� �������) ������ ����� �� �������� ������ �������� � ������.
������
-
hosts(4),
inet(7),
rlogin(1),
sh(1),
stty(1)
Copyright 1994 Novell, Inc.
Copyright 1999 �. �������,
OpenXS Initiative, ������� �� ������� ����
Telnet — это сетевая утилита, которая позволяет соединиться с удаленным портом любого компьютера и установить интерактивный канал связи, например, для передачи команд или получения информации. Можно сказать, что это универсальный браузер в терминале, который умеет работать со множеством сетевых протоколов.
Эта утилита очень часто использовалась раньше, для удаленного управления компьютером с Linux, но потом ей на замену пришел защищенный протокол SSH. Но telnet все еще используется, например, для тестирования сети, проверки портов, а также для взаимодействия с различными IoT устройствами и роутерами. В этой статье мы рассмотрим что такое telnet, а также как пользоваться telnet для решения своих задач.
Как я уже сказал, эта утилита предназначена для создания интерактивного соединения между удаленными компьютерами. Она работает по протоколу TELNET, но этот протокол поддерживается многими сервисами, поэтому ее можно использовать для управления ими. Протокол работает на основе TCP, и позволяет передавать обычные строковые команды на другое устройство. Он может использоваться не только для ручного управления но и для взаимодействия между процессами.
Для работы с этим протоколом мы будем использовать утилиту telnet, ею очень просто пользоваться. Давайте рассмотрим синтаксис telnet:
$ telnet опции хост порт
Хост — это домен удаленного компьютера, к которому следует подключиться, а порт — порт на этом компьютере. А теперь давайте рассмотрим основные опции:
- -4 — принудительно использовать адреса ipv4;
- -6 — принудительно использовать адреса ipv6;
- -8 — использовать 8-битную кодировку, например, Unicode;
- -E — отключить поддержку Escape последовательностей;
- -a — автоматический вход, берет имя пользователя из переменной окружения USER;
- -b — использовать локальный сокет;
- -d — включить режим отладки;
- -р — режим эмуляции rlogin;
- -e — задать символ начала Escape последовательности;
- -l — пользователь для авторизации на удаленной машине.
Это все, что касается команды telnet для установки соединения. Но соединение с удаленным хостом, это только полдела. После установки подключения telnet может работать в двух режимах:
- Построчный — это предпочтительный режим, здесь строка текста редактируется на локальном компьютере и отправляется только тогда, когда она будет полностью готова. На такая возможность есть не всегда и не у всех сервисов;
- Посимвольный — все набираемые вами символы отправляются на удаленный сервер. Тут будет сложно что-либо исправить, если вы допустили ошибку, потому что Backspace тоже будет отправляться в виде символа и стрелки движения тоже.
Использование telnet заключается в передаче специальных команд. У каждого сервиса свои команды, но у протокола есть свои команды telnet, которые можно применять в консоли telnet.
- CLOSE — закрыть соединение с сервером;
- ENCRYPT — шифровать все передаваемые данные;
- LOGOUT — выйти и закрыть соединение;
- MODE — переключить режим, со строчного на символьный или с символьного на строчный;
- STATUS — посмотреть статус соединения;
- SEND — отправить один из специальных символов telnet;
- SET — установить значение параметра;
- OPEN — установить подключение через telnet с удаленным узлом;
- DISPLAY — отобразить используемые спецсимволы;
- SLC — изменить используемые спецсимволы.
Мы не будем рассматривать все команды, поскольку они вам вряд ли понадобятся, а если и понадобятся, то вы легко сможете их найти в официальной документации.
Как пользоваться telnet?
Дальше мы рассмотрим как использовать telnet для решения ваших задач. Обычно, утилита уже установлена в большинстве систем, но если это не так, то вы можете установить telnet из официальных репозиториев, например, в Ubuntu:
sudo apt install telnet
Теперь перейдем к применению утилиты. Изначально она использовалась для удаленного управления компьютером, но поскольку потом был разработан более безопасный протокол SSH, использовать ее перестали.
1. Доступность сервера
Утилита все еще может быть полезной при поверке доступности узла, для этого просто передайте ей ip адрес или имя хоста:
telnet 192.168.1.243
Для этого не обязательно применять telnet, есть ping.
2. Проверка порта
C помощью telnet мы можем проверить доступность порта на узле, а это уже может быть очень полезным. Чтобы проверить порт telnet выполните:
telnet localhost 123
$ telnet localhost 22
В первом случае мы видим, что соединение никто не принимает, во втором же выводится сообщение об успешном подключении и приветствие SSH сервера.
3. Отладка
Чтобы включить режим отладки и выводить более подробную информацию во время работы используйте опцию -d во время подключения:
sudo telnet -d localhost 22
4. Консоль telnet
Использование консоли telnet тоже важный момент в разборе как пользоваться telnet. В основном режиме вы можете выполнять команды, на удаленном сервере, если же вы хотите адресовать команду именно telnet, например, для настройки ее работы, необходимо использовать спецсимвол для открытия консоли, обычно утилита сразу говорит вам что это за символ, например, по умолчанию используется «^[«:
Для его активации вам нужно нажать сочетание клавиш Ctrl+[, затем вы уведите приглашение ввода telnet.
Чтобы посмотреть все доступные команды, вы можете набрать ?. Например, вы можете посмотреть статус подключения:
telnet> status
Здесь есть и другие интересные возможности. Такие вещи можно проделывать при любом подключении с помощью утилиты telnet.
5. Посмотреть сайт telnet
Один из распространенных способов использования telnet — это тестирование сайта из консоли. Да, красивую веб-страницу вы не получите, но можете вручную собрать запросы и видеть все переданные сервером данные.
telnet opennet.ru 80
Затем наберите команду веб-серверу:
GET /
Веб сервер вернет полностью страницу, а также заголовки, которые необходимы для ее отображения браузером.
6. Удаленное управление telnet
Настоятельно не рекомендуется использовать небезопасный telnet для удаленного управления, потому что все команды и пароли могут быть прослушаны сторонним пользователем. Но иногда, например, для роутеров telnet все же используется для удаленного управления. Все работает точно так же, как и для других подключений, только нужно использовать порт 23, а на удаленном компьютере должен быть установлен telnet-server:
telnet localhost 23
Тут порт можно даже не указывать, потому что по умолчанию будет использоваться именно 23. Далее, вам нужно ввести логин и пароль, а затем вы сможете выполнять команды в удаленной системе.
Выводы
В этой статье мы рассмотрели примеры использования telnet, а также что представляет из себя эта утилита, хотя она уже не используется по своему основному назначению, но до сих пор может быть полезной многим пользователям и системным администраторам. Если у вас остались вопросы, спрашивайте в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .