跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava

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

综述由AI生成在 Linux 环境下部署 Tomcat 并利用内网穿透工具实现公网访问的方案。主要步骤包括安装配置 OpenJDK 环境,解压部署 Tomcat 服务,以及使用 cpolar 工具创建 HTTP 隧道将本地 8080 端口映射至公网。文中还涵盖了环境变量设置、服务启停、页面自定义修改以及固定域名的配置方法。该方案无需复杂网络配置,适用于远程调试、功能演示等场景,能有效打破局域网限制,提升开发协作效率。

并发大师发布于 2026/4/9更新于 2026/5/2111 浏览
Linux 下 Tomcat 结合内网穿透实现公网访问

背景与需求

在日常 Java Web 开发与测试中,本地部署的项目往往局限于局域网。当需要异地协作调试、向客户演示功能,或在外查看项目状态时,配置公网 IP 和端口映射显得繁琐且成本较高。

利用内网穿透技术,可以将本地运行的服务直接映射到公网,生成可全球访问的地址。本文将介绍如何在 Linux 系统上快速搭建 Tomcat 环境,并配合内网穿透工具实现 Web 应用的公网访问,整个过程无需复杂网络配置,几分钟即可完成。

环境准备:安装 OpenJDK

首先确保系统已安装 JDK。在 CentOS 7 环境下,可以通过以下命令检查是否已安装 Java 相关套件:

rpm -qa | grep java

若未找到相关包,则需进行安装。查询 yum 源中可用的 JDK 版本:

yum list | grep java-11

确认版本后执行安装命令:

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

接下来配置环境变量。编辑 /etc/profile 文件:

vim /etc/profile

在文件末尾添加以下内容(注意变量名拼写及空格):

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

保存后使配置生效:

source /etc/profile

再次使用 whereis java 验证路径是否正确,至此 JDK 环境配置完成。

部署 Tomcat

前往 Tomcat 官网下载最新版本安装包(本文以 Tomcat 10 为例)。上传压缩包至服务器 /home/tomcat/ 目录后,创建专用用户运行服务:

useradd tomcat
passwd tomcat
su - tomcat

解压并重命名目录:

tar -zxvf apache-tomcat-10.1.9.tar.gz
mv apache-tomcat-10.1.9 tomcat

启动服务前建议先切换到 bin 目录:

cd tomcat/bin
./startup.sh

若看到 Using CATALINA_BASE: ... 提示,说明启动成功。停止服务可使用 ./shutdown.sh。

页面自定义(可选)

默认首页较为通用,可根据需求修改前端内容。进入 ROOT 应用目录:

cd /home/tomcat/tomcat/webapps/ROOT

修改 index.jsp 调整文字,或编辑 tomcat.css 调整样式。例如在标题前添加标识:

vi index.jsp

修改完成后重启 Tomcat 即可看到效果。

内网穿透配置

为了让外部设备能访问本地服务,我们使用 cpolar 工具建立隧道。它支持将 SSH、Web、数据库等服务映射到公网。

安装 cpolar

使用一键脚本安装:

sudo curl https://get.cpolar.sh | sh

安装完成后检查服务状态:

sudo systemctl status cpolar

登录管理界面

浏览器访问 http://<虚拟机主机 IP>:9200,使用注册账号登录。进入 Web UI 后即可开始配置隧道。

cpolar 登录界面

公网地址管理

创建临时隧道

在仪表盘中点击'隧道管理' -> '创建隧道',填写如下参数:

  • 隧道名称:自定义(如 tomcat),避免重复
  • 协议:http
  • 本地地址:8080
  • 域名类型:随机域名
  • 地区:China Top

创建成功后,在线列表会显示生成的公网地址,此时即可通过该地址在异地设备访问。

隧道列表

保留固定域名

若需长期访问,可配置二级子域名作为固定公网地址。

  1. 在左侧菜单选择'预留',点击'保留二级子域名'。
  2. 选择地区 China Top,输入期望的域名名称(如 tomcat),填写备注后提交。
  3. 回到隧道列表,找到对应隧道点击'编辑'。
  4. 将域名类型改为'二级子域名',Sub Domain 填入刚才保留的名称,地区选 China Top。
  5. 点击更新。

更新后,列表中的地址将变更为固定的二级子域名,永久有效。

固定域名配置

结语

通过上述步骤,我们完成了从本地环境搭建到公网访问打通的全过程。Tomcat 作为成熟的 Java 应用服务器,配合内网穿透工具的灵活映射能力,能够低成本地解决开发调试与演示时的网络边界问题。无需额外硬件投入,即可让本地项目拥有公网访问能力,大幅提升协作效率。

目录

  1. 背景与需求
  2. 环境准备:安装 OpenJDK
  3. 部署 Tomcat
  4. 页面自定义(可选)
  5. 内网穿透配置
  6. 安装 cpolar
  7. 登录管理界面
  8. 公网地址管理
  9. 创建临时隧道
  10. 保留固定域名
  11. 结语
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • OpenClaw 实战:AI 摄像头访问与 WSL2 解决方案
  • Face Analysis WebUI 使用 Gradio share 开启远程临时链接调试
  • 基于 AI 预测的 2020 IEEE Fellow 入选名单及学者分析
  • OpenClaw 集成 GLM 实现免费联网搜索
  • CTFShow Web 入门题目解析:Web12-20
  • Java 实证求解:中秋满月是否总是十六圆
  • Kali Linux 部署 OpenClaw AI 网关及环境配置实战
  • Meta 新一代开源大语言模型 Llama 3 详解
  • 前端 GraphQL 客户端:高效获取数据的最佳实践
  • Python 容器性能优化:列表、集合与字典的高效用法
  • 消息队列选型:Kafka、RabbitMQ 与 Redis 对比分析
  • YOLOv3 C++ DLL 调用与 CUDA 依赖配置
  • Supabase 实战教程:数据库、SDK 与本地部署
  • Windows 系统永久配置 Git 使用 SSH 连接 GitHub 教程
  • Applite:基于 SwiftUI 的 Mac 软件管理工具
  • Git 分支管理完全指南:从创建、合并到冲突解决
  • Microsoft 365 Copilot 与 Copilot Chat 核心区别详解
  • Python 基础语法完全指南:变量、类型与运算符
  • Whisper-Large-V3-Turbo 模型高效部署实战
  • Stable Diffusion WebUI 详细使用指南

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online