插件窝 干货文章 宝塔面板nginx环境下禁止ip访问(防恶意解析)教程

宝塔面板nginx环境下禁止ip访问(防恶意解析)教程

server 配置 宝塔 Nginx 670    来源:    2025-05-11

宝塔面板Nginx环境下禁止IP访问(防恶意解析)教程

问题背景

当你的服务器IP地址被恶意解析到某个域名时,可能会带来以下问题: - 消耗服务器资源 - 影响SEO排名 - 可能被用于钓鱼攻击 - 产生不必要的流量消耗

解决方案

方法一:通过Nginx配置文件禁止IP直接访问

  1. 登录宝塔面板
  2. 进入网站 → 选择你的网站 → 点击设置
  3. 选择配置文件选项卡
  4. 在server块中添加以下配置:
server {
    listen 80 default_server;
    listen 443 ssl default_server;
    server_name _;
    return 444;
    # 或者使用以下代码返回403错误
    # return 403;
}
  1. 然后为每个正常域名配置单独的server块:
server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    # 其他正常配置...
}
  1. 保存并重启Nginx服务

方法二:通过宝塔面板自带功能设置

  1. 进入宝塔面板 → 网站
  2. 点击添加站点
  3. 在域名输入框中填写你的服务器IP地址
  4. 创建完成后,进入该站点的设置
  5. 默认站点选项中选择关闭
  6. 这样当用户通过IP访问时,将显示"未绑定域名"页面

方法三:通过防火墙限制(更严格的安全措施)

  1. 进入宝塔面板 → 安全
  2. 防火墙部分,添加规则:
    • 放行端口:80,443(仅限你的域名使用)
    • 其他IP直接访问时拒绝

验证方法

  1. 在浏览器中直接输入服务器IP地址,应该看到403错误或连接被拒绝
  2. 使用命令行工具测试: bash curl -I http://你的服务器IP 应该返回403或444状态码

注意事项

  1. 修改配置前建议备份原配置文件
  2. 修改后务必检查Nginx配置是否正确: bash nginx -t
  3. 如果使用CDN,需要确保CDN的IP不会被阻止
  4. 对于HTTPS访问,需要确保SSL证书配置正确

高级配置(可选)

如果你希望显示自定义的禁止访问页面:

server {
    listen 80 default_server;
    server_name _;
    root /www/server/nginx/html;
    index index.html;

    location / {
        return 403;
        # 或者显示自定义页面
        # try_files /forbidden.html =404;
    }

    error_page 403 /forbidden.html;
    location = /forbidden.html {
        internal;
    }
}

然后在指定路径创建forbidden.html文件,内容自定义。

通过以上方法,你可以有效防止恶意IP解析到你的服务器,保护网站安全和SEO权益。