端口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. 确认问题的真实性? 被数据部门告知,某数据量下 ...
随机推荐
- ctfshow--红包题第二弹 临时文件命令执行
上来先代码审计 点击查看代码 <?php if(isset($_GET['cmd'])){ $cmd=$_GET['cmd']; highlight_file(__FILE__); if(pre ...
- 牛客 acm输入输出模式练习
https://www.nowcoder.com/exam/test/67432019/detail?pid=27976983#question 注意:只有部分个人觉得有意义的题目 A+B(4) 计算 ...
- Q:浏览器不能上网,但是可以ping通外网ip,dns配置也没问题(TCP/IP 无法建立传出连接)
问题症状 每隔一段时间,浏览器不能访问外网,重启电脑又正常,重置网卡无效 可以ping通外网ip地址,可以ping通外网域名 ping不通外网端口端口 查看日志 每次出现不能上网情况时都会有至少两条T ...
- FLink14--核心窗口--TumblingWindiwApp
一.依赖 https://www.cnblogs.com/robots2/p/16048648.html 二. 代码 前言:window用作有keyBy情况,前面没有使用keyBy的话用windowA ...
- FreeSql学习笔记——10.贪婪加载
前言 FreeSql贪婪加载主要对应导航属性,将需要的数据一次加载出来,包括查询表的子表或者关联表的关联数据,用于一对一.一对多.多对一.多对多的关系数据查询,查询的时候一对一.多对一关系查询是可 ...
- AI+逆向python 3.9+程序
使用pyinstxtractor.py将程序转换成pyc文件 下载 pyinstxtractor.py:extremecoders-re/pyinstxtractor: PyInstaller Ext ...
- 自适应 Simpson 积分法学习笔记
自适应 Simpson 积分法,是一种计算一段区间内,形态奇怪的函数和的算法,例如面积并和难以直接用通项公式计算的函数. Simpson 积分 我们都知道,求解微积分需要求解一个导数的原函数,但这显然 ...
- 从龟速乘到 $Miller-Rabin$ 算法(数论算法总结)
发现自己竟然菜到不太会龟速乘,所以把 \(Miller-Rabin\) 算法所需要用到的算法全学了一遍-- 龟速乘 龟速乘是一种 \(O(\log n)\) 的乘法计算方法. 考虑有时普通乘法取模会爆 ...
- TensorFlow 的基本概念和使用场景
TensorFlow是一个开源的机器学习框架,由Google开发并维护.它提供了一个灵活的编程环境,用于构建和训练各种机器学习模型.TensorFlow是基于图计算的模型,其中节点表示数学操作,而边表 ...
- 大数据之路Week10_day01 (练习:通过设计rowkey来实现查询需求)
1.准备数据 链接:https://pan.baidu.com/s/1fRECXp0oWM1xgxc0uoniAA 提取码:4k43 2.需求如下 (1)查询出10条某个人的最近出现的位置信息 (2) ...