telnet

###Telnet是一款功能全面的端口测试工具,常用于网络管理和服务器调试。

###Telnet 与ssh 都是常用的远程控制Web服务器的方法。

### Telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放Telnet服务,而改用更安全的ssh方式了。但仍然有很多别的系统可能采用了Telnet方式来提供远程登录

###作用:
确定远程服务的状态
确定远程服务器的某个端口是否能访问。

###Windows 安装 Telnet
### 命令行
$ dism /online /Enable-Feature /FeatureName:TelnetClient
###可视化安装
1打开 控制面板 > 程序 > 启用或关闭 Windows功能。
2勾选 Telnet 客户端 选项。

###linux 安装 Telnet
###Centos 7
# 安装 Telnet
yum install -y telnet* (主要是telnet与telnet-server)

yum install -y xinetd  (必须安装,否则服务端无法运行)
# 设置开机启动
systemctl enable xinetd.service
systemctl enable telnet.socket
# 启动该服务
systemctl start telnet.socket
systemctl start xinetd
# 开放默认端口
firewall-cmd --permanent --add-port=23/tcp
firewall-cmd --reload
# 查看 Telnet 安装版本
yum list | grep telnet

### Ubuntu 20.x
sudo apt-get -install telnet

###测试  不能直接用root用户登录,否则不通过 ,退出使用ctrl+D即可
[root@VM-4-12-centos ~]# telnet 127.0.0.1
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

Kernel 3.10.0-1160.71.1.el7.x86_64 on an x86_64
VM-4-12-centos login: root
Password: 
Login incorrect

VM-4-12-centos login: chris
Password: 
Last login: Wed Apr 26 18:24:52 from ::ffff:223.88.142.0
[chris@VM-4-12-centos ~]$

Telnet 客户端命常用命令 (ctrl+]进入客户端命令行)

- open 使用 openhostname 可以建立到主机的 Telnet 连接。
- close 使用命令 close 命令可以关闭现有的 Telnet 连接。
- display 使用 display 命令可以查看 Telnet 客户端的当前设置。
- send 使用 send 命令可以向 Telnet 服务器发送命令。支持以下命令:
- ao 放弃输出命令。
- ayt “Are you there”命令。
- esc 发送当前的转义字符。
- ip 中断进程命令。
- synch 执行 Telnet 同步操作。
- brk 发送信号。
- quit 使用 quit 命令可以退出 Telnet 客户端。

Windows 参数释义

C:\Users\mobai>telnet /?

telnet [-a][-e escape char][-f log file][-l user][-t term][host [port]]
 -a      企图自动登录。除了用当前已登陆的用户名以外,与 -l 选项相同。
 -e      跳过字符来进入 telnet 客户端提示。
 -f      客户端登录的文件名
 -l      指定远程系统上登录用的用户名。
         要求远程系统支持 TELNET ENVIRON 选项。
 -t      指定终端类型。
         支持的终端类型仅是: vt100, vt52, ansi 和 vtnt。
 host    指定要连接的远程计算机的主机名或 IP 地址。
 port    指定端口号或服务名。

Linux参数释义:

-8 允许使用8位字符资料,包括输入与输出。
-a 尝试自动登入远端系统。
-b <主机别名> 使用别名指定远端主机名称。
-c 不读取用户专属目录里的.telnetrc文件。
-d 启动排错模式。
-e <脱离字符> 设置脱离字符。
-E 滤除脱离字符。
-f 此参数的效果和指定"-F"参数相同。
-F 使用Kerberos V5认证时,加上此参数可把本地主机的认证数据上传到远端主机。
-k <域名> 使用Kerberos认证时,加上此参数让远端主机采用指定的领域名,而非该主机的域名。
-K 不自动登入远端主机。
-l <用户名称> 指定要登入远端主机的用户名称。
-L 允许输出8位字符资料。
-n <记录文件> 指定文件记录相关信息。
-r 使用类似rlogin指令的用户界面。
-S <服务类型> 设置telnet连线所需的IP TOS信息。
-x 假设主机有支持数据加密的功能,就使用它。
-X <认证形态> 关闭指定的认证形态。

检查域名是否可以解析

##确认本机的域名解析有关的设置是否正确(/etc/resolv.conf中nameserver的设置是否正确,如果没有,可以设置 nameserver 8.8.8.8)


###确认防火墙是否放开了UDP53端口的访问(DNS使用UDP协议,端口53,使用firewall-cmd查看)

telnet失败解决办法

### 1.查看默认端口23是否有运行
[root@VM-4-12-centos ~]# netstat -tnl|grep 23  ##较推荐
tcp6       0      0 :::23                   :::*                    LISTEN     
[root@VM-4-12-centos ~]# netstat -anp|grep 23  ##比较乱,不推荐

### 2.默认是不允许root登陆的,使用普通用户

### 3.查看防火墙,如果用的云服务,查看安全组

### 4.查看系统是否已安装telnet
rpm -qa | grep telnet
telnet-0.17-48.el6.x86_64
telnet-server-0.17-48.el6.x86_64

# telnet 是挂在 xinetd 底下的,所以同时查看是否安装了xinetd服务
rpm -qa | grep xinetd
xinetd-2.3.14-39.el6_4.x86_64

# 两者都没有的安装的话,yum安装以下服务
yum install xinetd telnet telnet-server -y

###win10的电脑和虚拟机中的centOS7.0想实现他们之间的通信
### 问题如下
#centOS虚拟机无法ping到物理机win10:
解决方法:关闭win10的防火墙;

#centOS虚拟机能ping到物理机,物理机win10却无法ping到centOS虚拟机:
解决方法:将虚拟机的网络配置由NAT模式转向桥接模式。这里还涉及到桥接模式下的网络配置问题,以后讨论。
NAT模式下主机与虚机之间不能互相ping通,因为虚拟机是靠主机的真实IP来访问互联网的,而桥接模式下虚拟机有自己独立的动态IP地址。)

#centOS能够用telnet连接自身,却无法连接物理机win10:
解决方法:由于在win10系统中telnet的服务端被删去了(不安全性),只保留了客户端,所以要想达到目的,必须重新下载telnet.server程序并安装配置。在win10的打开或关闭windows功能里启动telnet客户端程序。并同时启动服务端(如果是win7系统则直接在windows功能选项中打开就行。)。

这里存在一个细节:如果你的win10账户不是本地账户而是Microsoft网络账户,则无法连接。需要新建一个本地账户:包括用户名,密码,和域名(domain name)。其中domain name不需要输入,默认为空。

而且在centOS连接到win10后会出现乱码问题,这个问题以后解决。(centOS采用UFT编码方式,而win10采用GB2312编码方式。)

#centOS能够用telnet连接物理机win10,物理机却无法连接centOS,提示:
这是由于centOS并没有开放23的端口,我们需要用防火墙开启telnet的服务,并且开放指定端口

### 去除telnet服务的开机自启功能
systemctl disable telnet.socket
systemctl disable xinetd.service

###用netstat查看当前已经建立的tcp连接
netstat -t

什么是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

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 客户端。
posted @ 2023-04-26 20:09  Bre-eZe  阅读(66)  评论(0)    收藏  举报