外网访问 Ubuntu下的 tomcat

0x00 update 2017-03-14

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

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

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

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

0x01

修改tomcat目录下的/conf/server.xml文件
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
将port字段修改为一个开放端口,你也可以改成80,这样在访问时就不用加端口号了,但是要记得开放80端口。这里我没有做修改。

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

0x02

修改tomcat/conf/server.xml文件
  <Engine name="Catalina" defaultHost="localhost">


  <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
将localhost改为你的IP地址,ubuntu下可以使用ifconfig

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

0x03 最重要的一点!

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

修改tomcat目录下的/bin/catalina.sh文件和startup.sh。添加下面一句。
JAVA_OPTS= $JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses
我的加上这两句已经可以访问了

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

0x04

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

apt-get install authbind

修改/etc/default/tomcat7文件。
#AUTHBIND=no
修改为
AUTHBIND=yes
重启后再不能访问的话,就试试你能不能上网,或者是不是用了路由器而且没有做转发配置,或者是端口没有开放。

猜你喜欢

转载自blog.csdn.net/u013451048/article/details/52651190
今日推荐