Как проверить соединение без Telnet? [закрыто]

22

Я пытаюсь проверить, может ли машина A подключаться к машине B через определенные порты. Системные администраторы машины A посчитали нужным удалить telnetкоманду. Что будет удобной заменой? Машина А это CentOS.

Стив Беннетт
источник
2
Поговорите с сисадминами А и сообщите им о своих нуждах. Что касается альтернатив, посмотрите на netcat. Это не по теме, поскольку у вас нет привилегий на рассматриваемой машине для решения проблемы.
EEAA
«Поговорите с сисадминами А и сообщите им о своей необходимости». - вряд ли в этой среде. \ Netcat не установлен. \ Я думаю - я сисадмин на машине B, хотя.
Стив Беннетт
Это не делает это по теме, хотя.
EEAA
5
Хм, похоже, сфера SF намного уже, чем указано в FAQ. (например, meta.serverfault.com/questions/4111/… )
Стив Беннетт
Если вы системный администратор машины B, все, что вы можете сделать, это убедиться, что машина B разрешает доступ. Задача системных администраторов машины А - либо предоставить вам необходимые инструменты, либо провести собственное тестирование. В настоящее время, поскольку у вас нет какой-либо программы, которую можно использовать для инициации соединения, ответ таков: нет, A не может подключиться.
Дженни Ди говорит восстановить Монику

Ответы:

26

iirc, telnet больше не устанавливается по умолчанию на машинах centos 6. если у вас нет таких инструментов, как telnetили ncдоступных, вы всегда можете поговорить с сетевым сокетом, используя python. (хотя не уверен, что это соответствует вашему «удобному» требованию ...)

просто проверить, можно ли установить соединение:

[gryphius@ut ~]$ python
Python 2.6.6 (r266:84292, Feb 22 2013, 00:00:18) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2                                                                                                                                                                                                                               
Type "help", "copyright", "credits" or "license" for more information.                                                                                                                                                                                                         
>>> import socket                                                                                                                                                                                                                                                              
>>> conn=socket.create_connection(('gmail-smtp-in.l.google.com',25))                                                                                                                                                                                                           

Если это не выдало ошибку, то соединение в порядке. Если вы также хотите проверить получение / отправку данных, вы можете продолжить так:

>>> input=conn.makefile()                                                                                                                                                                                                                                                      
>>> print input.readline()                                                                                                                                                                                                                                                     
220 mx.google.com ESMTP p2si6911139eeg.7 - gsmtp                                                                                                                                                                                                                               
>>> conn.sendall('HELO example.com\r\n')
>>> print input.readline()
250 mx.google.com at your service

>>> conn.sendall('QUIT')
>>> conn.close()
>>> 
Грифиус
источник
1
На самом деле это не удобно, но он сделал свою работу, когда ничего другого не было доступно. (Мне нужно было проверить, что gpsd публиковал на localhost: 2497 во встроенной системе: успех!)
Роберт Калхун
5

Метод, который я придумал:

$ ssh -f -N machineA -L 10123:machineB:123

$ telnet localhost 10123

Это не удалось, но я не был уверен, было ли это на самом деле диагностическим или нет. Проверив дальше, это действительно диагностическое.

Стив Беннетт
источник