帮助中心

从 Linux 命令行检查网站可用性 打印

  • 0
  • linux, curl, wget, netcat

在 Linux 命令行中检查网站可用性有多种方法,可以根据需求选择工具和策略。以下是常用的命令和技巧:


1. 使用 curl 检查 HTTP 响应

curl 是最常用的工具,可获取详细的 HTTP 响应信息。

基本用法

bash
复制
# 获取完整响应内容(包括状态码)
curl -I https://example.com

# 仅显示 HTTP 状态码
curl -s -o /dev/null -w "%{http_code}\n" https://example.com

参数解释

  • -I:仅显示响应头(快速检查状态码)。

  • -s:静默模式(不显示进度或错误信息)。

  • -o /dev/null:丢弃响应内容。

  • -w "%{http_code}":输出 HTTP 状态码(如 200404500 等)。

示例输出

  • 正常响应:200

  • 页面不存在:404

  • 服务器错误:500


2. 使用 wget 测试连接

wget 支持下载文件并显示连接状态,适合检查可用性。

bash
复制
# 静默下载并检查退出码
wget -q --spider https://example.com

# 查看退出码(0 表示成功,非 0 表示失败)
echo $?

参数解释

  • --spider:模拟下载,不保存文件。

  • -q:静默模式。


3. 使用 ping 检查网络连通性

测试目标服务器的网络层连通性(不涉及 HTTP 服务):

bash
复制
ping -c 4 example.com
  • 结果分析

    • 收到回复(64 bytes from ...):网络连通正常。

    • 100% packet loss:网络不可达(可能防火墙禁用了 ICMP)。


4. 使用 nc(netcat)检查端口开放状态

确认目标网站的端口(如 HTTP 80/HTTPS 443)是否开放:

bash
复制
nc -zv example.com 80      # 检查 HTTP 端口
nc -zv example.com 443     # 检查 HTTPS 端口

参数解释

  • -z:扫描模式(不发送数据)。

  • -v:显示详细信息。

示例输出

  • 成功:Connection to example.com 80 port [tcp/http] succeeded!

  • 失败:nc: connect to example.com port 80 (tcp) failed: Connection refused


5. 使用 telnet 手动测试 HTTP 连接

通过原始 TCP 连接手动发送 HTTP 请求(适合调试):

bash
复制
telnet example.com 80
GET / HTTP/1.1
Host: example.com

输入后按两次回车,观察服务器返回的 HTTP 响应头和状态码。


6. 使用 httpie(更友好的 HTTP 客户端)

需要先安装 httpie

bash
复制
sudo apt install httpie    # Debian/Ubuntu
sudo dnf install httpie   # Fedora

基本用法

bash
复制
http GET https://example.com

7. 检查 DNS 解析

确认域名能否正确解析为 IP 地址:

bash
复制
nslookup example.com
dig example.com

8. 自动化脚本示例

结合退出码和条件判断,编写自动化检查脚本:

bash
复制
#!/bin/bash
URL="https://example.com"
STATUS_CODE=$(curl -s -o /dev/null -w "%{http_code}" $URL)

if [ $STATUS_CODE -eq 200 ]; then
    echo "网站正常(状态码:$STATUS_CODE)"
else
    echo "网站异常(状态码:$STATUS_CODE)"
fi

常见问题排查

  1. 超时问题

    • 使用 curl 的 --connect-timeout 参数:

      bash
      复制
      curl --connect-timeout 10 https://example.com
  2. HTTPS 证书错误

    • 忽略证书验证(不推荐长期使用):

      bash
      复制
      curl -k https://example.com
  3. 跟随重定向

    • 使用 -L 参数追踪重定向:

      bash
      复制
      curl -L https://example.com

总结工具对比

工具 用途 优点 缺点
curl HTTP 请求、状态码、内容检查 功能全面,支持 HTTPS 输出可能需要过滤
wget 下载文件、模拟请求 简单易用 默认显示冗余信息
ping 网络层连通性检查 快速判断是否可达 不检查应用层服务
nc 端口扫描 快速确认端口开放 不支持 HTTPS 内容检查
telnet 手动调试 TCP 连接 灵活 需要手动输入请求

根据需求选择合适的工具,组合使用可以更全面地诊断问题。

这篇文章有帮助吗?
« 返回