端口telnet不通排查过程
现状
简单描述下最近在做啥,我手里维护的一些系统的线上服务器,还在使用centos7,7.3/7.6/7.9都有,运维侧选定的替换系统是openEuler20.03-LTS-SP1
。按理说,运维直接在线上升级系统就完了,但是,由于风险太大了(直接升级后可能导致应用异常),就还是需要研发出迁移方案、测试组进行测试后,比较保险。
于是,我就在本地虚拟机virtualbox先来折腾试试,先搭了个centos 7.3的系统,部署了个应用,监听端口9900,结果怎么都访问不了。
下面记录下排查过程。
应用介绍
我们这个服务器是centos7.3,上面的应用也比较老,是一种java servlet容器:resin,和tomcat类似,对外提供http接口。
配置监听端口的地方如下:
程序启动后,我看端口是在监听的:
我本机curl试了下,可以访问:
[root@node7 my168_web]# curl localhost:9900
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>
我这个虚拟机的端口9900,需要暴露到windows宿主机进行访问,配置了下端口映射:
然后,通过浏览器访问localhost:19900,发现失败:
排查过程
怀疑ipv6
我在虚拟机上,开了tcpdump,发现可以收到syn握手:
tcpdump -i any tcp port 9900 -Ann
我在虚拟机,又试了下:
[root@node7 my168_web]# curl localhost:9900
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>
发现抓包如下:
此时,就看到通过localhost访问时,用的ipv6的地址,此时,开始怀疑是不是9900端口,仅监听了ipv6导致的。
下面这个输出,强化了我的猜测:
我又看了下其他环境,发现:
如果这个环境里,只有ipv4地址,netstat的输出就不一样
另外一套环境,有ipv6地址,netstat输出就是inet6啥的。
尝试修改配置文件,监听ipv4
把配置改成了下面这样:
<http address="0.0.0.0" port="9900"/>
重启后,netstat结果发现输出没啥变化:
[root@node7 my168_web]# netstat -nltp|grep 9900
tcp6 0 0 :::9900 :::* LISTEN 11992/java
此时,在网上问大模型,大模型提到:
大模型建议实际测试下,看看到底是否支持ipv4:
测了之后,发现确实可以,那就说明对ipv4的支持没问题:
尝试从其他虚拟机telnet该端口
我找了另一台同网段的机器10.0.2.8:
[root@node-4 yum.repos.d]# telnet 10.0.2.12 9900
Trying 10.0.2.12...
telnet: connect to address 10.0.2.12: No route to host
很奇怪的是,你说no route我可以理解,就是找不到目标主机的路由项嘛,但是,我在目标主机开了抓包的,发现telnet的时候,能收到syn包:
而且,抓包到wireshark看的时候,发现mac地址也是正确的:
下图附两台机器的mac地址:
我于是在发起端的机器,查看下路由表:
发现路由表没错。
安装了个traceroute,发现就一跳,然后看看arp,发现这个ip对应的mac地址也是对的。
此时,又去网上查了下,开始怀疑到了防火墙的身上。
防火墙排查
找了下centos7.3中对应的防火墙相关命令:
https://www.ctyun.cn/zhishi/p-330299
发现目标服务器上,防火墙真的开着的:
查了下,9900端口是否开放,发现没开放:
[root@node7 my168_web]# firewall-cmd --query-port=9900/tcp
no
9900加入开放:
firewall-cmd --permanent --add-port=9900/tcp
firewall-cmd --reload
[root@node7 my168_web]# firewall-cmd --permanent --add-port=9900/tcp
success
[root@node7 my168_web]# firewall-cmd --reload
success
[root@node7 my168_web]# firewall-cmd --query-port=9900/tcp
yes
然后再试试,果然就好了:
总结
这个centos7.3是新装的虚拟机,忘了防火墙会自动开启这回事了。
由于对netstat的输出也是半桶水,导致走了弯路,好歹最后还是找到了正确的路。
端口telnet不通排查过程的更多相关文章
- 阿里云、腾讯云开通端口 telnet不通的原因
1.安全组是否已经开通相对应的端口: 阿里云:https://help.aliyun.com/document_detail/25471.html 腾讯云:http://bbs.qcloud.com/ ...
- Oracle开放1521端口 telnet不通解决办法
在windosw虚拟机server2012上安装Oracle数据库后,远程连接失败,报 java.sql.SQLException: The Network Adapter could not est ...
- centos7 redis 6379端口telnet不通
1.查看redis服务是否启动,如图所示,redis已经启动 2.查看是否监听正确的ip和端口 发现问题:端口号6379没错,但是ip是127.0.0.1,表示只能本地访问,问题就出在这. 3.修改r ...
- 故障排查:是什么 导致了服务器端口telnet失败?
telnet命令的主要作用是与目标端口进行TCP连接(即完成TCP三次握手). 当服务端启动后,但是telnet其监听的端口,却失败了.或者,当服务端运行了一段时间后,突然其监听的端口telnet不通 ...
- 故障排查:是什么 导致了服务器端口telnet失败?(转)
telnet命令的主要作用是与目标端口进行TCP连接(即完成TCP三次握手).当服务端启动后,但是telnet其监听的端口,却失败了.或者,当服务端运行了一段时间后,突然其监听的端口telnet不通了 ...
- 端口通不通 telnet wget ssh
如何测试端口通不通(四种方法) 投稿:mrr 一般情况下使用"telnet ip port"判断端口通不通.接下来通过本文给大家分享四种方法测试端口通不通,感兴趣的朋友一起学习吧 ...
- 记一次生产环境Nginx日志骤增的问题排查过程
摘要:众所周知,Nginx是目前最流行的Web Server之一,也广泛应用于负载均衡.反向代理等服务,但使用过程中可能因为对Nginx工作原理.变量含义理解错误,或是参数配置不当导致Nginx工作异 ...
- Connection refused 排查过程
Connection refused 排查过程 connection refused 排查 起因 今天在连接 rabbitmq 时,报 Connection refused (如下图),借此机会记 ...
- 一次kibana服务失败的排查过程
公司在kubernetes集群上稳定运行数月的kibana服务于昨天下午突然无法正常提供服务,访问kibana地址后提示如下信息: 排查过程: 看到提示后,第一反应肯定是检查elasticsearch ...
- 干货!一次kafka卡顿事故排查过程
由于一次功能上线后,导致某数据量急剧下滑,给我们紧张的呢!排查过程也是个学习过程(这其中有大部分是领导们的功劳,不过分享给大家应该也不犯法吧,ᐓ) 1. 确认问题的真实性? 被数据部门告知,某数据量下 ...
随机推荐
- 在JDBC中使用带参数的SQL语句
ADO.Net中,支持带参数的SQL语句,例如:Select * from Tables where column1=@column1,其中@column1为SQL参数,使用起来非常方便,而JDBC中 ...
- APSI - 1
最近在看[Labeled PSI from Homomorphic Encryption with Reduced Computation and Communication]的论文,看完后头大,现结 ...
- CRISP-DM的应用与理解
本文分享自天翼云开发者社区<CRISP-DM的应用与理解>,作者:吴****嫄 CRISP-DM是一个数据挖掘项目规划的开放标准流程框架模型,主要分为业务理解.数据理解.数据准备.建模.评 ...
- C# 深度学习框架 TorchSharp 原生训练模型和图像识别-自定义网络模型和识别手写数字
目录 使用 Torch 训练模型 定义神经网络 加载数据集 创建网络模型 定义损失函数 训练 识别手写图像 教程名称:使用 C# 入门深度学习 作者:痴者工良 教程地址:https://torch.w ...
- C# Winform 实现静态变量属性的值变了,触发事件,类似WPF的双向绑定
在C# WinForms中,虽然没有像WPF那样内置的双向绑定机制,但你可以通过事件和属性封装来实现类似的功能.具体来说,你可以在静态属性的set访问器中触发一个自定义事件,然后在需要的地方订阅这个事 ...
- 关于hystrix.contrib.javanica.exception.FallbackDefinitionException: fallback method wasn't found异常
在Spring中使用断路器后可能会遇到:com.netflix.hystrix.contrib.javanica.exception.FallbackDefinitionException: fall ...
- useradd usermod userdel passwd groupadd groupmod groupdel等命令详解
linux命令参数记忆有些模糊了,记录下.学而时习之,不亦说乎? 1.useradd命令用来建立用户帐号和创建用户的起始目录,使用权限是终极用户.创建新用户useradd,默认的用户家目录会被存放在/ ...
- AI-介绍
前言 AI的发展已是如火如荼,从GPT问世的大火到入金各个互联网那个龙头企业的入局,AI的使用已是简单快捷,本篇文章主要记录大语言模型的基本情况和一些使用的条件. 什么是AI 人工智能是个很广泛的话题 ...
- zabbix - [03] 安装部署
参考:https://www.yuque.com/fenghuo-tbnd9/ffmkvs zabbix6要求操作系统为Centos8,所以一开始安装部署的时候发现少了zabbix-server-my ...
- C/C++跨平台开发1-windows和linux中的类库
基本概念: 什么是库: 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 静态库:在程序链接的时候使用,链接器会将程序中使 ...