首页 > 解决方案 > Tomcat URL 无法被另一台 PC 访问

问题描述

我正在使用 openstack 启动 Red Hat Enterprise Linux Server 版本 7.5 (Maipo) 并在其中安装 apache tomcat 9.0.17,部署 Web 应用程序,但我无法访问此 tomcat url,例如http://10.157.166.142: 8080通过我在同一内部网络中的另一台 Windows 电脑。但我可以在linux中使用它。

而且我还在 catalina.sh 中添加了以下内容以仅绑定 ipv4,在进行此更改之前,它仅绑定到 ipv6,但其他电脑仍然无法访问它

JAVA_OPTS=" $JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true "

curl -v http://localhost:8080工作正常。

ip:192.168.0.14 弹性ip:10.157.166.142

[root@bigdata]# netstat -tupln | grep :8080
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               
LISTEN      21373/java

[root@bigdata bin]# service iptables status
  Redirecting to /bin/systemctl status iptables.service
  ● iptables.service - IPv4 firewall with iptables
     Loaded: loaded (/usr/lib/systemd/system/iptables.service; disabled; 
  vendor preset: disabled)
     Active: inactive (dead)

使用 tcpdump,我尝试从我的 windows pc 访问并获取以下日志:

[root@bigdata docker.service.d]# tcpdump -i eth0 port 8080
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
10:32:07.738897 IP 10.141.174.148.54346 > bigdata.novalocal.webcache: Flags [S], seq 2866917131, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
10:32:07.741243 IP 10.141.174.148.54347 > bigdata.novalocal.webcache: Flags [S], seq 3985678636, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
10:32:07.990685 IP 10.141.174.148.54350 > bigdata.novalocal.webcache: Flags [S], seq 577076481, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
10:32:10.739649 IP 10.141.174.148.54346 > bigdata.novalocal.webcache: Flags [S], seq 2866917131, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
10:32:10.741583 IP 10.141.174.148.54347 > bigdata.novalocal.webcache: Flags [S], seq 3985678636, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
10:32:10.990666 IP 10.141.174.148.54350 > bigdata.novalocal.webcache: Flags [S], seq 577076481, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
10:32:16.738767 IP 10.141.174.148.54346 > bigdata.novalocal.webcache: Flags [S], seq 2866917131, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
10:32:16.741559 IP 10.141.174.148.54347 > bigdata.novalocal.webcache: Flags [S], seq 3985678636, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
10:32:16.990632 IP 10.141.174.148.54350 > bigdata.novalocal.webcache: Flags [S], seq 577076481, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
[root@bigdata docker.service.d]# lsof -i :8080 | grep LISTEN
java    21373 root   54u  IPv4 90812729      0t0  TCP *:webcache (LISTEN)

标签: javatomcat

解决方案


检查防火墙规则一次。8080默认情况下可能不打开端口。在部署应用程序的机器上,您必须向 iptables 添加新规则才能打开端口。

  1. 编辑 iptablesvi /etc/sysconfig/iptables
  2. 添加新规则以打开端口 8080,如下所示 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
  3. 保存文件并退出esc+:+w+q或检查此链接vi以查看保存更改后如何退出编辑器
  4. 重新加载iptables/etc/init.d/iptables restart

推荐阅读