背景
在公司完成了Java web项目的开发工作,现在业主需要通过外网访问到该项目。那么该如何做?
说到这里,本人确实走了好多弯路,找资料,请教别人,他们说的基本都不能完全解决目前的问题。现将一些经验分享出来,希望可以帮到更多的人。
条件分析
1、固定IP
既然需要外网访问,那么首先得保证客户现场的服务器能够上外网,因为我这个项目现场用的服务器的上网方式是ip动态获取的,所以之前不管怎么弄都不能上外网。(不是绝对的,只是动态ip会一直变化)
后来通过查资料,知道需要固定ip地址,于是告诉业主申请下固定ip,拿到固定ip之后,由于当时还没采购路由器,所以我是直接将电信网线接口插服务器的网卡上,然后配置下运营商提供的网络信息。这时候服务器就可以上外网了,并且ip地址还是固定的。(原来动态获取ip的方式直接去掉了)
2、多网卡服务器
我们都知道服务器都是多网卡的,而我们电脑一般都是一个网卡。我这个项目的服务器除了外网接入,还有内部的局域网。但是我们要清楚一个道理,就是不管网卡有几个,我们在浏览器输入任何一个网卡的ip地址都是可以访问我们本地项目的。
举个例子:
本地项目访问地址是:http://localhost:8080/szgtsw/
内网网卡1ip地址为:10.10.70.52
外网网卡2ip地址为:218.4.165.118
那么本地项目也可以这么访问:
http://10.10.70.52:8080/szgtsw或http://218.4.165.118:8080/szgtsw
3、检查防火墙
在外部可以先使用http://218.4.165.118:8080/szgtsw访问项目,如果可以访问,则防火墙忽略。如果还是不能访问,检查下防火墙是不是打开了,把防火墙关闭。
4、外部远程服务器ip地址
如果还是不能上网,可以用外网远程访问服务器ip地址,如输入:218.4.165.118,如果可以远程成功,那代表基本可以实现外网访问项目了,只是需要项目上做一些端口设置。
5、修改tomcat端口号
我们访问项目一般端口号都是8080,这个端口太常用了,改成一个不常用的端口。如:2333、3344等。
6、成功访问项目
修改端口号之后,输入地址:http://218.4.165.118:3444/szgtsw,成功访问项目。
疑难分析
1、我的服务器配置了静态ip,可以上外网了,外部也通过ip地址可以访问服务器。但是,为啥我在外部输入项目地址:
http://218.4.165.118/szgtsw不能访问到项目?(tomcat端口号修改为了80)
这个一般是因为电信运营商禁止了80端口对外开放,如果硬是需要开放80端口,则需要去警察局备案,这个就麻烦多了。
如果需要用到路由器,可以参考如何将java web项目通过外网发布(有路由篇)