A veces tenemos que acceder a un servicio TCP remoto y sabemos (o creemos) que hay firewalls por medio. Es típico usar el comando telnet [host] [port] para hacer esta verificación.

A continuación un ejemplo típico de ‘charla’ con un servidor de email:

root@node:/var/log-> telnet host.server.com 25
Trying 10.22.7.3…
Connected to host.server.com.
Escape character is ‘^]’.
220 ****************************************************************************************************************************
helo srv-mailing
250 host.server.com Hello [10.28.14.12]
mail from:test@test.com
250 2.1.0 test@test.com….Sender OK
rcpt to:test@test.com
250 2.1.5 test@test.com
data
354 Start mail input; end with <CRLF>.<CRLF>
test
.

250 2.6.0 <MBX029xdTDr0000310b@host.server.com> Queued mail for delivery
quit
221 2.0.0 host.server.com Service closing transmission channel
Connection to host.server.com closed by foreign host.

Pero me he encontrado con máquinas donde tenía acceso con una cuenta de usuario que no tenía acceso al comando telnet. Pero que en cambio si que tenía el curl disponible. Podemos hace un telnet ‘curleado’ mediante:

albert@node:~> echo HELO foo | curl –data-ascii – telnet://host.server.com:25
220 host.server.com ESMTP Sendmail 8.13.1/8.13.1; Wed, 15 Sep 2010 10:25:50 -0400
250 host.server.com Hello 10.28.14.12, pleased to meet you