“Connection refused” vs “No route to host”

本文涉及的产品
云防火墙,500元 1000GB
简介: 曾经在http://blog.csdn.net/bisal/article/details/42496583这篇博文中提到一个端口连接的验证:“ora10g@localhost.

曾经在http://blog.csdn.net/bisal/article/details/42496583这篇博文中提到一个端口连接的验证:

ora10g@localhost.localdomain$telnet 172.101.19.57 1521
Trying 172.101.19.57...
telnet: connect to address 172.101.19.57No route to host
如果端口未开,实际报错:
ora10g@localhost.localdomain$telnet 172.27.19.56 1521
Trying 172.27.19.56...
telnet: connect to address 172.27.19.56: Connection refused
是不是防火墙的问题???
从数据库服务器关闭防火墙:
[root@dcsopen2Node ~]# service iptables stop
iptables: Flushing firewall rules: [  OK  ]
iptables: Setting chains to policy ACCEPT: nat mangle filter [  OK  ]
iptables: Unloading modules: [  OK  ]
再从远程机器执行:
ora10g@localhost.localdomain$telnet 172.101.19.571521
Trying 172.101.19.57...
Connected to 172.101.19.57.
Escape character is '^]'.
说明端口已开,更重要的是,明确了,就是防火墙问题


通过实验再次说明下“Connection refused”和“No route to host”的区别和问题诊断思路

首先,网上有篇帖子说明“Connection refused” vs “No route to host”(http://superuser.com/questions/720851/connection-refused-vs-no-route-to-host):

"Connection refused" means that the target machine actively rejected the connection. With port 80 as the context, one of the following things is likely the reason:
    Nothing is listening on 127.0.0.1:80 and 132.70.6.157:80
    Nothing is listening on *:80
    The firewall is blocking the connection with REJECT
So check your Apache and iptables config.
"No route to host" refers to a network problem. It is not a reply from the target machine.
说的是“Connection refused”是目标主机明确拒绝了这次连接,有可能是该端口没有启动监听,或者因为防火墙。“No route to host”则可能是一个网络问题,不是目标主机的回复。


一个实验模拟

客户端机器ip:172.1.1.1

目标机ip:172.1.2.1

1. 从客户端telnet目标机的一个已启动端口1521,但防火墙中未添加例外。

从172.1.1.1 telnet 172.1.2.1 1521,提示no route to host。

Trying 172.1.2.1...

telnet: connect to address 172.1.2.1: No route to host

在防火墙配置中iptables添加1521端口,telnet正常。

2. 从客户端telnet目标机的一个未启动监听的端口

172.1.2.1的10001端口没有启用,netstat -an | grep 10001不存在。

从172.1.1.1 telnet 172.1.2.1 10001,提示connection refused。

Trying 172.1.2.1...

telnet: connect to address 172.1.2.1: Connection refused


结论:说明No route to host是防火墙的返回,先经过防火墙,不管端口有没有。然后如果通过了防火墙,但监听未启动,则提示Connection refused的错误。

目录
相关文章
|
Linux
Linux:ln创建删除软连接
Linux:ln创建删除软连接
2027 0
|
存储 Prometheus Kubernetes
k8s安装kube-promethues(超详细)
k8s安装kube-promethues(超详细)
7174 0
k8s安装kube-promethues(超详细)
|
NoSQL Redis
Mac安装Redis(图文解说详细版)
Mac安装Redis(图文解说详细版)
Mac安装Redis(图文解说详细版)
|
4月前
|
存储 SQL Cloud Native
热烈祝贺 Flink 2.0 存算分离入选 VLDB 2025
Apache Flink 2.0架构实现重大突破,论文《Disaggregated State Management in Apache Flink® 2.0》被VLDB 2025收录。该研究提出解耦式状态管理架构,通过异步执行框架与全新存储引擎ForSt,实现状态与计算分离,显著提升扩展性、容错能力与资源效率,推动Flink向云原生演进,开启流计算新时代。
706 1
热烈祝贺 Flink 2.0 存算分离入选 VLDB 2025
|
开发者 Docker 容器
DockerFile的ADD和COPY的区别
DockerFile的ADD和COPY的区别
4921 0
Debian 官方源换为国内的源的操作方法
apt-get update 报错,采用更换源的方式解决问题。
56724 0
|
大数据 Linux
CentOS自动同步互联网服务器时间
CentOS自动同步互联网服务器时间
4285 0
CentOS自动同步互联网服务器时间
|
资源调度 分布式计算 Ubuntu
retry.RetryInvocationHandler: java.net.NoRouteToHostException: No Route to Host from hadoop100/192.
Error: NoRouteToHostException connecting hadoop100 to hadoop101. Possible causes include firewall issues or misconfigured IP mappings. Check firewall status with `ufw` (Ubuntu) or `firewalld` (CentOS), ensure correct hosts and hostname entries, and verify passwordless SS
176 0
|
运维 监控 Linux
强大的strace命令用法详解
强大的strace命令用法详解
2067 0
|
网络协议 Ubuntu Linux
frp内网穿透
frp内网穿透