Apache Tomcat 是一款轻量级的WEB应用服务器,对于初学者来说,很容易学习和上手。Apache Tomcat 服务成功启动后,会开启两个默认端口,一个是用于http请求的8080端口,这个端口大家应该都非常熟悉了,可以该端口访问到部署在Tomcat服务器上的WEB应用。不过,另外一个默认端口,估计很多大家就可能并没怎么去关注过,这个端口就是8005。
下面我们就以官方最新发布的apache-tomcat-8.5.78版本为例,来看看服务启动后的端口。
# sh startup.sh Using CATALINA_BASE: /root/apache-tomcat-8.5.78 Using CATALINA_HOME: /root/apache-tomcat-8.5.78 Using CATALINA_TMPDIR: /root/apache-tomcat-8.5.78/temp Using JRE_HOME: /usr/jdk1.8.0_321 Using CLASSPATH: /root/apache-tomcat-8.5.78/bin/bootstrap.jar:/root/apache-tomcat-8.5.78/bin/tomcat-juli.jar Using CATALINA_OPTS: Tomcat started.
讯享网
查看Tomcat服务的端口,可以发现成功启动了两个服务端口:8080、8005。不过,这里大家有没有注意到这两个端口的访问权限其实是不同的。
讯享网# netstat -tnlp| grep `ps -ef| grep tomcat| grep -v grep| awk '{print $2}'` tcp6 0 0 127.0.0.1:8005 :::* LISTEN 2431/java tcp6 0 0 :::8080 :::* LISTEN 2431/java
通过下面的命令执行结果,不知道大家看出来区别没有。8080端口同时开放了本机和外网访问的权限,而8005这个端口,仅提供了本机访问的权限,即localhost。
那为什么会有这个区别呢?
# telnet 192.168.223.200 8005 Trying 192.168.223.200... telnet: connect to address 192.168.223.200: Connection refused # telnet 127.0.0.1 8005 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. # telnet 127.0.0.1 8080 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. # telnet 192.168.223.200 8080 Trying 192.168.223.200... Connected to 192.168.223.200. Escape character is '^]'.
熟悉Tocmat配置的,应该都知道,这个8005端口是用于命令行关闭Tomcat服务的。下面就演示如何通过命令行关闭Tomcat。
首先,通过telnet命令远程连接到8005端口,然后输入默认的SHUTDOWN字符,就可以轻松关闭Tomcat服务。
讯享网# telnet 127.0.0.1 8005 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. SHUTDOWN Connection closed by foreign host. # ps -ef| grep tomcat| grep -v grep #
所以,为什么8005端口只开放了本机访问的权限,原因其实就是为了避免有用户通过互联网(或者是局域网),恶意连接到8005端口,然后发送SHUTDOWN字符串来远程关闭Tomcat服务。因此,一旦8005开放本机以外网络的访问权限,就会导致服务器安全受到严重的威胁。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/103466.html