如何从另一台机器访问 tomcat 管理器 GUI?

如何从另一台机器访问 tomcat 管理器 GUI?

我在远程服务器上的 ubuntu 16.04 上安装了 tomcat 8。我想从本地计算机访问 GUI 管理器应用程序。访问页面 /manager/html 时,我收到 403 访问被拒绝页面,其中包含以下信息:

默认情况下,仅可通过与 Tomcat 在同一台计算机上运行的浏览器访问主机管理器。如果您希望修改此限制,则需要编辑主机管理器的 context.xml 文件。

并要求将以下内容添加到此文件:

/conf/tomcat-users.xml

<role rolename="manager-gui"/>
<user username="username" password="password" roles="manager-gui"/>

我已经完成了,并重新启动了 tomcat:

sudo systemctl restart tomcat

但我收到相同的错误页面。

知道我错过了什么吗?

谢谢

答案1

对于Tomcat v8.5.4及以上版本,该文件<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>

更改此文件以注释Valve

<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>

之后刷新浏览器(不需要重启Tomcat),即可看到管理器页面。

答案2

要编辑的 context.xml 文件,由错误页面调用:

$CATALINA_HOME/webapps/manager/META-INF/context.xml

假设 CATALINA_HOME 是 tomcat 的安装位置。这是管理器 Web 应用程序的上下文配置文件。在此文件中,您通常会发现:

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

在这一行中,“允许“字段包含允许访问管理器 Web 应用程序的以管道分隔的 IP 地址列表。在此字段值的末尾添加一个管道和您的 IP 地址。

此后,只需刷新浏览器,无需重新启动 tomcat。

答案3

适用于 Tomcat 版本 7 及更高版本。
从 Tomcat 7 开始,一些内容发生了变化,以提高 Tomcat 的安全性。编辑tomcat-用户.xml文件您需要使用现有文件并保留 tomcat-users xmlns 信息,然后简单添加:

<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users xmlns="http://tomcat.apache.org/xml"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
   version="1.0">
<role rolename="manager-gui"/>
<user username="SOMEUSER" password="YOURPASS" roles="manager-gui"/>

请注意,管理器现在是 manager-gui,而不仅仅是管理器。有几种不同的管理器类型:

manager-gui
manager-script
manager-status
manager-jmx

最后一步——允许访问

默认情况下,只能通过与 Tomcat 在同一台计算机上运行的浏览器访问主机管理器。如果您希望修改此限制,则需要编辑tomcat/webapps/管理器/META-INF/context.xml允许所有 IP 或仅允许你的 IP。

以下配置允许所有 IP 访问管理器:

代替

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

allow=".*"

例子:

<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
 allow=".*" />
</Context>

最后 - 重新启动 tomcat,然后导航到 yourdomain.com/manager/html

相关内容