理想情况下,用户应该使用网络防火墙来限制基于 IP 的访问。然而,利用Tomcat 应用服务器也可以实现的。

步骤

  1. 进行备份并打开 server.xml
  2. 搜索<Valve className="org.apache.catalina.valves.RemoteAddrValve"/>
  3. 您可以将 IP 地址列入白名单或黑名单。 根据您的要求在第二步中找到的行下添加以下行。
    在突出显示的占位符中提供您的 ip 模式:
    1. 将 IP 地址列入白名单: 
      <Valve className="org.apache.catalina.valves.RemoteAddrValve" denyStatus="500" allow=" <your-ip-pattern-to-allow> " />
    2. 将 IP 地址列入黑名单: 
      <Valve className="org.apache.catalina.valves.RemoteAddrValve" denyStatus="500" deny=" <your-ip-pattern-to-deny> " />
  4. 重新启动 Tomcat 并通过访问它来验证配置。
从受限 IP 访问 Tomcat 时:HTTP ERROR 500 将作为响应返回。

示例配置

将一组 IP 地址列入白名单的配置: 
  1. <Valve className="org.apache.catalina.valves.RemoteAddrValve" denyStatus="500" allow=" ^(127\.\d+\.\d+\.\d+|::1|0:0:0:0 :0:0:0:1|10\.14\.17\.1|10\.14\.18\.1)$ " />

配置分解

  1. 白名单  - 只允许访问与正则表达式模式匹配的特定 IP 集。
  2. 黑名单   - 拒绝访问与正则表达式模式匹配的特定 IP 集。

示例正则表达式模式:^( 127\.\d+\.\d+\.\d+ | ::1 | 0:0:0:0:0:0:0:1 |10\.14\.17\.1 |10\.14\.18\.1)$"

注意:多组 IP 由竖线字符分隔。
  1. 通过本地 ipv4 和 ipv6 地址的 127.xx.xx.xx 和 ::1 和 0:0:0:0:0:0:0:1 访问 Applications Manager。即在同一台机器上:

    1. 127\.\d+\.\d+\.\d+
    2. ::1
    3. 0:0:0:0:0:0:0:1
  2. 要通过用户特定 IP 的 10.14.17.1 和 10.14.18.1 访问 Applications Manager:
    1. 10\.14\.17\.1
    2. 10\.14\.18\.1

IP 也可以在通配符模式中提及。 例如,允许所有以 10.14.xx.xx 开头的 IP

  1. <Valve className="org.apache.catalina.valves.RemoteAddrValve" denyStatus="500" allow=" ^(127\.\d+\.\d+\.\d+|::1|0:0:0:0 :0:0:0:1|10\.14\.\d+\.\d+)$ " />

参考

  1. 如果您正在手动编辑文件,请始终备份该文件并使用它来替换它,以防遇到任何问题。
  2. Tomcat 9 -IP白名单/黑名单配置

Tomcat IP白名单/黑名单配置相关推荐

  1. Oracle数据库IP访问限制(IP白名单黑名单)

    1.编辑sqlnet.ora 内容为: #允许访问的IP(白名单) TCP.INVITED_NODES=(127.0.0.1,192.168.56.109,ip2,ip3,..,..本地IP..)若使 ...

  2. 计算ip白名单/黑名单

    故事的开头是:为了安全,服务器访问应该配置一个可以访问的白名单. 过了几天,运维组提要求:得把开发的网段给剔出去,但是还要留几个ip给开发负责验证的用. 偏偏管理平台功能有限,只能设置成白名单.我这一 ...

  3. php redis ip查找,php+redis实现ip白名单并提供可配置ip页面

    ip白名单或者黑名单,目的是为了达到一种受限访问,希望在名单内用户可以访问,就把名单叫白名单:希望在名单内用户拒绝访问,就是黑名单.无论我们希望使用哪种名单方式,实现方式都一样. 在nginx下我们通 ...

  4. centos7 firewalld ip与端口白名单配置等,开放端口与ip白名单

    1.查看firewalld.service服务状态 #查看firewalld.service服务状态 systemctl status firewalld#查看firewall运行状态 firewal ...

  5. Laravel项目IP黑名单,IP白名单,IP访问频率控制中间件

    实际上Laravel自带有访问控制路由中间件 throttle 默认是 throttle:60,1 就是限制同一个IP在1分钟60次请求,超出的会被拦截,下一分钟才会恢复访问,它没有黑名单和白名单的功 ...

  6. tomcat 显示访问的ip白名单

    tomcat 显示访问的ip白名单 找到 Tomcat 服务器根目录下的 conf/server.xml,在 节点内添加一个属性 className 的值为 "org.apache.cata ...

  7. nginx配置IP白名单

    分析nginx访问日志,有哪些IP访问过nginx. 命令参考:awk '{print $1}' logs/access.log | sort | uniq -c | sort -nr -k1 输出的 ...

  8. 微信公众号配置IP白名单返回“errcode”: 40164

    文章目录 问题背景 返回错误 可能原因分析 解决方案 问题背景 微信公众号→设置与开发→基本配置→IP白名单 返回错误 微信公众号设置白名单不生效, "errcode": 4016 ...

  9. Eginx配置(SSL,令牌登录认证,IP白名单,代理转发)

    一般需要对接银行的接口,都需要用前置机,在前置机上安装银行的客户端(CBS).我们接口调用的实际是前置机上的http服务. 为了数据安全,一般会把前置机的网络和服务器的网络处理成同一个内网,防止数据被 ...

最新文章

  1. db2 linux 导入数据_「软件资料」-「软件使用」-Linux 导入、导出 MySQL 数据库命令...
  2. mysql 资深dba_MySQL数据库专家分享资深DBA经验
  3. Ajax简要应用说明及技术开发实例
  4. 搭建一个简易的https
  5. 写了 15 年代码,总结出提升 10 倍效率的三件事
  6. 2017年1月22日 10:00
  7. gateway调用后台系统时选择RFC的决定逻辑
  8. linux下安装win xp 进pe出错,PE安装原版XP系统(含高版本PE安装选项灰色处理办法)...
  9. 超级好用的使用python批量更新MYsql,速度从一万条需要一天变道一万条需要10分钟左右
  10. python循环迭代_Python中循环迭代的重做
  11. Mybatis高级应用 延迟加载
  12. Perfect:Swift 语言服务器端软件框架简介
  13. 基于人脸识别的课堂签到管理系统(四)---摄像头上传实时数据,百度AI读取并返回信息以及多线程操作
  14. centos6.5 mysql登陆_centos6.5下mysql无法登陆的问题
  15. java面试题关于servlet_关于Java servlet的面试题目
  16. 《算法导论》:关于循环不变式
  17. 外贸网站建站营销及推广?
  18. matlab画带有正态密度曲线的直方图
  19. 计算机主机电源排线怎么取,电脑电源的线怎么接? 机箱电源线接法图解
  20. ffmpeg批量转换ts为mp4

热门文章

  1. 用原生JS实现爱奇艺首页导航栏
  2. html++转义函数,转义函数escapeHTML和unescapeHTML
  3. Django配置默认路由,接受所有请求
  4. java人脸识别快速搭建_基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
  5. c语言双重for循环流程图_循环三巨头—之for,while与do while
  6. html字体超出后隐藏省略号,CSS控制文字超出部分省略号显示
  7. ODE(Open Dynamics Engine)学习笔记
  8. PDF文档过期时间/自毁设置
  9. 【hash】哈希算法、哈希碰撞、一致性哈希
  10. 我的世界java要哪个版本_我的世界网易 Java 版哪个版本比较好?