关键字

  • 连接挂起
  • DNS问题
  • 服务器没有侦听端口
  • 连接被服务器关闭

好记性不如烂笔头,记录下温故下!!!

telnet 不会解决问题但可以很快缩小问题的范围。
telnet 用来调试网络问题的简单命令和语法:

telnet <hostname or IP> <port>

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

连接问题主要集中在以上四种错误场景。了解下各种错误信息的含义,便于我们定位实际业务中的各类问题:

  • 平台访问远程数据源
  • 平台调用三方的api

Error 1 - 连接挂起

telnet longshawn.example.com 445
有时连接会莫名停止:

telnet longshawn.example.com 445
Trying 112.51.22.61...

telnet longshawn.example.com 445
Trying 112.51.22.61…

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

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

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

相对于traceroute命令只会做一次链路跟踪测试,mtr命令会对链路上的相关节点做持续探测并给出相应的统计信息

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

iptables -nvL
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 0K packets, 0 bytes)pkts bytes target     prot opt in     out     source               destination

iptables -nvL
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 0K packets, 0 bytes)
pkts bytes target prot opt in out source destination

上面的结果表明还没有配置规则。没有数据包被阻止。

Error 2 - DNS问题

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

telnet longshawn.example.com 445
telnet: longshawn.example.com: Name or service not known
longshawn.example.com: Unknown host

telnet longshawn.example.com 445
telnet: longshawn.example.com: Name or service not known
longshawn.example.com: Unknown host

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

有很多发生的原因:

  • 域名注册了吗?用 whois 来检验。
  • 域名过期了吗?用 whois 来检验。
  • 是否使用正确的主机名?用 dig 或 host 来确保你使用的主机名解析到正确的 IP。
  • 你的 A 记录正确吗?确保你没有偶然创建类似 longshawn.example.com 的 A 记录。

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

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

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

telnet longshawn.example.com 445
Trying 112.51.22.61...
telnet: Unable to connect to remote host: Connection refused

telnet longshawn.example.com 445
Trying 112.51.22.61…
telnet: Unable to connect to remote host: Connection refused

有这些原因:

  • 服务器地址是否正确。
  • 端口是否正确。

Error 4 - 连接被服务器关闭

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

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

telnet longshawn.example.com 445
Trying 112.51.22.61…
Connected to longshawn.example.com.
Escape character is ‘^]’.
Connection closed by foreign host.

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

成功连接
成功的 telnet 连接如下:

telnet longshawn.example.com 445
Trying 112.51.22.61...
Connected to longshawn.example.com.
Escape character is '^]'.

telnet longshawn.example.com 445
Trying 112.51.22.61…
Connected to longshawn.example.com.
Escape character is ‘^]’.

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

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

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

telnet longshawn.example.com 445
Trying 112.51.22.61…
Connected to longshawn.example.com.
Escape character is ‘^]’.
^]
telnet> quit
Connection closed.

总结

客户程序连不上服务器的原因有很多。但通过telnet命令,我们可以快速定位到以下原因:

  • 网络不通
  • 域名解析
  • 服务器白名单
  • 服务器端口

在定位到具体原因后,就可以转交给dba、网络服务器工程师协助解决了。所以了解下这方面的内容,还是有点用的2


  1. MTR工具使用说明与结果分析 ↩︎

  2. Why You Should Still Love Telnet ↩︎

Linux系统运维-Telnet命令相关推荐

  1. 很实用的Linux 系统运维常用命令及常识(超实用)

    很实用的Linux 系统运维常用命令及常识(超实用) 作为Linux运维,需要了解Linux操作系统的基本使用和管理知识,下面脚本之家小编给大家介绍下Linux运维需要掌握的命令,想成为Linux运维 ...

  2. Linux系统运维常用命令

    Linux 系统运维常用命令 1 文件管理2 软件管理3 系统管理 4 服务管理5 网络管理6 磁盘管理 7 用户管理8 脚本相关9 服务配置 ============================ ...

  3. Linux 系统运维常用命令

    2019独角兽企业重金招聘Python工程师标准>>> 1 文件管理2 软件管理3 系统管理 4 服务管理5 网络管理6 磁盘管理 7 用户管理8 脚本相关9 服务配置 ====== ...

  4. 作为一个linux系统运维师必须掌握的定期任务执行命令cront

    定期执行任务的相关命令 作为一个linux系统运维师,在我们工作的时候需要定期去执行一些脚本或是命令,比如早上几点我们要开启什么服务,我们不可能守在计算机旁等到那个时候去手动执行那些需要脚本或是命令, ...

  5. linux怎么用命令打开wine,Linux系统运维:10分钟教你如何使用Wine在Linux下玩魔兽世界...

    本文主要向大家介绍了Linux系统运维的如何使用Wine在Linux下玩魔兽世界,通过具体的步骤向大家展现,希望对大家学习Linux系统运维有所帮助. 目标:在 Linux 中运行魔兽世界 发行版:适 ...

  6. route命令linux详解,Linux系统运维关于route命令的详解

    Linux系统运维涉及到各方面的知识,比如工作中需要测试网络环境,本文介绍Linux系统运维关于Linux测试工具route的使用方法,希望能给大家的工作带来一定更多帮助. 在配置网络时,要为机器指定 ...

  7. linux系统运维面试题大全(137道题)

    linux系统运维面试题大全 1. 如何看当前Linux系统有几颗物理CPU和每颗CPU的核数? 查看物理cup: cat /proc/cpuinfo|grep -c 'physical id' 查看 ...

  8. 民工哥折腾了2年多的《Linux系统运维指南》终于和大家见面了

    2018年3月,我与张老师就这么在微信上聊了起来,起初我并没有写书的打算,我们之间只是通过讨论.交流的形式聊聊关于出书的方方面面.最终,敌不过张老师超强的专业能力.细致的解说与盛情相邀,我答应张老师写 ...

  9. linux系统运维面试题

    标签:linux系统运维面试题 1.     简述常用高可用技术 解答: Keepalived:Keepalived是一个保证集群高可用的服务软件,用来防止单点故障,使用VRRP协议实现.在maste ...

  10. 分享这两年从事Linux系统运维行业的感受

    2019独角兽企业重金招聘Python工程师标准>>> 2015年6月,一次偶然的机会让我这个非科班出生的人从事起了运维(operation)的行业.这两年间,从大的讲,运维社区.技 ...

最新文章

  1. Quartz 在 Spring 中如何动态配置时间
  2. 7个你可能不认识的CSS单位
  3. Java实现结构体,让字节流封送简单起来
  4. mysql关于死锁的优化_mysql死锁探究及优化
  5. React开发(158):ant design级联回显 直接传入数组
  6. C++函数如何操作堆栈指针esp
  7. 转行人工智能,不得不温故的数学基础知识
  8. 数学建模2015A题(太阳影子定位)
  9. 《高质量C++/C编程指南》陷阱 【转】
  10. 阿里视频直播自定义推拉流地址生成
  11. javaScript中的特殊字符
  12. java实现易宝支付
  13. dbz用connector入hana报错Invalid Java object for schema type INT64: class java.util.Long for field “null“
  14. python调研报告总结体会_调查报告的心得体会4篇
  15. <Android开发> Android vold - 第三篇 vold 的NetLinkManager类简介
  16. 花粉的基本功效(收藏)
  17. POST 和 PUT 方法区别
  18. html页面点击图片名称查看图片------图片预览插件viewer.js使用
  19. CSS3学习笔记(九)——UI元素状态伪类选择器 :checked
  20. flink sql 知其所以然(十五):改了改源码,实现了个 batch lookup join(附源码)

热门文章

  1. 路由器能连接到电视上看电视吗?
  2. Lobooi个人作业:阅读与准备作业
  3. SpringBoot错误处理原理及定制错误页面及错误数据
  4. SCI文章下载网址收藏
  5. vscode快速格式化代码
  6. keras神经网络搭建六步法
  7. 视频去模糊论文阅读-Cascaded Deep Video Deblurring Using Temporal Sharpness Prior
  8. 本特利1900/65A-00-00-01-00-00监视器
  9. 扬州大学matlab课程设计报告,自动控制原理课程设计报告
  10. MFC图像处理CImage类常用操作