项目设置内网 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 或端口的限制,推荐使用防火墙。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/973391.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数仓搭建(hive):DWB层(基础数据层)

维度退化: 通过减少表的数量和提高数据的冗余来优化查询性能。 在维度退化中,相关的维度数据被合并到一个宽表中,减少了查询时需要进行的表连接操作。例如,在销售数据仓库中,客户信息、产品信息和时间信息等维度可能会被合并到一…

多模态特征提取与融合助力高光谱+LiDAR数据分类性能飞跃

目录 论文解读 总体架构 CMIIE 模块工作模式 MLFFC模块工作模式 论文解读 提出了一种新的多模态特征提取模块CMIIE,可以捕获高光谱和LiDAR数据之间的互补信息。设计了一个多层特征融合分类模块MLFFC,通过对不同层级的特征进行融合来提高分类性能。使用对抗学习策略来指导网…

Flutter 正在推进全新 PlatformView 实现 HCPP, 它又用到了 Android 上的什么黑科技

跨平台开发里的 PlatformView 实现一直是一个经久不衰的话题,在之前的 《深入 Flutter 和 Compose 的 PlatformView 实现对比》 我们就详细聊过 Flutter 和 Compose 在 PlatformView 实现上的异同之处,也聊到了 Compose 为什么在相同实现上对比 Flutter …

Qt/C++面试【速通笔记一】

Qt 信号与槽机制 什么是信号(Signal)和槽(Slot)? 在Qt中,信号(Signal)和槽(Slot)是实现对象之间通信的一种机制。信号是对象在某些事件发生时发出的通知&…

《跟李沐学 AI》AlexNet论文逐段精读学习心得 | PyTorch 深度学习实战

前一篇文章,使用 AlexNet 实现图片分类 | PyTorch 深度学习实战 本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started 本篇文章内容来自于学习 9年后重读深度学习奠基作之一:AlexNet【下】【论文精读】】的心得。 《跟李沐…

【科研绘图系列】R语言绘制小提琴图、散点图和韦恩图(violin scatter plot Venn)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载画图1画图2画图3画图4画图5画图6画图7参考介绍 【科研绘图系列】R语言绘制小提琴图、散点图和韦恩图(violin & scatter plot & Venn) 加载R包 library…

IMX6ULL的ALT0、ALT1、ALT2、ALT3、ALT4等是啥意思?

在IMX6ULL的手册IMX6ULLRM.pdf中,发现了题目中这些描述,相关截图如下: 那么红框中的ALT0、ALT1、ALT2、ALT3、ALT4等是啥意思呢? 在IMX6ULL及其他NXP(Freescale)芯片中,ALT0、ALT1、ALT2、ALT…

Android Http-server 本地 web 服务

时间:2025年2月16日 地点:深圳.前海湾 需求 我们都知道 webview 可加载 URI,他有自己的协议 scheme: content:// 标识数据由 Content Provider 管理file:// 本地文件 http:// 网络资源 特别的,如果你想直接…

DeepSeek 冲击(含本地化部署实践)

DeepSeek无疑是春节档最火爆的话题,上线不足一月,其全球累计下载量已达4000万,反超ChatGPT成为全球增长最快的AI应用,并且完全开源。那么究竟DeepSeek有什么魔力,能够让大家趋之若鹜,他又将怎样改变世界AI格…

神经网络八股(1)

1.什么是有监督学习,无监督学习 有监督学习是带有标签的,无监督学习是没有标签的,简单来说就是有监督学习的输入输出都是固定的,已知的,无监督学习输入是已知的,输出是不固定的,无监督学习是通…

DeepSeek 助力 Vue 开发:打造丝滑的瀑布流布局(Masonry Layout)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…

【分布式理论14】分布式数据库存储:分表分库、主从复制与数据扩容策略

文章目录 一、分表分库1. 数据分表的必要性与方式2. 数据分库原则与优势 二、主从复制1. 读写分离架构设计2. 数据复制方式3. MySQL实现主从复制4. MySQL主从复制实践与高可用方案 三、数据扩容 随着业务的不断发展和数据量的增长,传统的单机关系型数据库已经逐渐不…

从传统到轻量级5G:网络架构演变与优化路径

轻量级5G​​​​ 随着5G技术的不断发展,通信网络架构正经历着前所未有的变革。传统的5G核心网架构虽然在性能和容量方面表现出色,但在灵活性、部署效率以及成本控制方面却面临一些挑战。为了应对日益复杂的通信需求,轻量级5G核心网成为了一种…

搭建Kubernetes (K8s) 集群----Centos系统

前期准备 准备3台Linux虚拟机(CentOS系统),参考 https://carry.blog.csdn.net/article/details/144578009https://carry.blog.csdn.net/article/details/144578009搭建Docker环境,参考 https://carry.blog.csdn.net/article/de…

OpenSSL实验

文章目录 一、OpenSSL安装二、OpenSSL配置常见路径查找配置文件的方法示例**1. 配置文件结构****2. 主要段落及其作用****(1) 默认段(Default Section)****(2) OID段(OID Section)****(3) CA相关段(CA Section&#xf…

51单片机-按键

1、独立按键 1.1、按键介绍 轻触开关是一种电子开关,使用时,轻轻按开关按钮就可使开关接通,当松开手时,开关断开。 1.2、独立按键原理 按键在闭合和断开时,触点会存在抖动现象。P2\P3\P1都是准双向IO口,…

DeepSeek动画视频全攻略:从架构到本地部署

DeepSeek 本身并不直接生成动画视频,而是通过与一系列先进的 AI 工具和传统软件协作,完成动画视频的制作任务。这一独特的架构模式,使得 DeepSeek 在动画视频创作领域发挥着不可或缺的辅助作用。其核心流程主要包括脚本生成、画面设计、视频合成与后期处理这几个关键环节。 …

EasyRTC智能硬件:实时畅联、沉浸互动、消音护航

在当今智能硬件迅猛发展的时代,音视频通讯技术已成为设备与用户、设备与设备间不可或缺的沟通纽带。而EasyRTC,凭借其无可比拟的实时性能、卓越的互动感受以及强大的交互实力,正逐步演变为智能硬件领域的“超级动力”核心。特别是其倾力打造的…

[AI相关]Unity的C#代码如何简写

是一个某培训机构的飞行棋教学源码 不知道,是否有人想知道怎么可以简写 (这个问AI,DeepSeek也应该找不到答案的) 静态变量 属性引用 单例 注入 一些UnityEvent特性就不说了。。。 IL 注入 运算符号改写

ubuntu 执行 sudo apt-get update 报错

记录一下,遇到这个问题了,网络上看到的解决办法,亲测有效 执行sudo apt-get update ,却报以下错误,“SECURITY: URL redirect target contains control characters rejecting ” 经检查发现,/etc/apt/source.list 下的…