说明

telnet既是一种通信协议,也是一个远程登录工具。
Telnet协议是TCP/IP协议家族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。
但是因为telnet是采用明文传送报文的,其安全性不好,因此现在很多Linux服务器都不开放telnet服务,而是改用更安全的SSH服务了。
当然,交换机等网络设备还是会采用telnet登录的方式。
telnet分为服务端和客户端,假设windows要通过telnet远程访问Linux,那么,linux上需要部署telnet-server,windows上要安装telnet客户端。

操作指令

cmd输入telnet,进入telnet操作端,可以执行下列指令
telnet操作 - 图1

  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 客户端。
  13. close 关闭当前连接
  14. logout 强制退出远程用户并关闭连接
  15. display 显示当前操作的参数
  16. mode 试图进入命令行方式或字符方式
  17. open 连接到某一站点
  18. quit 退出
  19. set 设置当前操作的参数
  20. unset 复位当前操作参数
  21. status 打印状态信息
  22. toggle 对操作参数进行开关转换
  23. slc 改变特殊字符的状态
  24. auth 打开/关闭确认功能z挂起
  25. telnetsend 发送特殊字符
  26. telnetenviron 更改环境变量?显示帮助信息

image.png

Linux配置telnet

  1. https://www.cnblogs.com/zuochuang/p/6511285.html
  2. https://blog.csdn.net/doubleqinyan/article/details/80492421
  3. https://blog.csdn.net/shun35/article/details/90701491

一、检查并安装telnet

  • 检查是否安装telnet-server

rpm -qa telnet-server
无输出表示telnet-server未安装,则执行下方语句进行安装
yum -y install telnet-server

  • 检查是否安装telnet(客户端)

rpm -qa telnet

正常情况下会输出
[root@dev09 xinetd.d]# rpm -qa telnet
telnet-0.17-64.el7.x86_64

无输出表示telnet未安装,则执行下方语句进行安装
yum -y install telnet

  • 也可直接全部安装

yum install xinetd telnet telnet-server -y

  • 启动telnet

systemctl start telnet.socket

二、配置telnet

  • 设置开机启动

chkconfig telnet on

  • 新增或修改配置文件

    vim /etc/xinetd.d/telnet ,并将disable改为no即可。 ```javascript

    default: on

    description: The telnet server serves telnet sessions; it uses \

    unencrypted username/password pairs for authentication.

    service telnet {

    1. disable = no
    2. flags = REUSE
    3. socket_type = stream
    4. wait = no
    5. user = root
    6. server = /usr/sbin/in.telnetd
    7. log_on_failure += USERID

}


<a name="d7Red"></a>
## 三、重新启动xinetd守护进程

telnet服务也是由xinetd守护的,所以安装完telnet-server后,需要重新启动xinetd守护进程。<br />service xinetd restart 或者 /etc/rc.d/init.d/xinetd restart

- 安装xinetd

出现下方情况为未安装xinetd<br />![](https://cdn.nlark.com/yuque/0/2020/png/623390/1604391017496-f6a0546c-13fc-4e01-9031-1297e73b7fb5.png#align=left&display=inline&height=76&margin=%5Bobject%20Object%5D&originHeight=76&originWidth=668&size=0&status=done&style=none&width=668)<br />需要安装,并重启xinetd<br />yum -y install xinetd <br />service xinetd restart



<a name="kpA6T"></a>
## 四、测试

- 查看tcp的23端口是否正常开启

netstat -tnl |grep 23 <br />正常情况下为<br />![](https://cdn.nlark.com/yuque/0/2020/png/623390/1604391171208-6c5cd2db-a70a-4bde-8d2f-eb75e534763d.png#align=left&display=inline&height=48&margin=%5Bobject%20Object%5D&originHeight=48&originWidth=845&size=0&status=done&style=none&width=845)

如果无输出说明未正常启动,需要新建或修改文件 vim /etc/xinetd.d/telnet ,并将disable改为no即可。

<a name="vKmW9"></a>
## 五、防火墙配置
如果想让外部机器通过telnet访问当前机器,需要开放防火墙中的23端口。
```javascript
iptables -I INPUT -p tcp --dport 23 -jACCEPT
iptables -I INPUT -p udp --dport 23 -jACCEPT
service iptables save //保存
service iptables restart //重启防火墙
  • 也可以直接把防火墙关掉

service iptables stop

六、允许远程以root用户登录

默认情况下Linux不允许root用户以telnet方式登录Linux主机,若要允许root用户登录可采用以下3中方法:

方法一:修改/etc/pam.d/login配置文件

RedHat Linux对于远程登录的限制体现在/etc/pam.d/login文件中,把限制内容注释即可。

[root@vm-rhel root]# cat /etc/pam.d/login
#%PAM-1.0
auth required pam_securetty.so
auth required pam_stack.so service=system-auth
#auth required pam_nologin.so
account required pam_stack.so service=system-auth
password required pam_stack.so service=system-auth
session required pam_stack.so service=system-auth
session optional pam_console.so

方法二:移除/etc/securetty文件夹

验证规则设置在/etc/securetty文件中,该文件定义了root用户只能在tty1-tty6的终端上记录,删除该文件或将其改名即可避开验证规则从而实现root用户以telnet方式远程登录Linux主机。
[root@vm-rhel root]# mv /etc/securetty /etc/securetty.bak

方法三:先用普通用户登录,然后切换到root用户(推荐)

[bboss@vm-rhel bboss]$ su root
Password:
[root@vm-rhel bboss]#

windows配置telnet客户端

http://www.192-168-1-1.net.cn/telnet.html

telnet操作 - 图3
telnet操作 - 图4

telnet操作 - 图5

执行连接linux操作

在cmb中,输入
telnet 192.168.208.11 23 # IP和端口之间有空格,端口不写时默认为23端口,连接成功会进入登录界面。

telnet操作 - 图6

输入用户名和密码(默认不能访问root用户),成功后如下所示
telnet操作 - 图7

退出按 ctrl+]或者ctrl+d,会从远程机器客户端返回到本地telnet操作端。
telnet操作 - 图8

输入quit,才能回到cmd操作端
telnet操作 - 图9