首页/网络/协议速查/444 直接关闭连接(Nginx)
HTTP 方法与状态码91 条

444 直接关闭连接(Nginx)

Nginx 私有状态码:不返回任何响应直接关闭连接,用于静默丢弃恶意请求或隐藏服务。

协议速查网络更新于 2026-10-13

444 是什么

它是服务器软件的私有状态码:不返回任何响应,直接关闭连接。常见用途是静默丢弃明显恶意的请求,或者隐藏某个服务的存在。它不是标准状态码,只在特定服务器软件的重写模块中有效。

和普通 4xx 的区别

普通 4xx 至少会返回一个响应体,客户端知道发生了什么;这个码连响应都不给,客户端看到的是连接被重置。因此它既有「不产生日志噪音」的好处,也有排障时容易被误判的代价。

基本信息

名称444(特定服务器软件的私有值)
作用关闭连接,不产生响应与日志噪音
规范状态非标准,属于具体实现的扩展行为
客户端表现看到连接被重置,而不是错误页

典型使用场景

  • 拦截扫描器与恶意特征请求
  • 隐藏内部服务或管理接口的存在
  • 丢弃不合法的主机名请求
  • 减少恶意请求产生的日志与带宽噪音

拦截扫描与恶意标识

拦截扫描与恶意标识
if ($http_user_agent ~* (nmap|nikto|sqlmap)) {
    return 444;
}
# 规则应尽量精确,避免误伤正常客户端与合规扫描

相近做法对比

做法返回内容适用场景
返回该私有码不返回任何内容恶意请求、隐藏服务
返回 403错误页明确告诉调用方无权访问
返回 404未找到页隐藏资源是否存在
边界层直接丢弃同样无响应由防火墙或负载均衡层拦截
使用这个码时连接会在传输层被重置,抓包与浏览器报错里都不会出现状态码,排障时别误判成网络故障。
规则要尽量精确:基于客户端标识的关键字匹配很容易误伤合法的自动化工具与合规扫描器,上线前先用日志做旁路统计。
这类被静默丢弃的请求通常不会进入访问日志:如果需要统计拦截效果,要在规则前后单独打点,否则事后无法评估规则命中量。

易错点

  • 规则过于宽泛:正常的自动化客户端与合规扫描全部被重置,错误信息里还看不出原因
  • 用它隐藏服务却不改默认页与证书:其他路径仍会暴露服务存在
  • 排障时把它当网络故障:抓包里没有状态码,容易在错误的层次浪费时间
  • 对所有非法主机名一律使用:共享入口场景会连带影响同地址的其他站点
  • 拦截后没有统计:无法评估规则命中量,也无法发现误伤

数据来源与参考

  • Nginx 官方文档:return 444
  • Nginx 常见反扫描配置实践

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌