telnet 8.8.8.8 8888
Run Code Online (Sandbox Code Playgroud)
显示
试...
我期待,这直接被拒绝。
背景:当我们有一个 NGINX 反向代理服务器时,它会直接检测后端不存在的情况。
ilk*_*chu 14
这取决于远程端发回的内容。
对于没有进程正在侦听的端口,远程发送一个设置了重置 (RST) 位的数据包,这会导致客户端出现“连接被拒绝”错误。另一种可能性是ICMP“端口无法访问”消息,例如Linuxiptables -j REJECT
默认发送。这也会导致“连接被拒绝”。
另一方面,如果远程没有返回任何内容,则客户端无法知道问题是什么,并且可能会重试和/或等待很长时间。
iptables
在 Linux 上的一个例子:
# iptables -I INPUT -p tcp --dport 3001 -j REJECT # iptables -I INPUT -p tcp --dport 3002 -j DROP $ nc -v 127.0.0.1 3000 nc:连接到 127.0.0.1 端口 3000 (tcp) 失败:连接被拒绝 $ nc -v 127.0.0.1 3001 nc:连接到 127.0.0.1 端口 3001 (tcp) 失败:连接被拒绝 $ nc -v 127.0.0.1 3002 (等等……)
因此,要发现后端不活动,您需要确保那里有人将错误发回。当然,如果整个主机出现故障,这可能很难做到,因此您可能只需要安排更短的超时时间。
TCP 堆栈根据一组规则(可能在防火墙级别)决定如何响应连接。您可以拒绝连接包 (SYN),但也可以删除它。例如,由于端口扫描,删除它是有意义的。
归档时间: |
|
查看次数: |
1485 次 |
最近记录: |