当前位置: 首页 > news >正文

项目设置内网 IP 访问实现方案

        在我们平常的开发工作中,项目开发、测试完成后进行部署上线。比如电商网站、新闻网站、社交网站等,通常对访问不会进行限制。但是像企业内部网站、内部管理系统等,这种系统一般都需要限制访问,比如内网才能访问等。那么一个网站应该如何限制特定的 IP 访问呢?今天我们来总结下实现的几种方法。

      一:通过 nginx 配置

        1:可以在 nginx.conf 中设置 IP 访问限制,示例如下:

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;

    server {
        listen 80;
        server_name localhost;
        
        # 只允许某个特定 IP 地址访问
        allow 192.168.1.1;
        deny all;

        # 允许访问的 IP 列表,这个命令表示允许的 IP 范围为 192.168.1.0 到 192.168.1.254
        allow 192.168.1.0/24;
        deny all;

        # 拒绝某个特定 IP 访问
        deny 192.168.1.1;
        allow all;

        # 拒绝该 IP 列表访问 
        deny 192.168.1.0/24;
        allow all;

        location / {
           root /usr/share/nginx/html;
           index index.html index.htm;
        }
    }
}

        2:当前访问的 IP 地址在 nginx 配置允许的 IP 列表中时,访问页面如下:

        3:当前访问的 IP 地址不在 nginx 配置允许的 IP 列表中时,会看到访问拒绝,访问页面如下:

        4:总结

        设置允许访问的 IP:

        (1):只允许某个特定 IP 地址访问,如表示只有 IP 地址为 192.168.1.1 能访问,示例如下:

allow 192.168.1.1;
deny all;

        (2):允许访问的 IP 列表,如表示 192.168.1.0 到 192.168.1.254 的 IP 地址能访问,示例如下:

allow 192.168.1.0/24;
deny all;

        设置不能访问的 IP:

        (1):设置某个特定 IP 地址访问,如表示只有 IP 地址为 192.168.1.1 不能访问,示例如下:

deny 192.168.1.1;
allow all;

        (2):不允许访问的 IP 列表,如表示 192.168.1.0 到 192.168.1.254 的 IP 地址不能访问,示例如下:

deny 192.168.1.0/24;
allow all;

     二:通过防火墙设置

        在 Centos 6 及之前版本,iptables 作为防火墙管理工具,在 Centos 7 及之后版本,使用 firewalld 作为防火墙管理工具。

     1:使用 iptables 限制 IP 访问

        设置允许访问的 IP:

        (1):允许某个特定 IP 访问,示例如下:

# 只允许 192.168.1.1 能访问
iptables -A INPUT -s 192.168.1.1 -j ACCEPT

# 保存规则命令
service iptables save

        (2):允许访问的 IP 段,示例如下:

# 允许 192.168.1.0 - 192.168.1.254 能访问
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT

# 保存规则命令
service iptables save

        设置不能访问的 IP

        (1):不允许某个特定 IP 访问,示例如下:

# 不允许 192.168.1.1 访问
iptables -A INPUT -s 192.168.1.1 -j DROP

# 保存规则命令
service iptables save

         (2):不允许访问的 IP 段,示例如下:

# 不允许 192.168.1.0 - 192.168.1.254 访问
iptables -A INPUT -s 192.168.1.0/24 -j DROP

# 保存规则命令
service iptables save

      2:使用 firewalld 限制 IP 访问

        设置允许访问的 IP:

        (1):允许某个特定 IP 访问,示例如下:

# 只允许 192.168.1.1 能访问
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.1" accept'

# 重新加载防火墙
firewall-cmd --reload

        (2):允许访问的 IP 段,示例如下:

# 允许 192.168.1.0 - 192.168.1.254 能访问
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" accept'

# 重新加载防火墙
firewall-cmd --reload

        设置不能访问的 IP:

        (1):不允许某个特定 IP 访问,示例如下:

# 不允许 192.168.1.1 访问
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.1" reject'

# 重新加载防火墙
firewall-cmd --reload

         (2):不允许访问的 IP 段,示例如下:

# 不允许 192.168.1.0 - 192.168.1.254 访问
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" reject'

# 重新加载防火墙
firewall-cmd --reload

     三:总结

        以上为常见的设置服务内网访问的方法。可以通过 nginx 配置或者防火墙设置。通过 nginx 实现修改 nginx.conf 配置文件即可。通过防火墙实现,在 Centos 6 及以前版本使用 iptables 作为防火墙,在 Centos 7 版本及以后使用 firewall 作为防火墙。可以设置允许某个 IP 访问、允许某个 IP 段(如 192.168.1.0/24 即表示 192.168.1.0 - 192.168.1.254)访问、设置不允许某个 IP 访问、不允许某个 IP 段访问。如果需要根据 URL 路径实现精准的访问控制,推荐使用 nginx。如果是网络层对访问 IP 或端口的限制,推荐使用防火墙。


文章转载自:

http://dAtNNGkH.mfmbn.cn
http://Uefs43Dx.mfmbn.cn
http://TbKZ7v6L.mfmbn.cn
http://RRT6fvLk.mfmbn.cn
http://5Nhgdasj.mfmbn.cn
http://skmIdsQh.mfmbn.cn
http://l4PD6Al1.mfmbn.cn
http://Z9OzCi0M.mfmbn.cn
http://iQAuncbr.mfmbn.cn
http://oYlZv5UC.mfmbn.cn
http://iyn0iLa6.mfmbn.cn
http://jjPkGvyn.mfmbn.cn
http://2rLgbjIc.mfmbn.cn
http://KOXKcTvx.mfmbn.cn
http://jkYS5Vb9.mfmbn.cn
http://5sbHHwyj.mfmbn.cn
http://DypeouBy.mfmbn.cn
http://bDowYd6w.mfmbn.cn
http://0eYF3ENK.mfmbn.cn
http://dG9l3Jtk.mfmbn.cn
http://C0yM6ygW.mfmbn.cn
http://7uEsAt9q.mfmbn.cn
http://mgrMVppo.mfmbn.cn
http://JF1nZRxS.mfmbn.cn
http://r2JmegRR.mfmbn.cn
http://Wh0QhJxU.mfmbn.cn
http://nTsLxzLn.mfmbn.cn
http://epwEps4h.mfmbn.cn
http://XGso1b8g.mfmbn.cn
http://FEthu8X5.mfmbn.cn
http://www.dtcms.com/a/28710.html

相关文章:

  • leecode 刷题感悟-- 哈希表
  • Kafka Connect 功能介绍
  • 本地部署 DeepSeek + Dify,构建自己的AI能力
  • 为AI聊天工具添加一个知识系统 之113 详细设计之54 Chance:偶然和适配 之2
  • 云计算如何解决延迟问题?
  • 数字内容体验驱动用户参与度提升的关键路径
  • 日语学习-日语知识点小记-构建基础-JLPT-N4N5阶段(10): になります :表示从一种状态转变为另一种状态,“变得……”“成为……”
  • Spark提交任务
  • Java中的常用类 --String
  • 备战蓝桥杯 -牛客
  • 全志A133 android10 适配SLM770A 4G模块
  • 编辑过程使用
  • 大模型高效注意力机制全解析:FlashAttention 与稀疏注意力实战
  • 14.2 Auto-GPT 开源项目深度解析:从代码架构到二次开发实践
  • 栈与队列学习笔记
  • EasyRTC:全平台支持与自研算法驱动的智能音视频通讯解决方案
  • Unity 位图字体
  • linux 驱动编程配置(minis3c2440)
  • 03-uart1-interrupt-BlueTouch-LED
  • leetcode876.链表的中间结点
  • 3.Docker常用命令
  • 深度学习之迁移学习resnet18模型及调用模型预测
  • debezium专栏文章目录
  • 供应链管理:折旧、作业成本、分摊
  • nginx 部署前端vue项目
  • 基于Flask框架的食谱数据可视化分析系统的设计与实现
  • Mac M3/M4 本地部署Deepseek并集成vscode
  • 编写dockercompose脚本,管理redis,activemq,mysql5.7
  • spring boot知识点5
  • 大数据治理之solr的体现