Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 593|回复: 0

[默认分类] 每天一个Linux命令(52)telnet命令

[复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-6-23 11:07:37 | 显示全部楼层 |阅读模式
        执行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

    1. [root@localhost xinetd.d]# telnet localhost 23
    2. Trying ::1...
    3. Connected to localhost.
    4. Escape character is "^]".
    5. Kernel 3.10.0-229.el7.x86_64 on an x86_64
    6. localhost login: sunjimeng
    7. Password:
    8. Last login: Sat Jun 18 18:29:24 from ::ffff:192.168.142.128
    9. [sunjimeng@localhost ~]$
    复制代码


        2)用真实物理机win10连接虚拟机中的centOS:
        在命令窗口cmd中输入:

    1. C:\Users\JMSun>telnet 192.168.0.8
    复制代码


        弹出另一个页面:(这是在win10下的页面,在这里可以自由操作centos,结果类似直接使用centos的终端。)

          3)用telnet实现win10连接win7:   
          在用我自己的win10连接别人的win7系统前,我首先将win7的防火墙关闭,打开telnet服务。然后:

    1. C:\Users\JMSun>ping 192.168.0.5    //这是win7机的IP,在这里先测试与它的连通性
    2. 正在 Ping 192.168.0.5 具有 32 字节的数据:
    3. 来自 192.168.0.5 的回复: 字节=32 时间=62ms TTL=128
    4. 来自 192.168.0.5 的回复: 字节=32 时间=6ms TTL=128
    5. 来自 192.168.0.5 的回复: 字节=32 时间=4ms TTL=128
    6. 来自 192.168.0.5 的回复: 字节=32 时间=2ms TTL=128
    7. 192.168.0.5 的 Ping 统计信息:
    8.     数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
    9. 往返行程的估计时间(以毫秒为单位):
    10.     最短 = 2ms,最长 = 62ms,平均 = 18ms
    11. C:\Users\JMSun>telnet 192.168.0.5
    复制代码


         弹出页面:


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

          telnet可以实现任意非附属关系的拥有独立IP地址的主机之间的连接。
      
        (5)其他:
        1.学习此命令遇到的问题:
        一.centOS7.0下的shell中出现下面的问题:

    1. [root@localhost sunjimeng]# telnet
    2. bash: telnet: 未找到命令...
    复制代码


        解决方案:
        1)安装telnet-server,telnet,xinted:


    1. [root@localhost xinetd.d]# yum install telnet-server -y
    2. 已加载插件:fastestmirror, langpacks
    3. base                                                     | 3.6 kB     00:00     
    4. extras                                                   | 3.4 kB     00:00     
    5. Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=updates&infra=stock error was
    6. 12: 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")
    7. updates                                                  | 3.4 kB     00:00     
    8. updates/7/x86_64/primary_db                                                       | 4.9 MB  00:00:25     
    9. Loading mirror speeds from cached hostfile
    10. * base: mirrors.yun-idc.com
    11. * extras: mirror.lzu.edu.cn
    12. * updates: mirror.lzu.edu.cn
    13. 正在解决依赖关系
    14. --> 正在检查事务
    15. ---> 软件包 telnet-server.x86_64.1.0.17-59.el7 将被 安装
    16. --> 解决依赖关系完成
    17. 依赖关系解决
    18. =========================================================================================================
    19. Package                     架构                 版本                          源                  大小
    20. =========================================================================================================
    21. 正在安装:
    22. telnet-server               x86_64               1:0.17-59.el7                 base                40 k
    23. 事务概要
    24. =========================================================================================================
    25. 安装  1 软件包
    26. 总下载量:40 k
    27. 安装大小:55 k
    28. Downloading packages:
    29. 警告:/var/cache/yum/x86_64/7/base/packages/telnet-server-0.17-59.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
    30. telnet-server-0.17-59.el7.x86_64.rpm 的公钥尚未安装
    31. telnet-server-0.17-59.el7.x86_64.rpm                                              |  40 kB  00:00:04     
    32. 从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 检索密钥
    33. 导入 GPG key 0xF4A80EB5:
    34. 用户ID     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
    35. 指纹       : 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
    36. 软件包     : centos-release-7-1.1503.el7.centos.2.8.x86_64 (@anaconda)
    37. 来自       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    38. Running transaction check
    39. Running transaction test
    40. Transaction test succeeded
    41. Running transaction
    42.   正在安装    : 1:telnet-server-0.17-59.el7.x86_64                                                   1/1
    43.   验证中      : 1:telnet-server-0.17-59.el7.x86_64                                                   1/1
    44. 已安装:
    45.   telnet-server.x86_64 1:0.17-59.el7                                                                     
    46. 完毕!
    复制代码



    1. [root@localhost etc]# yum install xinetd -y
    2. 已加载插件:fastestmirror, langpacks
    3. Loading mirror speeds from cached hostfile
    4. * base: mirrors.yun-idc.com
    5. * extras: mirrors.sina.cn
    6. * updates: mirrors.cug.edu.cn
    7. 正在解决依赖关系
    8. --> 正在检查事务
    9. ---> 软件包 xinetd.x86_64.2.2.3.15-12.el7 将被 安装
    10. --> 解决依赖关系完成
    11. 依赖关系解决
    12. =========================================================================================================
    13. Package               架构                  版本                              源                   大小
    14. =========================================================================================================
    15. 正在安装:
    16. xinetd                x86_64                2:2.3.15-12.el7                   base                128 k
    17. 事务概要
    18. =========================================================================================================
    19. 安装  1 软件包
    20. 总下载量:128 k
    21. 安装大小:261 k
    22. Downloading packages:
    23. xinetd-2.3.15-12.el7.x86_64.rpm                                                   | 128 kB  00:00:00     
    24. Running transaction check
    25. Running transaction test
    26. Transaction test succeeded
    27. Running transaction
    28.   正在安装    : 2:xinetd-2.3.15-12.el7.x86_64                                                        1/1
    29.   验证中      : 2:xinetd-2.3.15-12.el7.x86_64                                                        1/1
    30. 已安装:
    31.   xinetd.x86_64 2:2.3.15-12.el7                                                                          
    32. 完毕!
    复制代码



    1. [root@localhost etc]# yum install telnet
    2. 已加载插件:fastestmirror, langpacks
    3. Loading mirror speeds from cached hostfile
    4. * base: mirrors.yun-idc.com
    5. * extras: mirrors.sina.cn
    6. * updates: mirrors.cug.edu.cn
    7. 正在解决依赖关系
    8. --> 正在检查事务
    9. ---> 软件包 telnet.x86_64.1.0.17-59.el7 将被 安装
    10. --> 解决依赖关系完成
    11. 依赖关系解决
    12. ================================================================================
    13. Package          架构             版本                    源              大小
    14. ================================================================================
    15. 正在安装:
    16. telnet           x86_64           1:0.17-59.el7           base            63 k
    17. 事务概要
    18. ================================================================================
    19. 安装  1 软件包
    20. 总下载量:63 k
    21. 安装大小:113 k
    22. Is this ok [y/d/N]: y
    23. Downloading packages:
    24. telnet-0.17-59.el7.x86_64.rpm                              |  63 kB   00:00     
    25. Running transaction check
    26. Running transaction test
    27. Transaction test succeeded
    28. Running transaction
    29.   正在安装    : 1:telnet-0.17-59.el7.x86_64                                 1/1
    30.   验证中      : 1:telnet-0.17-59.el7.x86_64                                 1/1
    31. 已安装:
    32.   telnet.x86_64 1:0.17-59.el7                                                   
    33. 完毕!
    复制代码


          2)将xinetd、telnet服务加入开机自启动:

    1. [root@localhost etc]# systemctl enable xinetd.service
    2. [root@localhost etc]# systemctl enable telnet.socket
    3. ln -s "/usr/lib/systemd/system/telnet.socket" "/etc/systemd/system/sockets.target.wants/telnet.socket"
    复制代码


          3)启动这两个服务:

    1. [root@localhost etc]# systemctl start telnet.socket
    2. [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服务的开机自启功能:(为了安全着想)

    1. [root@localhost sunjimeng]# systemctl disable telnet.socket
    2. rm "/etc/systemd/system/sockets.target.wants/telnet.socket"
    3. [root@localhost sunjimeng]# systemctl disable xinetd.service
    4. rm "/etc/systemd/system/multi-user.target.wants/xinetd.service"
    复制代码


       3.用netstat查看当前已经建立的tcp连接:

    1. [root@localhost sunjimeng]# netstat -t
    2. Active Internet connections (w/o servers)
    3. Proto Recv-Q Send-Q Local Address           Foreign Address         State      
    4. tcp        0      0 192.168.142.128:42193   192.168.142.128:telnet  ESTABLISHED
    5. tcp6       0      0 192.168.142.128:telnet  192.168.142.128:42193   ESTABLISHED
    复制代码


        4.什么是xinetd?
          xinetd(extended internet daemon)是新一代的网络守护进程服务程序,又叫超级Internet服务器,常用来管理多种轻量级Internet服务。
          xinetd提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全。  
          xinetd是一个daemon程序,所有结尾带d的程序都是daemon程序,也就是守护程序.
         系统默认使用xinetd的服务可以分为如下几类。


    1. ① 标准Internet服务:telnet、ftp。
    2. ② 信息服务:finger、netstat、systat。
    3. ③ 邮件服务:imap、imaps、pop2、pop3、pops。
    4. ④ RPC服务:rquotad、rstatd、rusersd、sprayd、walld。
    5. ⑤ BSD服务:comsat、exec、login、ntalk、shell、talk。
    6. ⑥ 内部服务:chargen、daytime、echo、servers、services、time。
    7. ⑦ 安全服务:irc。
    8. ⑧ 其他服务:name、tftp、uucp。
    复制代码


        具体可以使用xinetd的服务在/etc/services文件中指出。
        启动和关闭xinetd服务:

    1. service xinetd start
    2. service xinetd stop
    3. service xinetd restart
    复制代码


        5.Telnet 客户端命常用命令:

    1. open : 使用 openhostname 可以建立到主机的 Telnet 连接。
    2. close : 使用命令 close 命令可以关闭现有的 Telnet 连接。
    3. display : 使用 display 命令可以查看 Telnet 客户端的当前设置。
    4. send : 使用 send 命令可以向 Telnet 服务器发送命令。支持以下命令:
    5. ao : 放弃输出命令。
    6. ayt : “Are you there”命令。
    7. esc : 发送当前的转义字符。
    8. ip : 中断进程命令。
    9. synch : 执行 Telnet 同步操作。
    10. brk : 发送信号。
    11.  上表所列命令以外的其他命令都将以字符串的形式发送至 Telnet 服务器。例如,sendabcd 将发送字符串 abcd 至 Telnet 服务器,这样,Telnet 会话窗口中将出现该字符串。
    12. quit :使用 quit 命令可以退出 Telnet 客户端。
    复制代码


    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-4-19 17:56 , Processed in 0.390605 second(s), 46 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表