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).常用选项
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | -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
1 2 3 4 5 6 7 8 9 10 11 12 13 | [xf@xuexi ~]$ 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
之后会出现如下图的登录界面
用CentOS系统连接Windows系统,如下(虚拟机需要使用桥接模式,有乱码是因为centOS采用UFT编码方式,而win10采用GB2312编码方式)
1 2 3 4 5 6 7 8 9 10 11 12 13 | [xf@xuexi ~]$ 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:
1 2 3 | yum install -y telnet-server yum install -y xinted yum install -y telnet |
2)将xinetd、telnet服务加入开机启动项:
CentOS7如下
1 2 | systemctl enable xinetd.service systemctl enable telnet.socket |
CentOS6.8如下
1 2 | chkconfig xinetd on chkconfig telnet on |
3)启动服务
CentOS7如下
1 2 | systemctl start telnet.socket systemctl start xinetd |
CentOS6.8如下
1 2 | vim /etc/xinetd.d/telnet 将其中disable的值改为no service xinted restart |
4)测试完后为安全考虑请关闭相应服务的自启功能
CentOS7如下
1 | systemctl disable xinetd.service<br>syetemctl disable telnet.socket |
CentOS6.8如下
1 2 | chkconfig xinetd off chkconfig telnet off |
(4).Windows中telnet环境部署
控制面板-->程序-->打开或关闭Windows功能-->勾选Telnet服务器和Telnet客户端-->等待完成
部分系统还需要前往服务中打开telnet服务
(5).CentOS防火墙添加端口
CentOS6.8使用vim /etc/sysconfig/iptables命令修改配置文件,如下
1 2 3 4 5 6 7 8 9 10 | # 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命令修改配置文件,如下
1 2 3 4 5 6 7 8 | 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重启。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性