FaradayZhangChina 2026-04-08 13:17 采纳率: 0%
浏览 4

如何用本机windows系统对外发布自己搭建的springboot或springmvc网站

大家好,我是CSDN的会员,最近,我为了发布自己搭建的一个springmvc改写成springboot网站(该网站集成了3个系统,分别是门户网站portal, 前端展示分类系统,和后台内容管理推送系统),在软件编程方面我发现都没什么问题,就是到了发布这个网站的阶段,我感到很困惑,因为我遇到了三个需要解决的问题:

第一、我的宽带是中国电信安装的,在2022年安装以前,我曾经用IDEA本地电脑开发了一个springmvc的单体网站,但是,当时我用本机的80端口或者8080端口,配合IntelliJ IDEA的试用版对外可以发布网站的,也不需要用花生壳等内网穿透的功能。或者,我偶然使用nat123的内网穿透免费功能也可以发布。可是,到了2022年,我发现即使我的域名是工信部ICP备案过的,我竟然不能通过免费的nat123内网穿透功能对外发布我的网站了,我当时已经开始了创业,这对我调试程序,和进一步提高IT的研究有很大的阻碍。于是我打电话给10000号中国电信反映这个问题,电话里,我听到电信的一个男的工作人员说,是电信把我们家原来可以用的80,8080,443等端口封堵的,因为他认为我们家庭个人用户能浏览网页就可以了。对此,我也查阅了我国法律,发现我国对个人家庭对外发布网站的法律规定,其实只有依据《中华人民共和国网络安全法》第十二条,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和利益等活动。所以,我的网站是用来搭建商城,和宣传民营企业网站如何维护自身安全和发展的,再加之我已经在我国工信部ICP备案了,也有ICP备案字号。没有危害国家安全,荣誉和利益等活动。所以,从法律层面,我完全可以说,我是合法的,可以对外发布我的网站的。

第二、目前,中国电信给我安装的宽带,让我从本机的windows11系统的右下角的“网络”图标里,悬停后,显示“以太网”可以上网。我想向网站专家请教,我想通过本机对外网发布我在本机上自己编写程序的springboot网站(根据以上的结构),不通过“阿里云”,“腾讯云”等公有云,通过我windows系统自带的IIS,或者Hyper-V, 或者通过VMware station搭建VMnet8等网络环境,我如何可以对外发布网站,(但是,我的80端口,和8080端口等怎么解决?),可以用内网穿透吗?哪一个内网穿透最好用呢?

第三、目前,我已经通过阿里云购买了域名,我可以通过阿里云的DNS域名解析服务对外发布网站,我还可以通过我本机windows11系统里,建VMware虚拟机,搭建DNS解析服务器,或者家庭其他电脑设备搭建DNS解析服务器,以及虚拟机对外发布网站吗?

还有其他什么更好的办法吗?最好能充分利用我本地的资源。请网络专家和网站编写专家给我解答,谢谢!

谢谢!

CSDN上海会员 Alexandra
2026年4月8日

  • 写回答

3条回答 默认 最新

  • 檀越@新空间 2026-04-08 13:21
    关注

    下午好🌅🌅🌅
    本答案参考通义千问

    您好,Alexandra!您提出的问题非常具有代表性,尤其是在家庭宽带环境下发布网站时面临的诸多挑战。下面我将针对您的三个问题进行详细解答,并给出可行的解决方案,帮助您在不使用云服务器的前提下,通过本地资源对外发布Spring Boot或Spring MVC网站。


    一、关于中国电信封堵80/8080等端口的问题

    重点说明:

    • 中国电信确实对家庭宽带用户限制了部分常见端口(如80、8080、443等),这是出于网络安全和防止滥用的考虑。
    • 您可以通过其他方式实现对外发布,例如:
      • 使用非标准端口(如8081、8082等);
      • 配合内网穿透工具
      • 或者通过路由器端口映射(Port Forwarding)来开放特定端口。

    二、如何通过Windows系统自带功能或虚拟机对外发布网站

    解决方案:

    1. 使用Windows IIS发布网站

    如果您已经部署了一个Spring Boot应用,可以将其作为独立服务运行,并通过IIS做反向代理,将请求转发到Spring Boot应用的端口。

    步骤如下:
    1. 安装IIS:
      • 打开“控制面板” > “程序” > “启用或关闭Windows功能” > 勾选“IIS”相关组件。
    2. 在IIS中配置反向代理:
      • 添加“URL重写”模块(可通过Web平台安装器安装)。
      • 配置规则,将http://yourdomain.com转发到http://localhost:8080(假设您的Spring Boot应用运行在8080端口)。
    3. 确保防火墙允许80端口通信。

    注意: 如果电信封锁了80端口,可尝试使用其他端口(如8081)并通过IIS监听该端口。

    2. 使用Hyper-V或VMware搭建虚拟机环境

    您可以使用Hyper-V或VMware创建一个虚拟机,运行Linux系统(如Ubuntu),并在其中部署Spring Boot应用,同时配置Nginx或Apache作为反向代理。

    优点:
    • 更接近生产环境;
    • 可以更灵活地管理端口和防火墙设置。

    3. 使用内网穿透工具

    虽然您之前无法使用Nat123,但以下是一些目前可用且推荐的内网穿透工具

    | 工具名称 | 特点 | |----------|------| | ZeroTier | 支持私有网络,适合多设备互联,免费版足够使用 | | ngrok | 快速搭建隧道,支持HTTP/HTTPS,免费版有限制 | | frp (Fast Reverse Proxy) | 开源、自建、支持多种协议,适合高级用户 | | 花生壳(已被收购) | 免费版功能有限,建议优先选择其他工具 |

    推荐方案:使用 ngrok + Spring Boot
    1. 下载并安装 ngrok
    2. 运行命令:
      ngrok http 8080
      

      这会生成一个公网地址(如 https://abc123.ngrok.io)。

    3. 将域名解析到该公网地址(需通过阿里云DNS)。

    注意: ngrok 免费版有时间限制(约20分钟),如果需要长期使用,可购买付费版本。


    三、如何通过阿里云DNS解析与本地资源结合发布网站

    解决方案:

    1. 本地搭建DNS服务器

    您可以在本地搭建DNS服务器(如使用BIND9或Windows Server DNS角色),将域名解析指向本机IP。

    步骤如下:
    1. 在本地Windows系统上安装DNS服务器角色(Windows Server)。
    2. 配置区域文件,将您的域名指向本机IP。
    3. 设置本地电脑的DNS为该服务器。

    注意: 由于您是家庭宽带,可能无法直接从外网访问本地DNS服务器,因此建议配合内网穿透工具使用。

    2. 使用阿里云DNS解析 + 内网穿透

    1. 在阿里云上购买域名,并设置DNS解析为您的内网穿透服务提供的公网地址(如 ngrok 或 frp 的地址)。
    2. 当用户访问您的域名时,请求会被转发到您的本地机器。
    代码示例(Spring Boot 应用):
    @SpringBootApplication
    public class MyApplication {
        public static void main(String[] args) {
            SpringApplication.run(MyApplication.class, args);
        }
    }
    

    无需修改代码,只需确保应用监听的端口被正确映射到公网。


    四、总结与推荐方案

    推荐方案(最简单易行):

    1. 使用 ngrok 发布Spring Boot应用,获取公网地址;
    2. 在阿里云上配置域名解析,将域名指向 ngrok 提供的地址;
    3. 通过本地IIS或Nginx做反向代理(可选,用于优化性能)。

    进阶方案(适合长期稳定需求):

    1. 搭建虚拟机(如 VMware + Ubuntu),在其中部署Spring Boot应用;
    2. 配置 Nginx 作为反向代理,监听80或443端口;
    3. 通过内网穿透工具(如 frp) 将虚拟机的80端口映射到公网;
    4. 阿里云DNS 解析 到 frp 提供的公网地址。

    五、附录:常用工具下载链接

    | 工具 | 下载链接 | |------|----------| | ngrok | https://ngrok.com/ | | frp | https://github.com/fatedier/frp | | ZeroTier | https://www.zerotier.com/ |


    如果您还有任何具体操作上的疑问,欢迎随时提问,我会为您提供详细的步骤指导修改后的代码示例。祝您的项目顺利上线!

    评论

报告相同问题?

问题事件

  • 创建了问题 4月8日