Какие службы принимают tcp-соединение?

Я недавно узнал о программировании сокетов, и только начинаю изучать сокеты tcp / ip. В моем учебном материале приведен пример подключения к daytime службе localhost, запустив telnet 127.0.0.1 13 с ожидаемым результатом, который должен быть открыт сеанс telnet. У меня есть запись для « daytime 13/tcp » в /etc/services , и у меня работает служба xinetd , но когда я пытаюсь выполнить команду telnet, я сразу же получаю «Connection reject».

В : Почему не работает telnet для дневного обслуживания?

Q : существуют ли другие службы localhost, которые будут принимать telnet-соединение? Я попытался использовать telnet для случайного выбора служб, которые содержали записи tcp в /etc/services , но все они дали ту же ошибку «Connection failed».

Моя краткосрочная цель – просто повторить успешное соединение telnet с моим учебным материалом с службой localhost tcp – если не inetd , то что-нибудь еще; Я просто хочу учиться на практике.

 >telnet 127.0.0.1 13 Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection refused >telnet 127.0.0.1 49000 Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection refused >telnet 127.0.0.1 9009 Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection refused >uname -a Linux linuxbox 3.11.10-301.fc20.x86_64 #1 SMP Thu Dec 5 14:01:17 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux 

В /etc/services не указано, какие службы фактически запущены. См. Назначение / etc / services . Вам нужно будет найти службу, которая запускает (или запускает ее). Вы можете видеть, что слушает, глядя на netstat -nlt . Конкретные услуги будут отличаться, но вы увидите что-то вроде:

 $ netstat -nlt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp6 0 0 :::3306 :::* LISTEN tcp6 0 0 :::111 :::* LISTEN tcp6 0 0 :::22 :::* LISTEN tcp6 0 0 ::1:631 :::* LISTEN tcp6 0 0 ::1:25 :::* LISTEN 

Так:

  1. daytime служба, вероятно, не работает. Если он не отображается в списке (и вы можете видеть из приведенного выше списка, у меня его нет), то ничто не слушает порт. Возможно, можно запустить сервис, если он установлен.
  2. В зависимости от того, что установлено и активно, существует множество других потенциальных услуг. В приведенном выше списке порт 25 прослушивает, что является почтовой службой. Поэтому я мог подключиться через telnet к порту 25. Поскольку telnet не установлен по умолчанию, я использую nc для подключения, но принцип тот же:

    $ nc 127.0.0.1 25 220 centos7.feedthecoder.com ESMTP Postfix HELO me.theworld.com ...

Изменить: как упоминалось в комментарии, это, конечно, может быть проблемой межсетевого экрана. Обычно установки не блокируют 127.0.0.1 , но это всегда возможность.

Кроме того, в зависимости от вашего распределения, daytime не может быть установлено, что станет еще одним препятствием. Если он установлен, вы можете запустить его с помощью обычного запуска службы (например, в service start daytime или эквивалент дистрибутива).

Изменить: выясняется, что daytime предоставляется исключительно xinetd как внутренняя служба. Таким образом, хотя информация выше о услугах листинга верна, чтобы иметь daytime , убедитесь, что установлен xinetd , и что файл /etc/xinetd/daytime-stream disabled установлен на no .