telnet, nc, socat

archlinux install telnet

1
pacman -S inetutils

telnet 退出

1
ctrl+] quit

nc

1
2
TCP: nc host port
UDP: nc -u host port (this does not seem to supported out of the box)

telent 发送 http get 请求

telnet www.wiloon.com 80

GET / HTTP/1.1

host: www.wiloon.com

Telnet 客户端命常用命令:

open : 使用 openhostname 可以建立到主机的 Telnet 连接。

close : 使用命令 close 命令可以关闭现有的 Telnet 连接。

display : 使用 display 命令可以查看 Telnet 客户端的当前设置。

send : 使用 send 命令可以向 Telnet 服务器发送命令。支持以下命令:

ao : 放弃输出命令。

ayt : “Are you there"命令。

esc : 发送当前的转义字符。

ip : 中断进程命令。

synch : 执行 Telnet 同步操作。

brk : 发送信号。

上表所列命令以外的其他命令都将以字符串的形式发送至 Telnet 服务器。例如,sendabcd 将发送字符串 abcd 至 Telnet 服务器,这样,Telnet 会话窗口中将出现该字符串。

quit

使用 quit 命令可以退出 Telnet 客户端。

telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了。但仍然有很多别的系统可能采用了telnet方式来提供远程登录

telnet 可以确定远程服务器的某个端口是否能访问。

Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法.

简介

它最初是由ARPANET开发的,但是现在它主要用于Internet会话。它的基本功能是,允许用户登录进入远程主机系统。起初,它只是让用户的本地计算机与远程计算机连接,从而成为远程主机的一个终端。它的一些较新的版本在本地执行更多的处理,于是可以提供更好的响应,并且减少了通过链路发送到远程主机的信息数量。

Telnet的应用不仅方便了我们进行远程登录,也给hacker们提供了又一种入侵手段和后门,但无论如何,在你尽情享受Telnet所带给你的便捷的同时,你是否真正的了解Telnet呢?

远程登录

Telnet服务虽然也属于客户机/服务器模型的服务,但它更大的意义在于实现了基于Telnet协议的远程登录 (远程交互式计算) ,那么就让我们来认识一下远程登录。

基本概念

先来看看什么叫登录: 分时系统允许多个用户同时使用一台计算机,为了保证系统的安全和记账方便,系统要求每个用户有单独的帐号作为登录标识,系统还为每个用户指定了一个口令。用户在使用该系统之前要输入标识和口令,这个过程被称为’登录’。远程登陆是指用户使用Telnet命令,使自己的计算机暂时成为远程主机的一个仿真终端的过程。仿真终端等效于一个非智能的机器,它只负责把用户输入的每个字符传递给主机,再将主机输出的每个信息回显在屏幕上。

产生和发展

我们可以先构想一个提供远程文字编辑的服务,这个服务的实现需要一个接受编辑文件请求和数据的服务器以及一个发送此请求的客户机。客户机将建立一个从本地机到服务器的TCP连接,当然这需要服务器的应答,然后向服务器发送键入的信息 (文件编辑信息) ,并读取从服务器返回的输出。以上便是一个标准而普通的客户机/服务器模型的服务。似乎有了客户机/服务器模型的服务,一切远程问题都可以解决了。然而实际并非你想象的那样简单,如果我们仅需要远程编辑文件,那么刚才所构想的服务完全可以胜任,但假如我们的要求并不是这么简单,我们还想实现远程用户管理,远程数据录入,远程系统维护,想实现一切可以在远程主机上实现的操作,那么我们将需要大量专用的服务器程序并为每一个可计算服务都使用一个服务器进程,随之而来的问题是: 远程机器会很快对服务器进程应接不暇,并淹没在进程的海洋里 (我们在这里排除最专业化的远程机器) 。那么有没有办法解决呢?当然有,我们可以用远程登录来解决这一切。我们允许用户在远地机器上建立一个登录会话,然后通过执行命令来实现更一般的服务,就像在本地操作一样。这样,我们便可以访问远地系统上所有可用的命令,并且系统设计员不需提供多个专用地服务器程序。问题发展到这里好像前途一片光明了,用远程登录总应该解决问题了吧,但要实现远程登陆并不简单。不考虑网络设计的计算机系统期望用户只从直接相连的键盘和显示器上登录,在这种机器上增加远程登陆功能需要修改机器的操作系统,这是极其艰巨也是我们尽量避免的。因此我们应该集中力量构造远程登陆服务器软件,虽然这样也是比较困难的。为什么说这样做也比较困难呢?举个例子来说: 一般,操作系统会为一些特殊按键分配特殊的含义,比如本地系统将’Ctrl+C’解释为: ‘终止当前运行的命令进程’。但假设我们已经运行了远程登陆服务器软件,‘Ctrl+C’也有可能无法被传送到远地机器,如果客户机真的将’Ctrl+C’传到了远地机器,那么’Ctrl+C’这个命令有可能不能终止本地的进程,也就是说在这里很可能会产生混乱。而且这仅仅是遇到的难题之一。但尽管有技术上的困难,系统编程人员还是设法构造了能够应用于大多数操作系统的远程登陆服务器软件,并构造了充当客户机的应用软件。通常,客户机软件取消了除一个键以外的所有键的本地解释,并将这些本地解释相应的转换成远地解释,这就使得客户机软件与远地机器的交互,就如同坐在远程主机面前一样,从而避免了上述所提到的混乱。而那个唯一例外的键,可以使用户回到本地环境。将远程登陆服务器设计为应用级软件,还有另一个要求,那就是需要操作系统提供对伪终端 (pseudo terminal) 的支持。我们用伪终端描述操作系统的入口点,它允许像Telnet服务器一样的程序向操作系统传送字符,并且使得字符像是来自本地键盘一样。只有使用这样的操作系统,才能将远程登陆服务器设计为应用级软件 (比如Telnet服务器软件) ,否则,本地操作系统和远地系统传送将不能识别从对方传送过来的信息 (因为它们仅能识别从本地键盘所键入的信息) ,远程登陆将宣告失败。将远程登陆服务器设计为应用级软件虽然有其显著的优点: 比将代码嵌入操作系统更易修改和控制服务器。但其也有效率不高的缺点 (后面的内容将会给予解释) ,好在用户键入信息的速率不高,这种设计还是可以接受的。

Telnet VS SSH

使用Telnet这个用来访问远程计算机的TCP/IP协议以控制你的网络设备相当于在离开某个建筑时大喊你的用户名和口令。很快会有人进行监听,并且他们会利用你安全意识的缺乏。传统的网络服务程序如: ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到"中间人” (man-in-the-middle) 这种方式的攻击。所谓"中间人"的攻击方式,就是"中间人"冒充真正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被"中间人"一转手做了手脚之后,就会出现很严重的问题。

SSH是替代Telnet和其他远程控制台管理应用程序的行业标准。SSH命令是加密的并以几种方式进行保密。

在使用SSH的时候,一个数字证书将认证客户端(你的工作站)和服务器(你的网络设备)之间的连接,并加密受保护的口令。SSH1使用RSA加密密钥,SSH2使用数字 (DSA) 密钥保护连接和认证。 加密算法包括Blowfish,数据加密标准 (DES),以及三重DES(3DES)。SSH保护并且有助于防止欺骗,“中间人"攻击,以及数据包监听。

通过使用SSH把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替telnet,又可以为ftp、pop、甚至ppp提供一个安全的"通道”。

http://bbs.chinaunix.net/thread-2163553-1-1.html

http://www.cnblogs.com/peida/archive/2013/03/13/2956992.html

win10/win11 telnet

设置> 应用> 程序和功能> 启用或关闭 Windows 功能> Telnet Client

https://jingyan.baidu.com/article/4d58d54119d4db9dd4e9c0aa.html

setting> Search> “turn windows features on or off"> Telnet Client