本文自转载:http://codingstandards.iteye.com/blog/835485
用途说明
telnet命令通常用来远程登录。telnet程序是基于TELNET协议的远程登录客户端程序,最新的TELNET协议版本是RFC854。Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的 能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接 在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个 telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。
但是,telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了。但仍然有很多别的系统可能采用了telnet方式来提供远程登录,因此弄清楚telnet客户端的使用方式仍是很有必要的。
telnet命令还可做别的用途,比如确定远程服务的状态,比如确定远程服务器的某个端口是否能访问。
常用参数
格式:telnet hostname
远程登录到hostname指定的机器,采用默认端口23。
格式:telnet hostname port
远程登录到hostname指定的机器,采用端口port。
在连接成功之后的使用过程中,还可以使用Ctrl+]来进入命令模式。
help 帮助
q 退出,关闭telnet连接。
使用示例
示例一 远程服务器无法访问的情形
[root@new55 ~]# telnet 192.168.6.6
Trying 192.168.6.6...
telnet: connect to address 192.168.6.6: No route to host
telnet: Unable to connect to remote host: No route to host
[root@new55 ~]#
怎么处理这种情况:
(1)确认ip地址是否正确?
(2)确认ip地址对应的主机是否已经开机?
(3)如果主机已经启动,确认路由设置是否设置正确?(使用route命令查看)
(4)如果主机已经启动,确认主机上是否开启了telnet服务?(使用netstat命令查看,TCP的23端口是否有LISTEN状态的行)
(5)如果主机已经启动telnet服务,确认防火墙是否放开了23端口的访问?(使用iptables-save查看)
示例二 域名无法解析的情形
[root@new55 ~]# telnet www.11111.com
www.11111.com/telnet: Name or service not known
[root@new55 ~]#
怎么处理这种情况:
(1)确认域名是否正确?
(2)确认本机的域名解析有关的设置是否正确?(/etc/resolv.conf中nameserver的设置是否正确,如果没有,可以使用nameserver 8.8.8.8)
(3)确认防火墙是否放开了UDP53端口的访问?(DNS使用UDP协议,端口53,使用iptables-save查看)
示例三 目标主机没有开启telnet服务的情形
[root@new55 ~]# telnet www.163.com
Trying 58.242.249.26...
telnet: connect to address 58.242.249.26: Connection refused
telnet: Unable to connect to remote host: Connection refused
[root@new55 ~]#
怎么处理这种情况:
(1)确认ip地址或者主机名是否正确?
(2)确认端口是否正确,是否默认的23端口?
示例四 怎样启动telnet服务?(不推荐开放telnet服务,要使用更安全的ssh服务)
启动telnet服务的步骤:
(1)到 /etc/xinetd.d 下打开 telnet 文件,将其中的 disable = yes 改成 disable = no,保存。
(2)重新启动xinetd服务:service xinetd restart
这样就可以允许非root用户从远程访问了。注意:root账号不允许登录。
示例五 正常telnet的情形
一般情况下不允许root从远程登录,可以先用普通账号登录,然后再用su -切到root用户。
[root@new55 ~]# telnet 192.168.6.115
Trying 192.168.6.115...
Connected to 192.168.6.115 (192.168.6.115).
Escape character is '^]'.
Red Hat Linux release 7.3 (Valhalla)
Kernel 2.4.18-3 on an i686
login: root
Password:
Login incorrect
login: root
Password:
Login incorrect
login: web
Password:
[web@localhost web]$
[web@localhost web]$
[web@localhost web]$ su -
Password:
[root@localhost root]#
[root@localhost root]#
[root@localhost root]#
[root@localhost root]# exit
logout
[web@localhost web]$
[web@localhost web]$
[web@localhost web]$ exit
logout
Connection closed by foreign host.
[root@new55 ~]#
示例六 使用telnet来测试web服务器
[root@new55 ~]# telnet www.163.com 80
Trying 58.242.249.26...
Connected to www.163.com (58.242.249.26).
Escape character is '^]'.
GET / HTTP/1.0
HTTP/1.0 403 Forbidden
Server: Cdn Cache Server V2.0
Date: Tue, 07 Dec 2010 04:46:12 GMT
Content-Type: text/html
Content-Length: 1156
Expires: Tue, 07 Dec 2010 04:46:12 GMT
X-Via: 1.0 hf44:8104 (Cdn Cache Server V2.0)
Connection: close
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<TITLE>错误:您所请求的网址(URL)无法获取</TITLE>
<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
</HEAD><BODY>
<H1>错误</H1>
<H2>您所请求的网址(URL)无法获取</H2>
<HR noshade size="1px">
<P>
当尝试读取以下网址(URL)时:
<A HREF="http://58.242.249.44/">http://58.242.249.44/</A>
<P>
发生了下列的错误:
<UL>
<LI>
<STRONG>
Access Denied.
<BR>拒绝访问
</STRONG>
<P>
Access control configuration prevents your request from
being allowed at this time. Please contact your service provider if
you feel this is incorrect.
<BR>
当前的存取控制设定禁止您的请求被接受,
如果您觉得这是错误的,请与您网路服务的提供者联系。
</UL>
</P>
<P>本缓存服务器管理员:<A HREF="mailto:cdnsupport@chinanetcenter.com">cdnsupport@chinanetcenter.com</A>
<BR clear="all">
<HR noshade size="1px">
<ADDRESS>
Generated Tue, 07 Dec 2010 04:46:12 GMT by cache.51cdn.com (Cdn Cache Server V2.0)
</ADDRESS>
</BODY></HTML>
Connection closed by foreign host.
[root@new55 ~]# telnet www.163.com 80
Trying 58.242.249.26...
Connected to www.163.com (58.242.249.26).
Escape character is '^]'.
GET / HTTP/1.0
Host: www.163.com
这里会输出响应头和首页html文本,省略。
[root@new55 ~]#
示例七 进入telnet命令模式
[root@new55 ~]# telnet 192.168.6.115
Trying 192.168.6.115...
Connected to 192.168.6.115 (192.168.6.115).
Escape character is '^]'.
Red Hat Linux release 7.3 (Valhalla)
Kernel 2.4.18-3 on an i686
login: web
Password:
Last login: Tue Oct 19 21:53:15 from 192.168.6.55
[web@localhost web]$
[web@localhost web]$
[web@localhost web]$
[web@localhost web]$ Ctrl+]
telnet> help
Commands may be abbreviated. Commands are:
close close current connection
logout forcibly logout remote user and close the connection
display display operating parameters
mode try to enter line or character mode ('mode ?' for more)
open connect to a site
quit exit telnet
send transmit special characters ('send ?' for more)
set set operating parameters ('set ?' for more)
unset unset operating parameters ('unset ?' for more)
status print status information
toggle toggle operating parameters ('toggle ?' for more)
slc change state of special charaters ('slc ?' for more)
auth turn on (off) authentication ('auth ?' for more)
encrypt turn on (off) encryption ('encrypt ?' for more)
forward turn on (off) credential forwarding ('forward ?' for more)
z suspend telnet
! invoke a subshell
environ change environment variables ('environ ?' for more)
? print help information
telnet> display
will flush output when sending interrupt characters.
won't send interrupt characters in urgent mode.
won't send login name and/or authentication information.
won't skip reading of ~/.telnetrc file.
won't map carriage return on output.
will recognize certain control characters.
won't turn on socket level debugging.
won't print hexadecimal representation of network traffic.
won't print user readable output for "netdata".
won't show option processing.
won't print hexadecimal representation of terminal traffic.
echo [^E]
escape [^]]
rlogin [off]
tracefile "(standard output)"
flushoutput [^O]
interrupt [^C]
quit [^\]
eof [^D]
erase [^?]
kill [^U]
lnext [^V]
susp [^Z]
reprint [^R]
worderase [^W]
start [^Q]
stop [^S]
forw1 [off]
forw2 [off]
ayt [^T]
DO ECHO
resp WILL_WONT ECHO: 1
want WONT ECHO
DO SUPPRESS GO AHEAD
DO STATUS
WILL TERMINAL TYPE
WILL NAWS
WILL TSPEED
WILL LFLOW
resp WILL_WONT XDISPLOC: 1
want WONT XDISPLOC
WILL NEW-ENVIRON
[web@localhost web]$
[web@localhost web]$
[web@localhost web]$ Ctrl+]
telnet> q
Connection closed.
[root@new55 ~]#
问题思考
相关资料
【1】百度百科 Telnet
【2】维基百科 Telnet英文词条 Telnet中文词条
【3】RFC854 Telnet Protocol Specification
【4】鸟哥的Linux私房菜 Telnet 伺服器
相关推荐
本文旨在探讨如何运用Visual C++(简称VC)实现基于Telnet协议的远程访问功能,通过详细解读Telnet协议的工作原理、客户端与服务器配置,以及核心代码实现,为读者提供全面的指导。 #### Telnet协议详解 Telnet...
根据给定文件的信息,本文将深入探讨TELNET协议的基本原理及其具体实现方法。TELNET协议是一种广泛应用在互联网上的协议,特别是在使用Unix操作系统的环境中。它主要用于实现不同系统之间的远程登录功能,使用户能够...
Telnet 是一个基于 TCP/IP 协议族的远程登陆服务协议,允许用户在本地计算机上远程控制服务器。Telnet 协议使用 TCP 端口 23 作为默认端口,用户可以通过 Telnet 客户端程序连接到服务器,输入用户名和密码以登录...
telnet协议基于TCP/IP协议栈,工作在应用层(OSI模型的第7层),标准端口号为23。它提供了一个交互式的文本界面,使得用户可以在本地计算机上输入命令,然后这些命令会被发送到远程主机执行,返回的结果也会显示在...
此工具允许用户通过telnet协议安全地远程连接到其他设备,如服务器、路由器或交换机,进行配置、故障排查和日常维护工作。 telnet是一个基于TCP/IP协议族的网络协议,它提供了在不同网络之间建立终端仿真会话的能力...
telnet协议基于TCP/IP协议族,使用端口号23。当客户端发起telnet连接请求时,它会向服务器的23号端口发送数据,服务器接收到请求后,建立一个会话并返回响应。此后,客户端和服务器之间就可以进行双向通信,实现命令...
Telnet虽然作为一种远程登录工具在早期网络应用中广泛使用,但目前由于安全性和效率的问题,已逐渐被SSH(Secure Shell)协议所取代。SSH提供了更安全的加密连接,能够有效防止中间人攻击和数据窃听,成为了远程管理...
远程登录,通常指的是网络中的一个计算机系统(客户端)通过网络协议,如SSH(Secure Shell)或Telnet,访问并控制另一台计算机(服务器)。这种方式极大地扩展了系统管理员的工作范围,使他们无需实际到达现场即可...
1. **Telnet协议**:Telnet协议定义了客户端和服务器之间的通信格式,使得用户可以在本地计算机上输入命令,而这些命令会在远程主机上执行,如同直接在远程主机上操作一样。 2. **远程登录**:通过telnet,用户可以...
Telnet是一种基于TCP协议的应用层协议,用于提供远程登录服务。用户可以通过telnet客户端连接到远程主机,就像是坐在那台主机前直接操作一样。然而,由于telnet传输的数据是明文的,不安全性较高,现在已经被更安全...
PuTTY是一款广受欢迎的免费开源软件,主要用于在Windows操作系统上通过SSH(Secure Shell)和Telnet协议进行远程登录和控制。这款工具提供了安全的网络连接,使得用户可以在本地计算机上通过加密的方式访问远程...
Telnet是一种网络协议,它允许用户通过Internet远程登录到另一台计算机,从而在远程系统上执行命令或操作。这个协议基于TCP/IP模型,使用端口号23,使得用户可以像坐在本地计算机前一样操作远程主机。在C++中实现...
1. **定义**:Telnet协议是Internet上的一个标准协议,基于TCP/IP模型,工作在应用层,主要用途是提供一个在不同操作系统之间进行远程登录的机制。 2. **工作原理**:用户通过本地计算机上的Telnet客户端连接到远程...
PuTTY是一款广受欢迎的免费开源远程登录工具,主要用于连接到基于网络的服务器,尤其是支持SSH(Secure Shell)协议的服务器。这款工具以其简洁易用的界面和强大的功能,在IT行业中得到了广泛应用。 首先,PuTTY的...
Telnet协议是一种网络协议,允许用户通过网络连接到远程主机并执行命令,类似于SSH(Secure Shell)但不提供加密和安全性的保障。Apache Commons Net库提供了对Telnet协议的支持,使得开发者可以用Java方便地创建...
本项目基于STM32F107微控制器,结合以太网通信模块和触摸屏,实现了一款名为“神舟IV号”的智能设备,该设备支持通过Telnet协议进行远程登录和控制,为用户提供了高效、便捷的设备管理方式。在STM32F107系列中,STM...
1. **Telnet协议**:Telnet基于TCP/IP协议族,运行在传输层,使用端口号23。它定义了两个通信设备如何交换信息,包括数据格式、错误处理和交互控制。 2. **使用步骤**: - 安装 Telnet 客户端:在某些操作系统(如...
telnet的工作原理基于TCP/IP协议,它创建一个从本地计算机到远程服务器的连接,通过这个连接,用户的键盘输入会被发送到远程服务器,而服务器的输出则会显示在本地计算机上。它使用端口23进行通信,这是一个标准的...
远程登录(Remote Login)基于网络协议,如TCP/IP,使得用户可以访问位于不同地理位置的计算机系统。最著名的远程登录协议是Telnet和SSH(Secure Shell)。Telnet由于其数据传输未加密,现在已较少使用,而SSH因其...