外网访问自己的tomcat

本文介绍了如何在个人电脑上搭建Tomcat服务器,并通过修改配置文件实现javaweb程序在本地IP地址上的访问,进而允许外网用户通过IP和自定义域名访问。详细步骤包括调整Tomcat端口、设置端口映射、使用动态域名服务如花生壳,以及在有路由器的情况下配置端口转发。

我们平常学习时经常会写一下javaweb程序,我们为了更能逼近现实,就想着自己的javaweb程序发布后,外网的同学能够访问我们的网站,难道我们去买空间,去买域名嘛,其实也没必要,我们只是学习,测试之用,在自己的电脑上搭建一个服务器完全可以满足要求。上次写的一篇博客,PC服务端与Android客户端实现网络通信,就是利用这个原理。

我们分为三步走来实现:(我这里用的示例javaweb程序是我自己简单写的一个小程序shop1)

1

我们用Tomcat服务器,如果我们的javaweb程序已经部署到了Tomcat服务器,一般我们在本地访问的地址为:localhost:8080/shop1localhost指本机,即127.0.0.18080端口号,shop1你部署的项目名称,但太过繁琐,我们只想通过IP地址来访问我们的项目,即127.0.0.1或者localhost,我们只需修改一下Tomcat的配置即可,打开Tomcat所在的目录,打开conf文件夹,打开server.xml文件,所要修改的部分如下:

[plain]  view plain copy
  1.    
  2.   
  3. <Connector port="80" protocol="HTTP/1.1"  
  4.   
  5.                connectionTimeout="20000"  
  6.   
  7.                redirectPort="8443" />  
  8.   
  9.    
  10.   
  11. <Context path="" docBase="shop1" reloadable="true" />  


 

即将port从原先的8080修改成80,因为http协议的默认端口是80,这样你就可以不用再输端口号了,把docBase="shop1"的值修改成你所部属的项目的名称,默认指向你的项目,这样你就可以不输项目的名称了。

还得注意一点Tomcat 7.0的版本的server.xml文件中居然没有

[plain]  view plain copy
  1. <Context path="" docBase="shop1" reloadable="true" />  


这一条,又下载了一个5.0版本的居然有,如果你的没有,复制加进去就可以了。

OK,这样的话,你在浏览器里输入localhost就可以访问你的项目了!

PS:为了下来的工作中不出现什么问题,我并没有将8080端口改成80,据说80端口被电信封掉了,我让用电信上网的同学访问我的网站,果然不行,这里我们明白道理就可以了,只是学习测试之用,所以我们就用8080端口。

 

2

上一步我们只实现了自己访问,但如何让外网的同学访问,这里可能涉及了简单的网络知识,我网络学的也不是很好。就说的比较通俗一点。有两种情况(1)你上网没有用路由,运营商单独分给你一个IP地址,那你直接可以用你的IP让外网的同学来访问你的网站,我们这里用的是8080端口,所以形式为:XX.XX.XX.XX:8080。为了让多的同学了解,我在啰嗦一下,怎么知道自己的IP地址,你不必用在cmd命令行输入ipconfig这种略显专业的方法去获取,其实只要在百度搜索“IP查询”,第一个就是。

2)用了路由器,一个路由器带了好几台电脑,比如说跟室友,这就需要你去路由管理页面去设置一下,端口映射,让别人访问你们的IP地址时,映射到你的电脑,在浏览器中输入192.168.1.1(以你的路由为准),进入路由管理页面,操作如下图:

转发规则-----虚拟服务器-------添加新条目

端口我们没改,所以填8080IP地址为你的电脑在局域网中的地址,怎么样知道自己的局域网中的地址,很简单自己百度一下,只要局域网里的电脑不是太多,一般为192.168.1.XXX,我这里为192.168.1.101,然后点击保存,OK,然后外网就可以用你们IP去访问你的网站了!

我的效果图如下:

这时可以把这个网址发给你的同学,试一下,他能不能访问你的网站,答案是肯定的!

 

3,

但是又有新问题了,你第二天打开路由,或者再次上网时,运营商会重新分配给你一个新的IP地址,难道你让你同学访问时,再次把这个IP地址发给他吗?显然这是不合理了。

此时,我们就想有一个动态域名多好。这里给大家介绍一款软件“花生壳”,下载安装,然后注册后,你就会获得一个免费的二级域名,每次开机自启后,就会将花生壳服务端中的IP数据更新成你新的IP地址,然后你每次用你固定的域名来访问时,就会解析到你新的IP地址。

如下图:

双击你的域名,看有没有显示出“经检测,您的域名已激活并指向正确”!

 

OK,到这里,没有路由的同学,就可以直接用你的域名访问了!

 

有路由的同学,还得多操作一步:

再次进入路由管理页面,操作如下图:

点击“动态DNS,这时如果你的上述操作都没问题的话,服务提供者那一栏已经自动填充成花生壳的网址了,然后输入用户名,密码,点击登录,如果显示为“连接成功”,那点击“保存”。

到这里,终于大功告成,看一下最终效果图:

可以看到,我用我的域名成功的访问到了我的网站。

PS:有时显示“验证成功”时也是个假象,一点击“保存”时,又显示为“验证失败”,再点击“登录”,多点击几次“保存”,直到它一直显示为“验证成功”即可,反正就是多试几次。

祝君好运!


 

如何利用自己的电脑做服务器发布tomcat的WEB项目供外网访问

  5877人阅读  评论(5)  收藏  举报

1、首先你要确定你有一个外网ip地址。如果你分配到的是一个局域网IP地址需要经过一系列的转换为外网ip地址,然后继续下面操作。

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

 1)<Connector port="80" protocol="HTTP/1.1"   connectionTimeout="20000"      redirectPort="8443" />  将port端口改为80,基于http协议一般是通过80端口访问的,这样可以避免每次都输入8080的麻烦。

 2)<Engine name="Catalina" defaultHost="171.35.52.187"> 将defaulHost的localhost改变为你自己的外网ip地址,提供给外面访问。

 3)<Host name="171.35.52.187"  appBase="webapps"    unpackWARs="true" autoDeploy="true"> 

    <Context path="test" docBase="D:/SudentManager" reloadable="true" crossContext="true"></Context> 将Host 里的name改为外网IP地址,同时在该标签里加入Context标签,内容如上,path 代表访问的虚拟路径,docBase代表的是实际项目路径。

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

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


<think>嗯,用户想配置Tomcat外网访问。首先,我得回忆一下Tomcat的基本配置步骤。记得Tomcat默认监听的是本地地址,也就是127.0.0.1,所以外网肯定访问不了。需要修改server.xml里的连接器配置,把address改成0.0.0.0或者注释掉。对吗?对了,引用里提到过修改Tomcat配置文件,比如引用[1]和引用[3]都提到了配置服务器端口,可能还需要检查端口是否正确开放。 然后,防火墙的问题。服务器上的防火墙可能会阻挡外部请求,尤其是Windows和Linux有不同的配置方法。比如,在Windows上需要添加入站规则,允许8080端口,而Linux可能需要用iptables或者firewalld。用户可能用的是不同的操作系统,所以需要分别说明步骤。 另外,云服务器的情况,比如阿里云,可能有安全组设置。引用[2]提到阿里云要配置安全组规则,开放8080端口,这也是关键的一步。用户如果用的是云服务,这一步必不可少,否则光改Tomcat和本地防火墙可能还不够。 还有跨域的问题,虽然用户主要问外网访问,但有时候部署应用时可能会有跨域请求,引用[4]和引用[5]提到了在web.xml里配置CorsFilter。不过这可能不是外网访问的直接问题,属于后续应用配置,但用户可能需要知道相关设置,所以可以提一下。 接下来要分步骤说明:修改Tomcat配置、配置系统防火墙、处理云服务器安全组。每个步骤都需要详细说明,比如在server.xml中找到Connector标签,修改address属性。然后检查防火墙是否开放端口,不同的系统操作不同。最后,如果是云服务器,检查安全组设置。 还要注意,配置完成后需要重启Tomcat服务,让改动生效。同时,测试外网访问时,可能要用服务器的公网IP,而不是localhost。另外,如果Tomcat有默认的安全设置,可能需要调整,比如关闭某些安全限制。 有没有遗漏的步骤?比如,Tomcat的版本差异,可能配置文件的位置或参数名称不同?不过通常配置address和端口是通用的。另外,SELinux或者AppArmor在Linux上可能会影响端口访问,但一般用户可能不太熟悉,暂时先不提,除非用户遇到问题。 总结一下,步骤应该是:1. 修改Tomcat的server.xml,允许外部IP连接;2. 开放系统防火墙的端口;3. 配置云服务商的安全组(如果适用)。最后测试访问,处理可能的跨域问题。</think>### 如何配置Tomcat以支持外网访问? #### 1. **修改Tomcat配置文件** Tomcat默认绑定到本地环回地址(`127.0.0.1`),需修改为允许外部IP访问: - 打开`conf/server.xml`,找到`<Connector>`标签(通常为8080端口)。 - 将`address`属性值改为`0.0.0.0`,或直接删除该属性: ```xml <Connector port="8080" protocol="HTTP/1.1" address="0.0.0.0" connectionTimeout="20000" redirectPort="8443" /> ``` 此配置允许所有IP通过8080端口访问Tomcat[^1][^3]。 #### 2. **配置系统防火墙** 开放Tomcat服务端口(如8080): - **Windows**: - 控制面板 → Windows Defender 防火墙 → 高级设置 → 新建入站规则 → 允许TCP端口8080[^1]。 - **Linux**: ```bash sudo ufw allow 8080/tcp # 若使用ufw 或 sudo firewall-cmd --permanent --add-port=8080/tcp # 若使用firewalld ``` #### 3. **云服务器安全组配置(如阿里云、AWS)** - 登录云控制台,找到安全组规则。 - 添加入方向规则,允许来源`0.0.0.0/0`访问8080端口[^2]。 #### 4. **验证配置** - 重启Tomcat: ```bash ./bin/shutdown.sh && ./bin/startup.sh # Linux 或双击 startup.bat # Windows ``` - 外网访问测试:浏览器输入`http://服务器公网IP:8080`,若显示Tomcat默认页则成功。 #### 5. **解决跨域问题(可选)** 若应用涉及跨域请求,需在`conf/web.xml`中添加CORS过滤器: ```xml <filter> <filter-name>CorsFilter</filter-name> <filter-class>org.apache.catalina.filters.CorsFilter</filter-class> <init-param> <param-name>cors.allowed.origins</param-name> <param-value>*</param-value> </init-param> </filter> <filter-mapping> <filter-name>CorsFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` 重启Tomcat生效[^4][^5]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值