每天一个Linux命令(52)telnet命令
执行telnet指令开启终端机阶段作业,并登入远端主机。
(1)用法:
用法: telnet [参数] [主机]
(2)功能:
功能: telnet命令通常用来远程登录。
原理: Telnet服务虽然也属于客户机/服务器模型的服务,但它更大的意义在于实现了基于Telnet协议的远程登录(远程交互式计算)。
telnet实现的远程登录:
分时系统允许多个用户同时使用一台计算机,为了保证系统的安全和记帐方便,系统要求每个用户有单独的帐号作为登录标识,系统还为每个用户指定了一个口令。用户在使用该系统之前要输入标识和口令,这个过程被称为'登远程登陆是指用户使用Telnet命令,使自己的计算机暂时成为远程主机的一个仿真终端的过程。仿真终端等效于一个非智能的机器,它只负责把用户输入的每个字符传递给主机,再将主机输出的每个信息回显在屏幕上。
telnet的简介:
Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个 telnet会话,必须输入用户名和密码来登录服务器。
Telnet是常用的远程控制Web服务器的方法。但是,telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了。但仍然有很多别的系统可能采用了telnet方式来提供远程登录,因此弄清楚telnet客户端的使用方式仍是很有必要的。
telnet命令还可做别的用途,比如确定远程服务的状态,比如确定远程服务器的某个端口是否能访问。
(3)选项参数:
1) -8 允许使用8位字符资料,包括输入与输出。
2) -a 尝试自动登入远端系统。
3) -b<主机别名> 使用别名指定远端主机名称。
4) -c 不读取用户专属目录里的.telnetrc文件。
5) -d 启动排错模式。
6) -e<脱离字符> 设置脱离字符。
7) -E 滤除脱离字符。
8) -f 此参数的效果和指定"-F"参数相同。
9) -F 使用Kerberos V5认证时,加上此参数可把本地主机的认证数据上传到远端主机。
10) -k<域名> 使用Kerberos认证时,加上此参数让远端主机采用指定的领域名,而非该主机的域名。
11) -K 不自动登入远端主机。
12) -l<用户名称> 指定要登入远端主机的用户名称。
13) -L 允许输出8位字符资料。
14) -n<记录文件> 指定文件记录相关信息。
15) -r 使用类似rlogin指令的用户界面。
16) -S<服务类型> 设置telnet连线所需的IP TOS信息。
17) -x 假设主机有支持数据加密的功能,就使用它。
18) -X<认证形态> 关闭指定的认证形态。
(4)实例:
1)[root@localhost xinetd.d]# telnet localhost 23 连接本地的主机,端口号为23
[root@localhost xinetd.d]# telnet localhost
Trying ::...
Connected to localhost.
Escape character is '^]'. Kernel 3.10.-.el7.x86_64 on an x86_64
localhost login: sunjimeng
Password:
Last login: Sat Jun :: from ::ffff:192.168.142.128
[sunjimeng@localhost ~]$
2)用真实物理机win10连接虚拟机中的centOS:
在命令窗口cmd中输入:
C:\Users\JMSun>telnet 192.168.0.8
弹出另一个页面:(这是在win10下的页面,在这里可以自由操作centos,结果类似直接使用centos的终端。)

3)用telnet实现win10连接win7:
在用我自己的win10连接别人的win7系统前,我首先将win7的防火墙关闭,打开telnet服务。然后:
C:\Users\JMSun>ping 192.168.0.5 //这是win7机的IP,在这里先测试与它的连通性 正在 Ping 192.168.0.5 具有 字节的数据:
来自 192.168.0.5 的回复: 字节= 时间=62ms TTL=
来自 192.168.0.5 的回复: 字节= 时间=6ms TTL=
来自 192.168.0.5 的回复: 字节= 时间=4ms TTL=
来自 192.168.0.5 的回复: 字节= 时间=2ms TTL= 192.168.0.5 的 Ping 统计信息:
数据包: 已发送 = ,已接收 = ,丢失 = (% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 2ms,最长 = 62ms,平均 = 18ms C:\Users\JMSun>telnet 192.168.0.5
弹出页面:


在这里为了证明在登入和登出之后DOS操纵的不是同一台电脑,我用dir命令列出了它们各自目录F下的文件,明显不一样:

telnet可以实现任意非附属关系的拥有独立IP地址的主机之间的连接。
(5)其他:
1.学习此命令遇到的问题:
一.centOS7.0下的shell中出现下面的问题:
[root@localhost sunjimeng]# telnet
bash: telnet: 未找到命令...
解决方案:
1)安装telnet-server,telnet,xinted:
[root@localhost xinetd.d]# yum install telnet-server -y
已加载插件:fastestmirror, langpacks
base | 3.6 kB :
extras | 3.4 kB :
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=updates&infra=stock error was
: Timeout on http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=updates&infra=stock: (28, 'Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds')
updates | 3.4 kB :
updates//x86_64/primary_db | 4.9 MB ::
Loading mirror speeds from cached hostfile
* base: mirrors.yun-idc.com
* extras: mirror.lzu.edu.cn
* updates: mirror.lzu.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 telnet-server.x86_64.1.0.-.el7 将被 安装
--> 解决依赖关系完成 依赖关系解决 =========================================================================================================
Package 架构 版本 源 大小
=========================================================================================================
正在安装:
telnet-server x86_64 :0.17-.el7 base k 事务概要
=========================================================================================================
安装 软件包 总下载量: k
安装大小: k
Downloading packages:
警告:/var/cache/yum/x86_64//base/packages/telnet-server-0.17-.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
telnet-server-0.17-.el7.x86_64.rpm 的公钥尚未安装
telnet-server-0.17-.el7.x86_64.rpm | kB ::
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 检索密钥
导入 GPG key 0xF4A80EB5:
用户ID : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
指纹 : ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
软件包 : centos-release--1.1503.el7.centos.2.8.x86_64 (@anaconda)
来自 : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : :telnet-server-0.17-.el7.x86_64 /
验证中 : :telnet-server-0.17-.el7.x86_64 / 已安装:
telnet-server.x86_64 :0.17-.el7 完毕!
[root@localhost etc]# yum install xinetd -y
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.yun-idc.com
* extras: mirrors.sina.cn
* updates: mirrors.cug.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 xinetd.x86_64.2.2.3.15-.el7 将被 安装
--> 解决依赖关系完成 依赖关系解决 =========================================================================================================
Package 架构 版本 源 大小
=========================================================================================================
正在安装:
xinetd x86_64 :2.3.-.el7 base k 事务概要
=========================================================================================================
安装 软件包 总下载量: k
安装大小: k
Downloading packages:
xinetd-2.3.-.el7.x86_64.rpm | kB ::
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : :xinetd-2.3.-.el7.x86_64 /
验证中 : :xinetd-2.3.-.el7.x86_64 / 已安装:
xinetd.x86_64 :2.3.-.el7 完毕!
[root@localhost etc]# yum install telnet
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.yun-idc.com
* extras: mirrors.sina.cn
* updates: mirrors.cug.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 telnet.x86_64.1.0.-.el7 将被 安装
--> 解决依赖关系完成 依赖关系解决 ================================================================================
Package 架构 版本 源 大小
================================================================================
正在安装:
telnet x86_64 :0.17-.el7 base k 事务概要
================================================================================
安装 软件包 总下载量: k
安装大小: k
Is this ok [y/d/N]: y
Downloading packages:
telnet-0.17-.el7.x86_64.rpm | kB :
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : :telnet-0.17-.el7.x86_64 /
验证中 : :telnet-0.17-.el7.x86_64 / 已安装:
telnet.x86_64 :0.17-.el7 完毕!
2)将xinetd、telnet服务加入开机自启动:
[root@localhost etc]# systemctl enable xinetd.service
[root@localhost etc]# systemctl enable telnet.socket
ln -s '/usr/lib/systemd/system/telnet.socket' '/etc/systemd/system/sockets.target.wants/telnet.socket'
3)启动这两个服务:
[root@localhost etc]# systemctl start telnet.socket
[root@localhost etc]# systemctl start xinetd
二.我用win10的电脑和虚拟机中的centOS7.0想实现他们之间的通信,但是出现几个问题:
1)centOS虚拟机无法ping到物理机win10:
解决方法:关闭win10的防火墙;
2)centOS虚拟机能ping到物理机,物理机win10却无法ping到centOS虚拟机:
解决方法:将虚拟机的网络配置由NAT模式转向桥接模式。这里还涉及到桥接模式下的网络配置问题,以后讨论。
(NAT模式下主机与虚机之间不能互相ping通,因为虚拟机是靠主机的真实IP来访问互联网的,而桥接模式下虚拟机有自己独立的动态IP地址。)
3)centOS能够用telnet连接自身,却无法连接物理机win10:
解决方法:由于在win10系统中telnet的服务端被删去了(不安全性),只保留了客户端,所以要想达到目的,必须重新下载telnet.server程序并安装配置。在win10的打开或关闭windows功能里启动telnet客户端程序。并同时启动服务端(如果是win7系统则直接在windows功能选项中打开就行。)。
这里存在一个细节:如果你的win10账户不是本地账户而是Microsoft网络账户,则无法连接。需要新建一个本地账户:包括用户名,密码,和域名(domain name)。其中domain name不需要输入,默认为空。
而且在centOS连接到win10后会出现乱码问题,这个问题以后解决。(centOS采用UFT编码方式,而win10采用GB2312编码方式。)
4)centOS能够用telnet连接物理机win10,物理机却无法连接centOS,提示:

这是由于centOS并没有开放23的端口,我们需要用防火墙开启telnet的服务,并且开放指定端口:

在服务选项卡中开启telnet服务:

并且在端口选项卡中开启23号端口:

这里使用图形界面,也可以使用文本界面,后面会专门介绍一次Linux的防火墙。
2.去除telnet服务的开机自启功能:(为了安全着想)
[root@localhost sunjimeng]# systemctl disable telnet.socket
rm '/etc/systemd/system/sockets.target.wants/telnet.socket'
[root@localhost sunjimeng]# systemctl disable xinetd.service
rm '/etc/systemd/system/multi-user.target.wants/xinetd.service'
3.用netstat查看当前已经建立的tcp连接:
[root@localhost sunjimeng]# netstat -t
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 192.168.142.128: 192.168.142.128:telnet ESTABLISHED
tcp6 192.168.142.128:telnet 192.168.142.128: ESTABLISHED
4.什么是xinetd?
xinetd(extended internet daemon)是新一代的网络守护进程服务程序,又叫超级Internet服务器,常用来管理多种轻量级Internet服务。
xinetd提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全。
xinetd是一个daemon程序,所有结尾带d的程序都是daemon程序,也就是守护程序.
系统默认使用xinetd的服务可以分为如下几类。
① 标准Internet服务:telnet、ftp。
② 信息服务:finger、netstat、systat。
③ 邮件服务:imap、imaps、pop2、pop3、pops。
④ RPC服务:rquotad、rstatd、rusersd、sprayd、walld。
⑤ BSD服务:comsat、exec、login、ntalk、shell、talk。
⑥ 内部服务:chargen、daytime、echo、servers、services、time。
⑦ 安全服务:irc。
⑧ 其他服务:name、tftp、uucp。
具体可以使用xinetd的服务在/etc/services文件中指出。
启动和关闭xinetd服务:
service xinetd start
service xinetd stop
service xinetd restart
5.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 客户端。
每天一个Linux命令(52)telnet命令的更多相关文章
- 每天一个linux命令(45)--telnet命令
每天一个Linux命令,今天是网络命令中的Telnet. Telnet 命令通常用来远程登录,Telnet 程序是基于 Telnet 协议的远程登录客户端程序.Telnet 协议是TCP/IP协议族中 ...
- Linux学习之telnet命令
telnet命令通常用来远程登录,telnet程序是基于TELNET协议的远程登录客户端程序,Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式,它为用户 ...
- linux常用命令:telnet 命令
telnet命令通常用来远程登录.telnet程序是基于TELNET协议的远程登录客户端程序.Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式.它为用户 ...
- 每天一个linux命令(52)--wc命令
Linux 系统中的 wc(word count)命令的功能为统计指定文件中的字节数.字数.行数,并将统计结果显示输出 1.命令格式: wc [选项] 文件 2.命令功能: 统计指定文件中的字节数.字 ...
- Linux下,telnet命令如何退出
测试连接本地的memcached telnet 链接后是这样的: wangkongming@Vostro ~ $ telnet Trying 127.0.0.1... Connected to 127 ...
- linux下运行telnet命令出现command not find解决办法
原因是没有安装telnet客户端和服务(缺一不可) yum list telnet* 查看telnet相关的安装包yum install telnet-server 安装telnet服务yum i ...
- ping命令和telnet命令
1.检查能不能连接上远程主机 ping 主机ip 2.检查远程主机端口是不是开放 telnet 198.10.10.69 1521 Trying 198.10.10.69...Connected t ...
- 每天一个linux命令(58):telnet命令
telnet命令通常用来远程登录.telnet程序是基于TELNET协议的远程登录客户端程序.Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式.它为用户 ...
- 每天一个linux命令(50):telnet命令
telnet 命令通常用来远程登录.telnet程序是基于TELNET协议的远程登录客户端程序.Telnet协议是TCP/IP协议族中的一员,是 Internet远程登陆服务的标准协议和主要方式.它为 ...
随机推荐
- 【藏】使用Entity Framework时要注意的一些性能问题
这篇文章写的很好: http://diaosbook.com/Post/2012/12/9/performance-issue-in-select-one-or-few-colums-via-enti ...
- ORA-06519: 检测到活动的自治事务处理,已经回退
写了一个函数,由于在定义时加入了 create or replace function F_计算结果(In_参数 varchar2) return number is --使用自治事务PRAGMA A ...
- jvm(13)-线程安全与锁优化
[0]README 0.1)本文部分文字转自“深入理解jvm”, 旨在学习 线程安全与锁优化 的基础知识: 0.2)本文知识对于理解 java并发编程非常有用,个人觉得,所以我总结的很详细: [1]概 ...
- TypeError: write() argument must be str, not bytes
w文件打开以 '二进制' 方式: with open('teacher.html','wb+') as f: f.write(response.body) 要写入"中文",防止乱 ...
- 如何修改vs2005/vs2010的tfs的登录名和密码 .
如何修改vs2005/vs2010的tfs的登录名和密码 . 连接TFS时,如果本机保存了用户的网络密码,不会出现用户名和密码的输入框,若要更换TFS的用户名和密码,需按以下步骤操作: 控制面板--- ...
- jmeter对响应结果做正则、json、xpath结果测试
上面的返回结果可用于关联取值测试 具体用法详见http://www.cnblogs.com/xinjing-jingxin/p/8554338.html http://goessner.net/art ...
- 错误命令“if not exist "\Dll" mkdir "\Dll" xcopy "\bin\Debug\*.*" "F:\647\VS项目\EtrolMes2014SY\Framework\Dll" /e /i /y”已退出,代码为 9009
分析错误 第一步:观察错误,发现plugin文件夹中未生成对应的编译文件. 第二步:XCOPY命令无法执行,百度xcopy为何无法执行 第三步,搜索,发现环境变量未配置正确. 就是环境变量path(大 ...
- Youth Is Not a Time of Life
Youth is not a time of life; it is a state of mind.青春不是年华,而是心境: It is not a matter of rosy cheeks, r ...
- 【BZOJ1997】[Hnoi2010]Planar 2-SAT
[BZOJ1997][Hnoi2010]Planar Description Input Output Sample Input 2 6 9 1 4 1 5 1 6 2 4 2 5 2 6 3 4 3 ...
- 《从零开始学Swift》学习笔记(Day 52)——Cocoa错误处理模式
原创文章,欢迎转载.转载请注明:关东升的博客 Swift错误处理模式,在Swift 1.x和Swift 2.0是不同的两种模式. Swift 1.x代码错误处理模式采用Cocoa框架错误处理模式,到现 ...