Telnet,爱一直在
创始人
2024-03-01 21:53:24
0

Telnet,是系统管理员登录远程服务器的一种协议和工具。然而,由于所有的通信都没有加密,包括密码,都是明文发送的。Telnet 在 SSH 被开发出来之后就基本弃用了。

登录远程服务器,你可能不会也从未考虑过它。但这并不意味着 telnet 命令在调试远程连接问题时不是一个实用的工具。

本教程中,我们将探索使用 telnet 解决所有常见问题:“我怎么又连不上啦?”

这种讨厌的问题通常会在安装了像 Web服务器、邮件服务器、ssh 服务器、Samba 服务器等诸如此类的事之后遇到,用户无法连接服务器。

telnet 不会解决问题但可以很快缩小问题的范围。

telnet 用来调试网络问题的简单命令和语法:

telnet  

因为 telnet 最初通过端口建立连接不会发送任何数据,适用于任何协议,包括加密协议。

连接问题服务器有四个可能会遇到的主要问题。我们会研究这四个问题,研究它们意味着什么以及如何解决。

本教程默认已经在 samba.example.com 安装了 Samba 服务器而且本地客户无法连上服务器。

Error 1 - 连接挂起

首先,我们需要试着用 telnet 连接 Samba 服务器。使用下列命令 (Samba 监听端口445):

telnet samba.example.com 445

有时连接会莫名停止:

telnet samba.example.com 445
Trying 172.31.25.31...

这意味着 telnet 没有收到任何回应来建立连接。有两个可能的原因:

  1. 你和服务器之间有个路由器宕掉了。
  2. 防火墙拦截了你的请求。

为了排除第 1 点,对服务器上进行一个快速 mtr samba.example.com 。如果服务器是可达的,那么便是防火墙(注意:防火墙总是存在的)。

首先用 iptables -L -v -n 命令检查服务器本身有没有防火墙,没有的话你能看到以下内容:

iptables -L -v -n
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target prot opt in out source destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target prot opt in out source destination

如果你看到其他东西那可能就是问题所在了。为了检验,停止 iptables 一下并再次运行 telnet samba.example.com 445 看看你是否能连接。如果你还是不能连接看看你的提供商或企业有没有防火墙拦截你。

Error 2 - DNS 问题

DNS 问题通常发生在你正使用的主机名没有解析到 IP 地址。错误如下:

telnet samba.example.com 445
Server lookup failure: samba.example.com:445, Name or service not known

第一步是把主机名替换成服务器的 IP 地址。如果你可以连上那么就是主机名的问题。

有很多发生的原因(以下是我见过的):

  1. 域名注册了吗?用 whois 来检验。
  2. 域名过期了吗?用 whois 来检验。
  3. 是否使用正确的主机名?用 dighost 来确保你使用的主机名解析到正确的 IP。
  4. 你的 A 记录正确吗?确保你没有偶然创建类似 smaba.example.comA 记录。

一定要多检查几次拼写和主机名是否正确(是 samba.example.com 还是 samba1.example.com)?这些经常会困扰你,特别是比较长、难记或其它国家的主机名。

Error 3 - 服务器没有侦听端口

这种错误发生在 telnet 可达服务器但是指定端口没有监听。就像这样:

telnet samba.example.com 445
Trying 172.31.25.31...
telnet: Unable to connect to remote host: Connection refused

有这些原因:

  1. 确定 连接的是正确的服务器?
  2. 你的应用服务器没有侦听预期的端口。在服务器上运行 netstat -plunt 来查看它究竟在干什么并看哪个端口才是对的,实际正在监听中的。
  3. 应用服务器没有运行。这可能突然而又悄悄地发生在你启动应用服务器之后。启动服务器运行 ps auxfsystemctl status application.service 查看运行。

Error 4 - 连接被服务器关闭

这种错误发生在连接成功建立但是应用服务器建立的安全措施一连上就将其结束。错误如下:

telnet samba.example.com 445
Trying 172.31.25.31...
Connected to samba.example.com.
Escape character is '^]'.
Connection closed by foreign host.

最后一行 Connection closed by foreign host. 意味着连接被服务器主动终止。为了修复这个问题,需要看看应用服务器的安全设置确保你的 IP 或用户允许连接。

成功连接

成功的 telnet 连接如下:

telnet samba.example.com 445
Trying 172.31.25.31...
Connected to samba.example.com.
Escape character is '^]'.

连接会保持一段时间只要你连接的应用服务器时限没到。

输入 CTRL+] 中止连接,然后当你看到 telnet> 提示,输入 quit 并按回车:

telnet samba.example.com 445
Trying 172.31.25.31...
Connected to samba.example.com.
Escape character is '^]'.
^]
telnet> quit
Connection closed.

总结

客户程序连不上服务器的原因有很多。确切原因很难确定,特别是当客户是图形用户界面提供很少或没有错误信息。用 telnet 并观察输出可以让你很快确定问题所在节约很多时间。


via: https://bash-prompt.net/guides/telnet/

作者:Elliot Cooper 译者:XYenChi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

如何在CentOS系统上配...
CentOS系统中Telnet命令的使用与安全策略详解 在Linu...
2025-05-03 10:46:15
捕获Telnet密码的命令...
要捕获Telnet密码,可以使用tcpdump命令进行网络数据包分...
2024-12-25 06:31:49
捕获日志 - Telnet...
要捕获Telnet访问的日志,可以使用Python的telnetl...
2024-12-25 05:31:27
编写一个Python脚本,...
以下是一个Python脚本的示例,它可以自动进行SSH登录服务器,...
2024-12-07 07:01:52
变量在Telnet上
要在Telnet上使用变量,可以使用Telnetlib模块来连接和...
2024-12-02 23:02:43
Bash Expect T...
在Bash中,使用expect工具结合telnet命令可以处理服务...
2024-11-25 12:30:56

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
从 Yum 更新中排除特定/某... 作为系统更新的一部分,你也许需要在基于 Red Hat 系统中由于应用依赖排除一些软件包。如果是,如...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...
如何检查你的 Linux 系统... 不知道在使用哪个初始化系统?以下是方法。每个主流 Linux 发行版(包括 Ubuntu、Fedor...