为什么外网无法访问本地tomcat

最近看了点网络的东西,加上之前对网络的理解:就觉得tomcat之所以只能内网访问,可能是学校路由
设置端口访问权限的问题。然后,又想着为什么其它应用的数据为什么可以被外网访问
,所以就想着把端口号改成动态端口,结果还是不行(如下图),特来请教下关于这方面的问题图片说明

外网端口是申请开放,内网端口要映射到外网端口。

端口映射是否正确,端口号是否冲突

172好像是局域网吧

图片说明,172.31是内网

是在同一个局域网吗?如果不是的话,需要下载花生壳之类的地址映射工具了。如果是的话,检查ip和端口号是否正确。

1、拿到外网IP地址,进行tomcat的server.xml文件的配置。主要进行下面三个地方的配置(本次配置采用的tomcat版本号是7.0.30)

1) 将port端口改为80,基于http协议一般是通过80端口访问的,这样可以避免每次都输入8080的麻烦。

2) 将defaulHost的localhost改变为你自己的外网ip地址,提供给外面访问。

3)

将Host 里的name改为外网IP地址,同时在该标签里加入Context标签,内容如上,path 代表访问的虚拟路径,docBase代表的是实际项目路径。

经过上面三步的配置,已经实现了服务器的配置。我们就可以启动Tomcat,此时通过ip地址可以直接访问该项目啦。

以上的方法完全适应局域网内使用。

你没有固定的公网ip,一般服务器都是有公网ip。如果没有的话,可以下载向日葵,进行内网穿透。向日葵会免费给你生成一个外网访问的域名。用生成的域名访问就行了

内网端口需要对外映射,然后在路由器/交换机上面进行绑定,即可.

172是内网,是学校分配给你的,你需要有自己的外网ip

需要做端口号映射,
tomcat的端口号在 路由设置中 映射外网端口号。。

[具体设置点这个链接。](https://www.baidu.com/link?url=U6mdyesCsDGVGNa2xtpgeS15mrnLIDqHFxdXxM2QTwthSetU2WOft_1FXVwt6__b0CX9jdX-q4mFI3iJ_V3jtZFz7CcHhHFajKTIiwIPu6y&wd=&eqid=b1046a0e0004429d000000065aa735b6 "")

说直白点就是,内网的服务器是可以相互ping通的,所以可以访问,外网ping内网是不通的,这时需要在网关上配置NAT映射,将你的tomcat服务器的ip映射到外网才可以。

找向日葵申个公网地址做个nat,或者弄个B。A。T的虚拟主机在那上面做tomcat。也可以咨询一下学校的管理员能不能在墙或外网设备上
给你虚个端口出来,总之没公网地址就无法从外网访问。

从外网访问需要借助一些端口映射软件的,网上找了一个开源的holer简单配置一个key就实现从外网访问了
https://github.com/Wisdom-Projects/holer

需要使用一些内网穿透软件,比如开源的holer配置一个key就实现从外网访问了
https://github.com/Wisdom-Projects/holer

你用的是私网IP,

私网IP地址段:
10.x.x.x
172.16.x.x -- 172.31.x.x
192.168.x.x

这些IP地址段外网是访问不了的,只能在局域网内使用.

从外网访问需要固定的公网IP,如果没有固定的公网IP可以使用开源的holer,配置一个key也能实现从外网访问的

https://github.com/Wisdom-Projects/holer
图片说明