基于cpolar实现简单内网穿透

26 阅读5分钟

当我们在本地或测试的内网环境并需要给公网提供接口的时候,就需要通过内网穿透来实现被调用

选cpolar是因为它不需要强制实名认证,如果只是开发的时候集成对接三方api会更方便一些

一、安装与初始化配置

官网地址      www.cpolar.com/

先注册

image.png

1.1 安装 Cpolar

登陆进去后下载安装

image.png 在套餐里选0元套餐狠狠白嫖

image.png

1.2 认证 Token

建通道的验证token,在验证菜单里

image.png cmd 命令行执行

cpolar authtoken 你的认证Token

执行后会返回

image.png

二、命令行创建穿透隧道

Cpolar 可通过命令行直接创建通道,也可通过本地local地址的可视化界面来管理

2.1 基础语法

cpolar [协议类型] [目标本地地址:端口] [可选参数]
  • 协议类型:支持 httptcpftp 等,根据你的本地服务类型选择
  • 目标端口:你本地服务监听的端口号,例如本地 Web 服务的 8080 端口

2.2 HTTP 隧道(Web 可视化服务)

基础示例:暴露本地 8080 端口的 Web 服务

cpolar http 8080

执行后,命令行将会输出如下信息: image.png 其中 Forwarding 后的地址就是生成的公网地址,你可以将这个地址分享给其他人,公网用户访问这个地址就能访问到你本地 8080 端口的服务。 可视化界面管理地址      http://localhost:9200

注意:默认情况下,这个命令会在前台运行,关闭终端后隧道会自动停止,如需长期运行请参考「后台运行隧道」章节。

2.3 高级参数配置

Cpolar 提供了丰富的命令行参数,满足你不同的需求:

参数作用示例
-region指定隧道服务器地区,降低延迟cpolar http -region=cn_vip 8080
-subdomain自定义二级子域名(需套餐支持)cpolar http -subdomain=myapp 8080
-httpauth为隧道添加 HTTP 基础认证,防止公网匿名访问cpolar http -httpauth="user:pass123" 8080
-host-header重写 HTTP Host 头,适配虚拟主机服务(如 MAMP/WAMP 多站点)cpolar http -host-header=myapp.dev 80
-redirect-https自动将 HTTP 请求重定向到 HTTPScpolar http -redirect-https=true 8080

2.6 后台运行隧道(避免关闭终端失效)

默认的前台隧道在关闭终端后就会停止,如果你需要长期运行隧道,可以通过以下方式配置后台服务:

Linux 系统

  1. 添加 Cpolar 到系统服务
sudo systemctl enable cpolar

2. 启动服务

sudo systemctl start cpolar

3. 编辑配置文件 /usr/local/etc/cpolar/cpolar.yml,预定义你的隧道配置,之后服务会自动启动这些隧道。

Windows 系统

Windows 版本的 Cpolar 安装后会自动注册系统服务,默认后台运行,可以通过服务管理器查看和管理。

也可以使用 nohup 命令临时后台运行:

nohup cpolar http 8080 &

三、常见 localhost 可视化服务穿透案例

服务名称默认端口Cpolar 命令注意事项
Jupyter Notebook8888cpolar http 8888需要提前配置 Jupyter 允许远程访问,否则会出现 403 错误
Grafana 数据可视化3000cpolar http 3000无特殊配置,直接运行即可
n8n 工作流平台5678cpolar http 5678无特殊配置
Streamlit Python 可视化应用8501cpolar http 8501无特殊配置
Jenkins 自动化构建8080cpolar http 8080如需长期使用,建议配置固定域名
phpMyAdmin 数据库管理80cpolar http 80如果你的 phpMyAdmin 运行在 8080 端口,替换对应端口即可
Netdata 系统监控19999cpolar http 19999无特殊配置
Portainer Docker 管理9000cpolar http 9000无特殊配置
Windows 远程桌面 (RDP)3389cpolar tcp 3389TCP 隧道,公网连接时使用生成的公网地址 + 端口
VNC 远程桌面5900cpolar tcp 5900TCP 隧道
SpringBoot/Flask 本地开发服务8080cpolar http 8080临时演示项目的最佳选择

3.1 Jupyter Notebook 远程访问配置

Jupyter 默认会限制本地访问,直接穿透后会出现 403 Forbidden 错误,你需要提前配置:

  1. 生成 Jupyter 配置文件
jupyter notebook --generate-config

2. 设置访问密码

jupyter notebook password

3. 编辑配置文件 ~/.jupyter/jupyter_notebook_config.py,添加以下内容:

c.NotebookApp.ip='*' # 允许所有IP访问
c.NotebookApp.allow_remote_access = True
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888

之后重新启动 Jupyter,再创建 Cpolar 隧道即可正常访问。

四、Cpolar 自身的可视化管理界面

除了命令行,Cpolar 也提供了可视化的管理界面,方便你管理隧道、查看状态。

4.1 Web UI 管理界面(localhost:9200

Cpolar 安装后会默认启动一个本地的 Web 管理界面,你可以通过浏览器访问 http://localhost:9200,使用你的 Cpolar 账号登录。

这里可以

  • 可视化创建、编辑、删除隧道
  • 查看所有在线隧道的公网地址

image.png

4.2 隧道状态监控页面(localhost:4040

当你运行 Cpolar 隧道后,你可以访问 http://localhost:4040,这个页面会展示当前所有隧道的状态,以及所有经过隧道的 HTTP 请求日志,方便你调试接口。