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=""/>
allow="192.168.1.*,192.168.2.*,*.mysite.com" deny=""/>
加入到<HOST></HOST>标签中
< 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>
tomcat/conf/server.xml
通过tomcat限制ip访问
< 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>
tomcat8.5管理员默认只能在安装tomcat的机器上访问,如果想在其他机器上访问,则需要进行配置修改
-
添加用户和权限(<tomcat>\conf\tomcat-users.xml):
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="admin" roles="admin-gui,manager-gui" />
-
<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>
-
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>