05-hust

Tomcat中实现IP访问限制



tomcat8.5管理员默认只能在安装tomcat的机器上访问,如果想在其他机器上访问,则需要进行配置修改

 

效果:只有指定的主机或IP地址才可以访问部署在Tomcat下的应用。Tomcat提

供了两个参数供你配置:RemoteHostValve 和RemoteAddrValve,前者用于限

制主机名,后者用于限制IP地址。


通过配置这两个参数,可以让你过滤来自请求的主机或IP地址,并允许或拒绝

哪些主机/IP。
一、全局设置,对Tomcat下所有应用生效
server.xml中添加下面一行,重启服务器即可:
< Valve className="org.apache.catalina.valves.RemoteAddrValve"

allow="192.168.1.*" deny=""/> 
此行放在</Host>之前。
例:
1,只允许192.168.1.10访问:<Valve

className="org.apache.catalina.valves.RemoteAddrValve"

allow="192.168.1.10" deny=""/>
2,只允许192.168.1.*网段访问:<Valve

className="org.apache.catalina.valves.RemoteAddrValve"

allow="192.168.1.*" deny=""/>
3,只允许192.168.1.10、192.168.1.30访问:<Valve

className="org.apache.catalina.valves.RemoteAddrValve"

allow="192.168.1.10,192.168.1.30" deny=""/>
4,根据主机名进行限制:<Valve

className="org.apache.catalina.valves.RemoteHostValve"

allow="abc.com" deny=""/>


二、局部设置,仅对具体的应用生效
根据项目配置情况进行设置:
1,使用conf目录下xml文件进行配置${tomcat_root}\conf\proj_1.xml
2,直接在server.xml中进行设置${tomcat_root}\conf\server.xml
在上述文件对应项目的</Context>前增加下面一行:<Valve

className="org.apache.catalina.valves.RemoteAddrValve"

allow="192.168.1.*" deny=""/>

 

特别需求:测试版本不想提供别人访问
打开tomcat6\conf\server.xml文件
如果是要限制整个站点别人不能访问,则要将
<Valve className="org.apache.catalina.valves.RemoteAddrValve" 
allow="192.168.1.*,192.168.2.*,*.mysite.com" deny=""/> 
加入到<HOST></HOST>标签中
如果是要限制某个站点不能被访问,则要加入到<Context>里面就可以。

< Context path="/myweb" reloadable="true" docBase="E:\tomcat6\webapps\myweb">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.13.110,192.168.1.*,220.250.13.21" deny=""/> 
< /Context>
 RemoteHostValve
根据主机名进行限制:
<Valve className="org.apache.catalina.valves.RemoteHostValve" allow="tmachine1" deny=""/>
修改文件:

tomcat/conf/server.xml

 

通过tomcat限制ip访问

<Engine name="Standalone" ...>
< Valve className="org.apache.catalina.valves.RemoteHostValve"
         allow="*.mycompany.com,*.a.com"/> 域名限制
< Valve className="org.apache.catalina.valves.RemoteAddrValve"
         deny="192.168.1.*"/> IP限制
< /Engine>
重启tomcat生效
--------------------------------------------------------------------------------------------------------------------------------------------

tomcat8.5管理员默认只能在安装tomcat的机器上访问,如果想在其他机器上访问,则需要进行配置修改

  1. 添加用户和权限(<tomcat>\conf\tomcat-users.xml):

    <role rolename="manager-gui"/>

    <role rolename="admin-gui"/>

    <user username="admin" password="admin" roles="admin-gui,manager-gui" />

  2. 修改tomcat管理功能配置文件(<tomcat>/webapps/manager/META-INF/context.xml),注释掉地址限制:

    <Context antiResourceLocking="false" privileged="true" >

        <Valve className="org.apache.catalina.valves.RemoteAddrValve"

             allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

    </Context>

    改为

    <Context antiResourceLocking="false" privileged="true" >

        <!--

        <Valve className="org.apache.catalina.valves.RemoteAddrValve"

             allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

        -->

    </Context>

  3. 重启服务器,刷新访问的浏览器登录即可访问:

    http://网址/manager/html

    ---------------------------------------------------------------------------------------------------------------------------------------

     

     

 
  2.4 安装完tomcat后增加用户:
    编辑 ..\conf\tomcat-users.xml 文件
    在 <tomcat-user> 段落中增加以下几行:
        <role rolename="manager-gui"/>
        <role rolename="manager-script"/>
        <role rolename="admin-gui"/>
        <role rolename="admin-script"/>
        <role rolename="tomcat-gui"/>        
        <user username="admin" password="12345" roles="standard,manager-gui,manager-script,admin-gui,admin-script,tomcat-gui"/>
    </tomcat-user>
    2.5 停止服务:./shutdown.sh
    2.6 修改tomcat默认的端口:
        进入 ./conf/server.xml文件,将
        <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
        中port="8080"修改为port="80"
    2.7 登陆tomcat
        http://127.0.0.1:80 (默认的80端口可以省略,如果是其他的端口则必须加上)
    2.8 如果在登陆到tomcat后选择 host manager后出现403错误,在下面的文件中加入本机的IP地址:
        /tomcat/apache-tomcat-9.0.0.M13/webapps/manager/META-INF/context.xml
        修改前的文件:
        <Context antiResourceLocking="false" privileged="true" >
            <Valve className="org.apache.catalina.valves.RemoteAddrValve"
            allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
        </Context>        
        修改后的文件:
        <Context antiResourceLocking="false" privileged="true" >
            <Valve className="org.apache.catalina.valves.RemoteAddrValve"
            allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|127.0.0.1|192.168.58.128" />
        </Context>

 

 

 

 
END
 

分类:

技术点:

相关文章:

  • 2021-07-26
  • 2021-12-10
  • 2022-01-18
  • 2021-04-17
  • 2021-09-27
  • 2021-11-06
  • 2021-11-06
猜你喜欢
  • 2021-11-16
  • 2021-10-25
  • 2021-10-27
  • 2021-05-03
  • 2021-11-19
  • 2022-02-17
  • 2021-12-23
相关资源
相似解决方案