Linux 下 Tomcat 结合内网穿透 实现 Web 应用公网访问

Linux 下 Tomcat 结合内网穿透 实现 Web 应用公网访问

前言

在日常的 Web 开发与测试中,常常会遇到这样的困扰:本地部署好的 Java Web 项目,只能在局域网内访问,想要让异地的同事协作调试、给客户演示功能,或是外出时远程查看项目运行状态,往往需要繁琐的公网 IP 配置、端口映射,甚至要依赖云服务器部署。

而有一种实用的内网穿透功能,能轻松打破这种网络限制 —— 它可以将本地运行的服务,无需复杂配置就能映射到公网,生成可全球访问的地址,让本地的 Tomcat 服务随时被外部设备访问。

今天我们要分享的,就是如何借助这一功能,搭配经典的 Tomcat 服务器,在 Linux 系统中快速实现 Web 应用的公网访问,整个过程简单易操作,几分钟就能完成配置,解决开发和演示中的网络访问难题。

image-20250826101154874

1.在CentOs7上安装OpenJDK

在已安装套件中查找含有java字符串的文件:

rpm-qa|grepjava

若没有安装则开始安装吧!

查询yum中存在的JDK版本:

yum list |grep java-11 
image-20250826103345132

执行以下命令安装:

yum install-y java-11-openjdk-headless-11.0.13.0.8-1.el7_9.x86_64 java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64 java-11-openjdk-devel-11.0.13.0.8-1.el7_9.x86_64 

验证一下,安装成功:

java--version
image-20250826104223874

配置环境变量:

vim /etc/profile 
image-20250826105622123

在最后一行,添加下列内容:

xport JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64 exportJRE_HOME=$JAVA_HOMEexportCLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATHexportPATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
image-20250826110824367

使文件生效:

source /etc/profile 

验证是否生效:

whereisjava
image-20250826111158436

这样我们就安装成功啦!

2.安装Tomcat10

首先到Tomcat官网下载安装包,我下载的是最新版的Tomcat10,具体步骤如下:

安装下图操作:

image-20250826145512750
image-20250826145707738
image-20250826145740444
image-20250826145836904
image-20250826145917792

打开虚拟机,切换到root用户下,创建Tomcat用户,命令如下:

useradd tomcat 

设置密码:

passwd tomcat 
image-20250826154329831

切换到Tomcat用户,能切换过去,代表成功创建该用户了。

su - tomcat 
image-20250826154402067

把 apache-tomcat-10.1.9.tar.gz上传到/home/tomcat/目录下。

image-20250826154451234
image-20250826154515289

上传成功。

image-20250826154532464

解压。

tar-zxvf apache-tomcat-10.1.9.tar.gz 
image-20250826154644951

给解压后的Tomcat,重命名一下:

mv apache-tomcat-10.1.9 tomcat 
image-20250826154916980

启动:

cd tomcat/ bin/startup.sh 
image-20250826160452317

启动成功!

image-20250826160928137

关闭tomcat命令

bin/shutdown.sh 

这样我们就在CentOS7上安装完Tomcat啦!

3.简单玩一下Tomcat

在这里,我们可以看到,都是千篇一律的页面,那么我们可不可以把tomcat页面变成自己的页面呢?

答案是:当然可以!

我们只需要找到它的前端代码,简单修改就可以啦!

cd /home/tomcat/tomcat/webapps/ROOT 
image-20250826162535805

想要改文字、格式就修改index.jsp。

image-20250826162834562

想要改样式就选择tomcat.css。

image-20250826162914763

我这里示例一下改主页文字。

vi index.jsp 

在Home前加上”小单的“几个字:

image-20250826163936195

回到bin目录,重启一下:

image-20250826164053514

重启后,更改成功啦!

image-20250826164504219

那么我有一个问题,倘若你同事下班想使用一下你的Tomcat,该怎么办呢?

别急,cpolar来帮助你,解决这一烦恼。

4.安装cpolar实现随时随地开发

cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。

❤️以下是安装cpolar步骤:

使用一键脚本安装命令:

sudocurl https://get.cpolar.sh |sh
image-20250826172453496

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar 
image-20250826172604013

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://192.168.42.101:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

image-20250826172625263

5.配置公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了:tomcat,注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:8080
  • 域名类型:随机域名
  • 地区:选择China Top点击创建:
image-20250826175205560

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。

image-20250826175248080

访问成功。

image-20250826175317499

6.保留固定公网地址

使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。

image-20250827103024446

点击左侧的预留,选择保留二级子域名,地区选择china top,然后设置一个二级子域名名称,我这里演示使用的是tomcat,大家可以自定义。填写备注信息,点击保留。

image-20250827103127242

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道tomcat,点击右侧的编辑

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China Top

点击更新

image-20250827103351334

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

image-20250827103433119

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问本地部署的tomcat页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

image-20250827103556724

恭喜!你成功了! 现在,无论你身在何处,用手机、平板还是另一台电脑,都能看到并操作你本地运行的tomcat了!

总结

其实本地 Web 应用的公网访问需求,本质上是为了打破网络边界,让开发、测试与演示的流程更顺畅。Tomcat 作为成熟的 Java 应用服务器,搭配内网穿透工具的灵活映射能力,恰好满足了这种轻量、高效的使用场景。

无需专业的网络知识,也不用额外的硬件投入,就能让本地项目拥有公网访问能力,无论是个人开发调试,还是小团队的协作分享,都能大幅提升效率。这种低成本、易上手的解决方案,也正是日常开发中最贴合实际需求的选择,让技术落地更简单。

Read more

NewBie-image-Exp0.1能否替代Stable Diffusion?开源绘图模型对比评测

NewBie-image-Exp0.1能否替代Stable Diffusion?开源绘图模型对比评测 1. 为什么突然冒出个NewBie-image-Exp0.1? 最近在AI绘图圈子里,一个代号“NewBie-image-Exp0.1”的新模型悄悄火了。它不靠铺天盖地的宣传,而是靠实打实的动漫生成效果,在小众技术社区里被反复转发——有人用它三分钟生成一套角色设定图,有人拿它批量产出同人海报,还有人直接把它集成进自己的创作工作流里当“专属画手”。 它不是Stable Diffusion的分支,也不是Lora微调出来的变体,而是一个从底层架构就为动漫风格深度定制的3.5B参数大模型。名字里的“Exp0.1”不是随便起的,代表这是实验性迭代的第一版,但已经能稳定输出4K级细节、自然光影和高度一致的角色特征。更关键的是,它没走“堆参数换质量”的老路,反而在推理效率、多角色控制、风格稳定性上做了大量针对性优化。 你可能会问:既然SD生态这么成熟,为什么还要折腾一个新模型?答案藏在实际使用场景里——当你需要连续生成同一角色在不同动作、表情、服装下的十几张图时,SD经常“忘记”角色发色或

3步突破:海尔智能家居接入HomeAssistant的实战秘诀

3步突破:海尔智能家居接入HomeAssistant的实战秘诀 【免费下载链接】haier 项目地址: https://gitcode.com/gh_mirrors/ha/haier 你是否曾经为了控制家里的海尔设备而需要在多个APP之间切换?是否想要将海尔空调、热水器等设备统一集成到智能家居系统中?今天我来分享一个极速解决方案,让你的海尔智能设备轻松接入HomeAssistant。 从痛点出发的智能家居革命 在智能家居时代,设备碎片化是最大的痛点。海尔作为国内领先的家电品牌,其智能设备遍布千家万户,但独立的控制方式让用户体验大打折扣。通过海尔Haier集成,我们能够打破这种局面。 核心优势:为什么选择这个方案? 相比传统方式,这个集成方案具备三大突破性优势: 一键打通生态壁垒 - 不再需要复杂的API对接,直接通过海尔智家平台实现设备连接,兼容性达到前所未有的高度。 极简配置体验 - 整个配置过程就像搭积木一样简单,即使是智能家居新手也能在10分钟内完成。 全设备类型支持 - 从基础的开关控制到复杂的空调调节,再到热水器温度管理,所有海尔智能设备都能找到对应的控

【2026年精选毕业设计:基于多模态AI与AR的校园智能导览微信小程序系统】

【2026年精选毕业设计:基于多模态AI与AR的校园智能导览微信小程序系统】

2026年精选毕业设计:基于多模态AI与AR的校园智能导览微信小程序系统 🎓 一套搞定毕设全流程:论文 ✅|源码 ✅|PPT ✅|开题报告 ✅|任务书 ✅|答辩讲解稿 ✅ 💡 融合 AR + 语音 + 图像 + 语义理解 + 精准定位,打造会“看、听、说、想”的智能校园导览助手! 还在做传统的图书管理系统?2026年毕业设计要卷出新高度!本项目——基于多模态AI与AR的校园智能导览微信小程序系统,将前沿AI技术与校园场景深度融合,用户只需打开摄像头,就能与校园“对话”:拍一栋楼,听一段校史;问一句“打印在哪”,立刻显示3D导航箭头。不仅技术新颖、演示效果炸裂,还具备极强的落地价值,是高校信息化建设的绝佳样板! 🔥 为什么这个选题能拿高分? * ✅ 紧扣2026技术趋势:多模态AI + 轻量化AR + 室内定位 * ✅ 真实场景痛点解决:新生迷路、校友怀旧、访客无指引 * ✅ 技术栈全面且前沿:涵盖CV、NLP、

实测可用!发那科机器人与西门子PLC通讯全方案(网关+Modbus TCP双版本,避坑指南附代码)

实测可用!发那科机器人与西门子PLC通讯全方案(网关+Modbus TCP双版本,避坑指南附代码) 在工业自动化现场,发那科(FANUC)机器人与西门子PLC的组合十分常见,但两者“协议壁垒”常常让工程师头疼——发那科机器人原生支持EtherNet/IP,而西门子PLC(S7-1200/1500)主打Profinet,直接通讯往往“语言不通”。 本文结合3个实际产线项目经验,整理两种经过现场验证、100%可用的通讯方案(网关跨协议版 + Modbus TCP低成本版),步骤拆解到每一步按键操作,标注新手常踩的坑,附PLC测试代码和故障排查方法,适合工控工程师直接照搬落地,再也不用为通讯调试熬夜! 核心前提(避免做无用功) * 发那科机器人:支持EtherNet/IP或Modbus TCP功能(需确认系统选件,无选件需联系厂家授权,如Modbus TCP需R602选件),本文以R-30iB系列为例。 * 西门子PLC:S7-1200/S7-1500(本文分型号适配步骤),安装**TIA