Linux命令之telnet详解程序员

telnet [-8EFKLacdfrx] [-X authtype] [-b hostalias] [-e escapechar] [-k realm] [-l user] [-n tracefile] [host [port]]

  telnet命令用于远程登录主机,对远程主机进行管理。telnet因为采用明文传送报文,安全性不好,许多Linux服务器都不开放telnet服务,而改用更安全的ssh方式。但任然有许多别的系统可能采用了telnet方式来通过远程登录,因此弄清楚telnet客户端的使用方式仍是很有必要的。

  如果在没有host参数的情况下调用telnet,它将进入命令模式,由其提示符(telnet>)指示。在此模式下,它接受并执行下面列出的命令(请使用“man –a telnet”查看)。如果使用参数调用它,它将使用这些参数执行open命令。

  如果主机名解析到多个IP地址,则telnet会尝试与每个地址建立连接,直到其中一个地址成功或直到不再有地址为止。

(1).常用选项

-8 允许使用8位字符资料。包括输入输出 
-a 尝试自动登录。 
-b hostalias(主机别名) 使用别名指定远端主机名称。 
-c 禁用读取用户的.telnetrc文件 
-d 启动Debug模式 
-e escapechar(脱离字符) 设置脱离字符(是逃逸字符,跳过的意思?) 
-E 滤除脱离字符 
-f使用Kerberos V5认证时,允许将本地凭证抓发到远程系统 
-F 使用Kerberos V5认证时,允许将本地凭证抓发到远程系统,包括已经转发到本地环境的任何凭证 
-k realm(域名) 如果正在使用Kerberos身份验证,则请求telnet让远程主机获取指定的域名realm而不是远程主机的域名。 
-K 不自动登录远程主机 
-l user(用户名) 指定远程登录的用户名 
-L 允许输出8位字符资料。 
-n tracefile(跟踪文件) 指定跟踪文件记录跟踪信息. 
-r 指定与rlogin类似的用户界面。逃逸字符设置为~,可通过-e选项修改 
-x 如果有数据流加密,则打开 
-X atype(认证形态) 禁用atype类型的身份验证

(2).实例

测试一下连接本地主机,端口号为23

[[email protected] ~]$ telnet localhost 23 
Trying ::1... 
Connected to localhost. 
Escape character is '^]'. 
 
Kernel 3.10.0-862.11.6.el7.x86_64 on an x86_64 
xuexi login: root 
Password: 
Login incorrect 
 
xuexi login: xf 
Password: 
Last login: Thu Sep 27 13:52:50 on :0

用Windows系统连接CentOS。注意添加23端口详细请看(5). CentOS防火墙添加端口

telnet 192.168.128.223 23

之后会出现如下图的登录界面

Linux命令之telnet详解程序员

用CentOS系统连接Windows系统,如下(虚拟机需要使用桥接模式,有乱码是因为centOS采用UFT编码方式,而win10采用GB2312编码方式)

[[email protected] ~]$ telnet 192.168.128.137 
Trying 192.168.128.137... 
Connected to 192.168.128.137. 
Escape character is '^]'. 
Welcome to Microsoft Telnet Service  
 
login: administrator 
password:  
 
*=============================================================== 
Microsoft Telnet Server. 
*=============================================================== 
C:/Users/Administrator>

(3).telnet环境安装

很多Linux已经没有telnet服务,所以需要自己安装

1)安装telnet-server,telnet,xinted:

yum install -y telnet-server 
yum install -y xinted 
yum install -y telnet

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

CentOS7如下

systemctl enable xinetd.service 
systemctl enable telnet.socket

CentOS6.8如下

chkconfig xinetd on 
chkconfig telnet on

3)启动服务

CentOS7如下

systemctl start telnet.socket 
systemctl start xinetd

CentOS6.8如下

vim /etc/xinetd.d/telnet 将其中disable的值改为no 
service xinted restart

4)测试完后为安全考虑请关闭相应服务的自启功能

CentOS7如下

systemctl disable xinetd.service
syetemctl disable telnet.socket

CentOS6.8如下

chkconfig xinetd off 
chkconfig telnet off

(4).Windows中telnet环境部署

控制面板–>程序–>打开或关闭Windows功能–>勾选Telnet服务器和Telnet客户端–>等待完成

部分系统还需要前往服务中打开telnet服务

(5).CentOS防火墙添加端口

CentOS6.8使用vim /etc/sysconfig/iptables命令修改配置文件,如下

# Firewall configuration written by system-config-firewall  
# Manual customization of this file is not recommended. 
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] 
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 
-A INPUT -p icmp -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT 
-A INPUT -j REJECT --reject-with icmp-host-prohibited 
-A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT

最后使用命令service iptables restart命令重启

CentOS7使用vim /etc/firewalld/zones/public.xml命令修改配置文件,如下

xml version="1.0" encoding="utf-8"?> 
<zone> 
  <short>Public</short> 
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description> 
  <service name="ssh"/> 
  <service name="dhcpv6-client"/> 
  <port protocol="tcp" port="23"/> 
</zone> 

最后使用firewall-cmd –complete-reload命令或systemctl restart firewalld重启。

 

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/2874.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论