centos6.2关于tomcat远程不能访问的问题处理过程
問題:局域網內配置好tocmat,服務器本機訪問http://ip:8080成功,但遠程訪問http://ip:8080失敗,下面是一步步排查過程:
1 tomcat禁用IPv6
關閉網卡IPV6協議
#netstat –anp |grep 8080? //是jsvc程序和tomcat用戶在用,且端口在監聽狀態
#lsof –i:8080?//發現type=IPV6,很奇怪怎么是IPV6監聽8080端口
#netstat –tpl //查看端口監聽協議
原因是Tomcat在啟動的時候,如果檢測到系統支持IPV6,默認監聽的是IPV6的端口,導致通過IPV4無法訪問。使用address=“0.0.0.0”的意思是監聽IPV4協議棧下的任何端口。IPV4協議監聽任何地址應配置:0.0.0.0。IPV6協議監聽任何地址應配置:0:0:0:0:0:0:0:0。
從系統層面關閉IPV6,覺得影響太大,于是先從tomcat應用層面關閉IPV6:
方法一:tomcat目錄下配置 bin/Catalina.sh
最后增加:
JAVA_OPTS="$JAVA_OPTS
-Djava.net.preferIPv4Stack=true
-Djava.net.preferIPv4Addresses=true "
無效
方法二:tomcat目錄下配置conf/server.xml
#netstat -an | grep 8080 //還是ipv6在監聽
在端口8080標簽內增加address=”0.0.0.0”
無效
2 系統網卡禁用IPv6
從系統層面直接關閉網卡的IPv6協議。
方法一:
#vi /etc/sysconfig/network
增加:NETWORKING_IPV6=no
#service network restart //重啟網絡
#lsmod |grep ipv6 //仍存在
無效
方法二:
在/etc/modprobe.d/dist.conf結尾添加
alias net-pf-10 off
alias ipv6 off
重啟機子
#lsof –i:8080 //type為ipv4了
可是關閉了ipv6關閉了防火墻還是無法遠程訪問tomcat,崩潰中。。。
3 防火墻配置
增加8080端口到防火墻配置中,執行以下操作:
# vi?/etc/sysconfig/iptables
增加以下代碼:
-A RH-Firewall-1-INPUT -m state --state NEW -mtcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp--dport 8080 -j ACCEPT
-A INPUT –p tcp –m tcp --dport 8080 –j ACCEPT
//重啟防火墻
# service iptables restart
#/etc/init.d/iptables status //查看防火墻狀態,已配置8080端口
遠程訪問依舊失敗,究竟原因是什么呢?即使關閉本機防火墻也沒辦法,各種折騰,已崩潰,耗時一天。
4 局域網限制端口
目前的狀態是關閉防火墻關閉IPV6,在本機訪問tocmat正常,但在局域網無法遠程訪問。綜合分析,可能是局域網服務器區的防火墻對端口作限制,通過telnet也無法返回,最后確認是這個問題。申請局域網防火墻開放服務器的tomcat端口。
從上述一個解決問題過程中,確實發現centos部署tomcat需要關注的兩點,一個是tomcat默認綁定了IPv6監聽端口;另一個是服務器本機防火墻iptables需要啟用8080端口。
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的centos6.2关于tomcat远程不能访问的问题处理过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Intel DPDK包部署试验
- 下一篇: (转载)Nutch2 WebPage 字