1.背景

想要将家庭网络中的服务(网站、API等)发布到公网,一般有两种途径,第一是向运营商申请公网ip,第二则是内网穿透。

目前我已经拥有公网ipv4,但在当前严打PCDN的大环境下,我的公网ip已经两次被误封,以至于让我感觉公网ip太不靠谱,所以便将目光投向了内网穿透,尝试过最经典的FRP内网穿透之后,总觉得还是有一点麻烦,今天更新了哪吒监控面板后意外发现增加了内网穿透功能,便简单进行了尝试。

2. 服务器环境

系统:debian12

主要应用:安装了1panel和哪吒面板,其中1panel主要用于配置反向代理及SSL证书,哪吒面板则主要用于监控服务器及内网穿透

3.具体步骤

3.1 域名

首先,准备好一个域名,例如

example.101jc.com

将该域名解析到安装了哪吒面板的服务器上

3.2 反向代理

在1panel中创建反向代理网站

代理域名为

example.101jc.com

代理地址为哪吒面板的内部服务地址,比如哪吒面板端口号为1234,那么代理地址为

127.0.0.1:1234

创建好之后,给这个反向代理网站配置SSL证书

image-20241003074144782

3.3 内网穿透

在哪吒面板后台添加内网穿透

image-20241003074434992

名称:随意

Agent ID:是指在服务器列表中,想要实现内网穿透的服务器ID,同时也说明了这种方式只能针对已经安装了Agent的目标服务器实现内网穿透

内网服务:目标服务器中的内部服务,ip+端口

绑定域名:1panel中反向代理到了哪吒面板的域名

4.总结

相比公网ip,使用内网穿透的方式实现外部访问内网服务,具有以下优缺点 缺点:

  • 需要自己拥有一台具有公网ip的云服务器

  • 操作相对麻烦

  • 对外带宽受到云服务器带宽的限制,无法享受家庭网络中动辄30M起步的大带宽(上行)

优点:

  • 不用担心公网ip随时被回收

  • 对外服务不用带端口号,家庭网络中的公网ip由于无法使用80和443端口,因此对外服务通常如下

    example.101jc.com:12345

    而内网穿透则无需端口号

    example.101jc.com