简介
telnet 命令用于登录远程主机,是基于 Telnet 协议的远程登录程序,对远程主机进行管理。telnet 因为采用明文传送报文,安全性不好,很多 Linux 服务器都不开放 telnet 服务,而改用更安全的 ssh 方式了。但仍然有很多别的系统可能采用了 telnet 方式来提供远程登录,因此弄清楚 telnet 客户端的使用方式仍是很有必要的。
telnet 命令还可做别的用途,比如确定远程服务器的某个端口是否能访问。
此外,Telnet 协议是 TCP/IP 协议族中的一员,是 Internet 远程登陆服务的标准协议,属于应用层协议,基于 TCP 协议用于实现远程登录。
安装
安装telnet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| # 1、检测telnet-server的rpm包是否安装,若无输出内容,则表示没有安装。出于安全考虑telnet-server.rpm是默认没有安装的,而telnet的客户端是标配。即客户端软件是默认安装的。 [fenglepeng@centos]# rpm -qa telnet-server
# 2、若未安装,则安装telnet-server,否则忽略此步骤 [fenglepeng@centos]# yum install telnet-server1
# 3、检测telnet的rpm包是否安装 [fenglepeng@centos]# rpm -qa telnet telnet-0.17-47.el6_3.1.x86_6412
# 4、若未安装,则安装telnet,否则忽略此步骤 [fenglepeng@centos]# yum install telnet1
|
安装 xinetd 服务
由于 telnet 服务是由 xinetd 守护的,所以安装完 telnet-server,要启动 telnet 服务就必须重新启动 xinetd。
xinetd 即 extended internet daemon,xinetd 是新一代的网络守护进程服务程序,又叫超级 Internet 服务器。经常用来管理多种轻量级 Internet 服务。telnet 服务就是通过 xinetd 服务来管理的,所以在安装 telnet 服务之前需要先安装 xinetd 服务。
1 2 3 4 5 6 7 8 9 10
| # 1、首先查看是否安装xinetd服务 [fenglepeng@centos]# rpm -qa | grep xinetd1
# 2、若没有安装,使用yum命令进行安装 [fenglepeng@centos]# yum install -y xinetd
# 3、安装完成之后就可以启动了 [fenglepeng@centos]#service xinetd restart
|
注意点及错误的解决
更改配置文件 /etc/xinetd.d/telnet
若此文件不存在,则创建这个文件。将其中 disable=yes
改为 disable=no
或注释掉。即改为如下:
1 2 3 4 5 6 7 8 9 10 11 12 13
| # default: on # description: The telnet server serves telnet sessions; it uses \ # unencrypted username/password pairs for authentication. service telnet { flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure += USERID #disable = yes 【将disable=yes行前加#注释掉,或者把yes改为no】 }
|
使用root登录
telnet 默认的情况之下不允许 root 以 telnet 进入 Linux 主机,在普通用户telnet进入系统之后,在切换到root用户就可以使用root用户了。如果非要使用root登录,可以使用修改securetty文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| console vc/1 vc/2 vc/3 vc/4 vc/5 vc/6 vc/7 vc/8 vc/9 vc/10 vc/11 tty1 tty2 tty3 tty4 tty5 tty6 tty7 tty8 tty9 tty10 tty11 # below is added pts/1 pts/2 pts/3 pts/4 pts/5 pts/6 pts/7 pts/8 pts/9 pts/10 pts/11
|
增加 pts/1…pts/11
。
一般不建议直接用 root 用户远程通过 telnet 登陆系统,因为 telnet 在数据传输过程采用明文方式,如果数据包被人截获,将会很容易获取 root 用户的登陆口令;还是建议以普通用户通过 telnet 远程登陆,然后 su 到 root,这样相对比较安全。如果非要用root用户远程连接,建议采用SSH。
修改telnet端口
修改文件/etc/services将文件中
1 2 3 4
| ... telnet 23/tcp telnet 23/udp ...
|
修改为
1 2
| telnet 8902/tcp telnet 8902/udp
|
重启telnet服务即可。
语法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| netstat [-8EFKLacdfrx] [-X authtype] [-b hostalias] [-e escapechar] [-k realm] [-l user] [-n tracefile] [host [port]]
选项 -8:允许使用8位字符资料,包括输入与输出 -a:尝试自动登入远端系统; -b <hostalias>:使用别名指定远端主机名称 -c:不读取用户专属目录里的.telnetrc文件 -d:启动排错模式 -e <escapechar>:设置转义字符 -E:滤除转义字符 -f:此参数的效果和指定"-F"参数相同 -F:使用Kerberos V5认证时,加上此参数可把本地主机的认证数据上传到远端主机 -k <realm>:使用Kerberos认证时,加上此参数让远端主机采用指定的域名,而非该主机的域名去获取票据 -K:不自动登入远端主机 -l <user>:指定要登入远端主机的用户名称 -L:允许输出8位字符资料 -n <tracefile>:指定文件记录相关信息 -r:使用类似rlogin指令的用户界面 -x:假设主机有支持数据加密的功能,就使用它 -X <atype>:关闭指定的认证类型。
|
示例
登录主机。
telnet 192.168.0.5
确认远端服务器某个端口是否可用。比如查看远端服务器ssh服务的22号端口是否开放。
1 2 3 4 5
| [fenglepeng@centos7]# telnet 10.234.178.144 22 Trying 10.234.178.144... Connected to 10.234.178.144. Escape character is '^]'. SSH-2.0-OpenSSH_6.0
|
Telnet客户端命常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| auth <argument> [...]:查看和管理telnet登录身份验证方式。argument可取值:disable、enable和status close:关闭当前Telnet连接 display:使用 display 命令可以查看 Telnet 客户端的当前设置 logout:类似于cloase命令,用于关闭Telnet连接或者挂起。注:Telnet服务端可能不支持 open <host> [-l user] [[-] port]:建立到指定主机的Telnet连接 send <arguments>:使用send命令可以向Telnet服务器发送特定字符串。支持包括但不限于以下命令字符串: abort:终止服务命令 ao:Abort Output,放弃输出命令 ayt:Are you there命令 brk:Break命令 eof:发送End Of File字符 escape:发送当前的转义字符,初始为分组符^]。 ip:中断进程命令 synch:执行Telnet同步操作。 quit:退出 Telnet 客户端。 status:显示当前Telnet连接状态
|