内网部署web项目,外网访问不了?只有局域网能访问!怎样解决?
相关技术
要实现“内网部署,外网访问”,可以使用内网穿透、VPN技术、DMZ主机、端口映射等方法。以下是对这些方法的详细解释:
一、内网穿透
内网穿透是一种技术,它通过将内网设备映射到公网上的方式,实现外网访问内网的目的。内网穿透可以使用动态域名系统(DDNS)服务和端口转发来实现。这种方法允许外部用户通过公网访问内网设备,而无需直接连接到内部网络。内网穿透工具如花生壳、natapp等提供了便捷的方式来实现这一功能。使用内网穿透时,需要确保内网设备已正确配置,并开放相应的端口以允许外部访问。
二、VPN技术
VPN(Virtual Private Network,虚拟专用网络)是一种通过建立加密隧道连接的方法,可以在公网上创建一个安全的虚拟网络,将外部用户连接到内网。通过VPN,外部用户可以获得与内网设备相同的IP地址,从而可以直接访问内网资源。VPN技术提供了高度的安全性和隐私保护,因为它在传输过程中对数据进行了加密。要使用VPN技术,需要配置VPN服务器,并在外部设备上安装VPN客户端以建立连接。
三、DMZ主机
DMZ(Demilitarized Zone,非军事区)是一个在网络中设置的特殊区域,用于放置那些需要向外部用户提供服务的服务器。这些服务器通常位于内部网络和外部网络之间,既可以从内部网络访问,也可以从外部网络访问。然而,将服务器放置在DMZ中会增加安全风险,因为DMZ中的服务器更容易受到外部攻击。因此,在使用DMZ主机时,需要采取额外的安全措施来保护服务器的安全。
四、端口映射
端口映射是将内网中的特定主机和端口通过路由器映射到外网的相应端口上,以实现远程访问的技术。通过端口映射,外部用户可以通过输入路由器的公网IP地址和对应端口来访问内网提供的服务。例如,当一台内网Web服务器的IP是192.168.1.100时,外部用户无法直接访问它。但是,可以在路由器上设置端口映射,将路由器的80端口映射到内网Web服务器的80端口。这样,外部用户就可以通过输入路由器的公网IP地址和端口号。。
综上所述,内网穿透、VPN技术、DMZ主机和端口映射都是实现“内网部署,外网访问”的有效方法。选择哪种方法取决于具体的需求、安全性和易用性等因素。在实际应用中,需要根据实际情况进行选择和配置。
项目配置(以若依项目为例https://www.ruoyi.vip/)
本地配置
Tomcat安装与配置【详细!包含常见问题及其解决方案】-CSDN博客
Ruoyi前后端分离项目部署至Tomcat上_若依前端tomcat-CSDN博客
对外开放,虽然现在试还没成功
Tomcat配置--如何能够让外网通过公网IP或域名访问到服务器上面的项目_tomcat foreign address 配置-CSDN博客
若要使用Tomcat配置校园局域网内部的Web项目以允许外网访问,需要按照以下步骤进行:
一、Tomcat服务器配置
-
下载并安装Tomcat:
- 从Tomcat官网下载对应版本的Tomcat压缩包,并解压到合适的目录。
- 确保Java环境已正确安装,并配置好
JAVA_HOME
环境变量。
-
部署Web项目:
- 将Web项目的文件夹(如WAR包或已解压的文件夹)复制到Tomcat的
webapps
目录下。 - 如果项目需要特定配置,可以在Tomcat的
conf
目录下找到server.xml
文件,并根据需要进行修改。
- 将Web项目的文件夹(如WAR包或已解压的文件夹)复制到Tomcat的
-
修改Tomcat配置文件:
- 打开
server.xml
文件,找到<Connector>
元素,并修改或添加以下属性:port
:设置为Tomcat对外暴露的端口,通常使用8080,但也可以根据需要更改为其他端口(如80或443,但需注意权限和防火墙设置)。protocol
:设置为HTTP/1.1
。connectionTimeout
:设置为连接超时时间,单位为毫秒。redirectPort
:如果使用了HTTPS,需要设置此属性为HTTPS的端口号。
- 示例配置:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
- 如果需要支持HTTPS,还需要配置SSL连接器,并生成证书。
- 打开
二、网络配置
-
配置防火墙:
- 在校园网络防火墙中,为Tomcat服务器的端口(如8080)创建入站规则,允许外部访问。
- 如果使用了HTTPS,还需要为HTTPS端口(如443)创建入站规则。
- 控制面板-》系统和安全-》Windows Defender防火墙
- 高级设置-》新建入站规则-》依次设置
-
确保Tomcat服务器具有外网IP:
- 如果Tomcat服务器位于校园局域网内部,需要确保该服务器具有一个可以被外网访问的公网IP地址。
- 如果服务器只有内网IP地址,可以考虑使用网络NAT(地址转换)或端口转发等技术,将外网访问请求转发到内网服务器。
-
DNS配置:
- 如果希望使用域名访问Tomcat服务器,可以注册一个域名,并将其解析到Tomcat服务器的公网IP地址。
- 在DNS提供商的管理界面中,添加A记录或CNAME记录,将域名指向Tomcat服务器的IP地址。
三、其他配置
-
反向代理(可选):
- 为了提高安全性和性能,可以使用Nginx或Apache等反向代理服务器,将外部请求转发到Tomcat服务器。
- 反向代理服务器还可以提供负载均衡、SSL卸载等功能。
ngnix!!!必学虽然还没学nginx部署前端vue项目步骤-CSDN博客
-
安全性设置:
- 确保Tomcat服务器的管理界面受到强密码保护。
- 定期更新Tomcat服务器和Java环境,以获取最新的安全补丁。
- 使用HTTPS协议,确保数据传输的安全性。
四、验证配置
-
启动Tomcat服务器:
- 在Tomcat的安装目录下,运行
startup.bat
(Windows)或startup.sh
(Linux/Unix)脚本,启动Tomcat服务器。
- 在Tomcat的安装目录下,运行
-
访问Web项目:
- 在浏览器中,输入Tomcat服务器的域名或IP地址,以及端口号(如果未使用默认端口8080),然后访问Web项目。
- 例如:
http://yourdomain.com:8080/yourproject
或http://yourserverip:8080/yourproject
。
-
检查日志:
- 查看Tomcat的日志文件(如
catalina.out
),确保没有错误或警告信息。 - 如果出现问题,可以根据日志信息进行排查和解决。
- 查看Tomcat的日志文件(如
通过以上步骤,可以配置Tomcat服务器以允许外网访问校园局域网内部的Web项目。请确保在进行任何配置之前,已经获得了校园网络管理部门的许可和支持。
实用策略
要让校园局域网内部署的Web项目在外网也能访问,可以通过以下方法和步骤来实现:
方法一:使用花生壳内网穿透(或者cpolar)
花生壳是一款ddns动态域名解析软件,可以实现内网穿透,使得外网用户能够通过固定的域名访问内网主机。以下是使用花生壳内网穿透的详细步骤:
-
搭建内网网站服务:
- 在校园局域网内的服务器上安装并配置IIS(Internet Information Services)或其他Web服务器软件。
- 打开Internet信息服务(IIS)管理器,添加一个新的网站,并配置网站的物理路径、绑定地址(使用内网IP地址)和端口(如80)。
-
注册并开通花生壳服务:
- 访问花生壳官网,注册一个账号并开通花生壳内网穿透服务。
- 在服务器电脑上下载并安装花生壳客户端,使用注册的账号登录。
-
添加内网映射:
- 在花生壳客户端中,添加一个新的内网映射,填写映射名称、内网主机IP地址、内网端口以及希望使用的外网域名。
- 花生壳会自动生成一个外网访问地址,通过这个地址,外网用户就可以访问到内网的Web项目了。
方法二:部署到云服务器
将Web项目部署到云服务器上,是另一种实现外网访问的方法。以下是详细步骤:
-
选择合适的云服务提供商:
- 根据项目的需求选择合适的云服务提供商(如AWS、Azure、阿里云等),并创建一个新的虚拟机实例。
-
配置服务器:
- 在虚拟机实例上安装操作系统(如Ubuntu、CentOS、Windows Server等),并配置网络设置,确保服务器可以通过互联网访问。
- 根据Web项目的技术栈,安装必要的软件和依赖。
-
上传项目文件:
- 使用SCP、FTP等工具将本地开发环境中的项目文件上传到云服务器。
- 确保项目文件上传后,路径和结构与本地环境一致。
-
配置域名和DNS:
- 购买并注册一个域名,通过域名注册服务提供商的管理控制台配置DNS记录,将域名指向云服务器的公网IP地址。
-
开放防火墙端口:
- 在云服务提供商的管理控制台中配置防火墙规则,开放HTTP(端口80)和HTTPS(端口443)端口。
- 在云服务器的操作系统上,也需要配置操作系统自带的防火墙。
-
配置反向代理(可选):
- 为了提高项目的性能和安全性,可以在云服务器上安装反向代理服务器(如Nginx、Apache),将外部请求转发到内部应用服务器。
-
确保安全性:
- 使用HTTPS协议确保数据传输的安全性。
- 定期更新服务器操作系统和软件,确保最新的安全补丁已应用。
- 定期备份项目文件和数据库,防止数据丢失。
注意事项
- 在进行任何配置之前,请确保已经获得了校园网络管理部门的许可和支持。
- 在配置过程中,要注意保护服务器的安全,避免受到恶意攻击和入侵。
- 如果使用花生壳等第三方服务,请确保选择可靠的服务提供商,并遵循其使用指南和安全建议。
通过以上方法,可以让校园局域网内部署的Web项目在外网也能被访问。具体选择哪种方法,可以根据项目的需求、预算以及校园网络的具体情况来决定。
相关文章:

内网部署web项目,外网访问不了?只有局域网能访问!怎样解决?
相关技术 要实现“内网部署,外网访问”,可以使用内网穿透、VPN技术、DMZ主机、端口映射等方法。以下是对这些方法的详细解释: 一、内网穿透 内网穿透是一种技术,它通过将内网设备映射到公网上的方式,实现外网访问内…...
Jenkins系列
jenkins 1、搭建Jenkins 搭建Jenkins 2、这是什么 3、这是什么 4、 这是什么 5、这是什么 文章目录 jenkins1、搭建Jenkins2、这是什么3、这是什么4、 这是什么5、这是什么 前言 前言 提示:这里可以添加本文要记录的大概内容: 例如:随…...
技术总结(二十四)
一、Redis 分布式锁的常见使用场景有哪些? 资源竞争控制 数据库事务控制:在分布式系统中,多个服务可能会同时对数据库中的同一行数据进行操作。例如,在一个电商系统里,多个订单处理服务可能会同时尝试更新同一个订单的…...

原生鸿蒙应用市场:赋能开发者全生命周期服务体验
文章目录 背景自动化检测前移:早发现,早解决技术细节:静态代码分析与兼容性测试应用场景 按需加载:优化性能,提升用户体验技术细节:模块化与懒加载实现应用场景 应用加密:保护应用代码安全&…...
深入解析TOML、XML、YAML和JSON:优劣对比与场景应用
摘要:本文将介绍四种常见的配置文件和数据交换格式:TOML、XML、YAML和JSON,通过具体的使用例子分析它们的优缺点,并探讨在不同场景下的应用选择。 正文: 一、TOML 优点: 易于阅读和编写:TOML的…...
前端UniApp面试题及参考答案(100道题)
目录 UniApp 支持哪些平台? UniApp 在不同平台上的表现有何差异? 如何处理 UniApp 中的平台差异? UniApp 项目创建与目录结构 项目创建 目录结构 如何创建一个 UniApp 项目? UniApp 项目的基本目录结构是什么样的? 解释一下 UniApp 中的页面生命周期钩子函数有哪…...

MoonBit 双周报 Vol.59:新增编译器常量支持,改进未使用警告,支持跨包函数导入...多个关键技术持续优化中!
2024-11-04 MoonBit更新 增加了编译期常量的支持。常量的名字以大写字母开头,用语法 const C ... 声明。常量的类型必须是内建的数字类型或 String。常量可以当作普通的值使用,也可以用于模式匹配。常量的值目前只能是字面量: const MIN_…...

Linux相关概念和易错知识点(20)(dentry、分区、挂载)
目录 1.dentry (1)路径缓存的原因 (2)dentry的结构 ①多叉树结构 ②file和dentry之间的联系 ③路径概念存在的意义 2.分区 (1)为什么要确认分区 (2)挂载 ①进入分区 ②被挂…...

论 ONLYOFFICE:开源办公套件的深度探索
公主请阅 引言第一部分:ONLYOFFICE 的历史背景1.1 开源软件的崛起1.2 ONLYOFFICE 的发展历程 第二部分:ONLYOFFICE 的核心功能2.1 文档处理2.2 电子表格2.3 演示文稿 第三部分:技术架构与兼容性3.1 技术架构3.2 兼容性 第四部分:部…...

兵马未动,粮草先行-InnoDB统计数据是如何收集的
我们前面介绍查询成本的时候经常用到一些统计数据,比如通过SHOW TABLE STATUS可以看到关于表的统计数据,通过SHOW INDEX可以看到关于索引的统计数据,那么这些统计数据是怎么来的呢?它们是以什么方式收集的呢?本章将聚焦…...
oracle服务器意外宕机数据库启动失败故障处理记录
客户反馈由于服务器意外宕机,导致数据库业务不能正常运行,经过一番努力后通过redo日志恢复成功! 故障描述:ORA-00600: 内部错误代码, 参数: [krctcr_4], [1179922061], [1179942042], [], [], [], [], [], [], [], [], [] 现将主要…...

学习笔记——MathType公式编号:右编号和随章节变化
1.如何在word文档中插入带有编号的公式? 步骤:(前提是已经安装mathtype) 2.MathType公式编号怎么随章节变化? 想要编号级数也随标题级数进行自动变化,则需要插入或修改文档的“分隔符” 步骤:...

如何使用 SSH 连接并管理你的 WordPress 网站
在当今数字化的世界里,网站的管理与维护至关重要。对于使用 WordPress 搭建网站的用户而言,掌握基本的 SSH(安全壳)命令能够极大地简化网站管理工作。本指南将向你介绍 SSH 的基本知识,并教你如何通过 SSH 连接和管理你…...
力扣60. 排列序列
描述 力扣60. 排列序列 给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。 按大小顺序列出所有排列情况,并一一标记,当 n 3 时, 所有排列如下: “123” “132” “213” “231” “312” “321” 给定 n 和 k,返回…...

Mac如何实现最简单的随时监测实时运行状态的方法
Mac book有着不同于Windows的设计逻辑与交互设计,使得Mac book有着非常棒的使用体验,但是在Mac电脑的使用时间过长时,电脑也会出现响应速度变慢或应用程序崩溃的情况,当发生的时候却不知道什么原因导致的,想要查询电脑…...
时间管理应用(可复制源码)
创建一个简单的时间管理应用程序,结合 Pomodoro 技术使用 HTML、CSS 和 JavaScript 1. HTML 创建一个基本的 HTML 文件 (index.html): <!DOCTYPE html> <html lang"zh"> <head> <meta charset"UTF-8"&…...

SQL server 列转行
在 SQL Server 中,将列转换为行的操作通常被称为“透视”(Pivot)的逆操作,即“反透视”(Unpivot)。SQL Server 提供了 UNPIVOT 关键字来实现这一功能。假设你有一个表 EmployeeDetails,其中包含…...

aws申请ssl证书的方法【该证书仅供aws】
这里先声明,过程是对的,最终没有达到目的。 原本想着申请ssl证书替代,结果发现aws证书只能给自己的服务器用 但是整套申请证书以及下载,以及使用aws控制台的过程可以参考借鉴。 起因: 腾讯云的ssl证书越来越没法用了…...
Linux中目录配置标准的FHS
文件系统层次结构标准(Filesystem Hierarchy Standard, FHS)定义了Linux和其他类Unix操作系统中文件和目录的标准布局。FHS的目标是确保在不同的Linux发行版之间具有一致的文件系统结构,从而使软件能够在不同的系统上容易地安装和运行。 FHS…...
目标检测YOLO实战应用案例100讲-基于深度学习的人眼视线检测
目录 知识储备 视觉深度的测定 基本知识 视觉检测中的关键技术 单眼感知景深 内部摄像机距离的效果 Face ID 与3D传感技术 什么是Face ID? 3D传感技术原理 主动测距法 被动测距法 基于深度学习的人眼视线检测代码 数据集读取与预处理 卷积神经网络模型构建 模型…...

idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...

基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...

tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...