写点什么

外网访问 Ubuntu 下的 Tomcat

用户头像
U+2647
关注
发布于: 2021 年 04 月 04 日

搞了两天终于可以了。需要修改三处地方,就可以实现外网访问了。


注意:需要保证你的服务器不是通过路由器连的网络,如果是的话需要对路由器做转发配置。

1. 修改 tomcat 目录下的/conf/server.xml 文件

    <Connector port="8080" protocol="HTTP/1.1"               connectionTimeout="20000"               redirectPort="8443" />
复制代码


将 port 字段修改为一个开放端口,你也可以改成 80,这样在访问时就不用加端口号了,但是要记得开放 80 端口。这里我没有做修改。


一定要确保该端口是开放的。

2. 修改 tomcat/conf/server.xml 文件

  <Engine name="Catalina" defaultHost="localhost">

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
复制代码


将 localhost 改为你的 IP 地址,ubuntu 下可以使用 ifconfig


如果你的 IP 是路由器分配的话,需要对路由器做转发配置

3.最重要的一点!

百度到的大部分答案基本上到上面一步就结束了。如果你也这么幸运的成功了的话,这一步就没必要了。不过我的是没有成功。去 stacoverflow 上搜了一下。不成功的原因说是因为 JVM 没有监听 IPv4 的地址,所以无法访问。所以需要再修改下面两处。


修改 tomcat 目录下的/bin/catalina.sh 文件和 startup.sh。添加下面一句。


JAVA_OPTS= $JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses
复制代码


我的加上这两句已经可以访问了


如果你的服务器系统是 windows 的话需要修改.bat 的这两个文件

4. 如果还是不能访问

如果上面的你都配置好了,而且还不能访问的话,恰好你的服务器系统是 Ubuntu 的话,可以尝试下面的方法。安装 authbind。


apt-get install authbind
复制代码


修改/etc/default/tomcat7 文件。


修改为


AUTHBIND=yes
复制代码


重启后再不能访问的话,就试试你能不能上网,或者是不是用了路由器而且没有做转发配置,或者是端口没有开放。

5.阿里云 ubuntu 镜像 80 端口无法访问

阿里云服务器的 ubuntu 镜像默认情况是只有 root 用户才能访问 1024 以下的端口,所以如果这些都配置好了还不能访问的话,建议你用 root 用户启动 tomcat,或者更改端口。再(我)或(不)者(会)添加路由规则将 80 端口转发到其他端口

发布于: 2021 年 04 月 04 日阅读数: 10
用户头像

U+2647

关注

evolving code monkey 2018.11.05 加入

https://zdran.com/

评论

发布
暂无评论
外网访问Ubuntu下的Tomcat