Cpolar实现本地网站外网访问

部署本地网站
首先,要有一个可以本地访问的网站,这里举一个例子,本地搭建了一个Django框架的Web网站,执行启动服务器后,给出本地地址为:(例)
1 | (http://)127.0.0.1:8000/ #同 (http://)localhost:8000/ |
此时只能本地访问,其他PC端口无法通过这个地址访问。
为了让其他PC端访问我们的网页,这里引入工具 Cpolar
Cpolar 工具
Cpolar 是一款内网穿透工具,主要用于将本地服务暴露到公网,使得外部网络可以访问你本地的应用程序或服务。它类似于 Ngrok、FRP 等工具,但 Cpolar 更加简单易用,特别适合开发者和测试人员快速搭建临时的公网访问环境。
Cpolar 的主要功能
- 内网穿透:
- 将本地运行的 Web 服务、数据库、API 等暴露到公网,生成一个公网可访问的域名。
- 例如,你可以在本地运行一个 Django 开发服务器,然后通过 Cpolar 生成一个公网域名,其他人可以通过这个域名访问你的本地服务。
- 动态域名:
- Cpolar 会为你的本地服务分配一个临时的公网域名(例如
xxxx.r3.cpolar.top
)。 - 这个域名是动态生成的,每次启动 Cpolar 时可能会变化(除非你购买了固定域名)。
- Cpolar 会为你的本地服务分配一个临时的公网域名(例如
- 支持多种协议:
- 支持 HTTP、HTTPS、TCP、UDP 等多种协议。
- 可以用于 Web 服务、远程桌面、数据库连接等场景。
- 简单易用:
- 提供图形化界面和命令行工具,适合不同技术水平的用户。
- 配置简单,只需几步即可完成内网穿透。
Cpolar 的使用场景
- 开发和测试:
- 在开发过程中,你可以将本地的 Web 服务暴露到公网,方便团队成员或客户远程测试。
- 例如,开发一个微信小程序时,微信要求后端服务必须通过公网访问,Cpolar 可以快速满足这一需求。
- 演示和展示:
- 你可以通过 Cpolar 将本地的演示环境暴露到公网,方便向客户展示产品功能。
- 远程访问:
- 通过 Cpolar 暴露本地的远程桌面、数据库等服务,方便远程办公或调试。
- 临时公网服务:
- 如果你需要临时搭建一个公网可访问的服务(例如文件共享、临时 API 服务),Cpolar 是一个快速解决方案。
具体操作
Cpolar官网cpolar - secure introspectable tunnels to localhost
访问官网,注册登录
下载相应版本Cpolar
打开左栏验证,复制 Authtoken
cmd打开你的Cpolar目录,(小技巧:直接在相应文件目录上栏输入cmd回车即可,如下图所示)
按要求输入
1 | cpolar authtoken MjVjYTMxM2YtNWIwOC00M2Y5LTgzYWMtOGJjMDkyYjZkOThh |
回车验证Authtoken,第一次使用时绑定一次即可。
公开本地网站:
同样方法输入cmd命令
1 | cpolar.exe http 8000 |
注意这是一个示范,8000应替代为你的本地端口
等待进行指向配置
配置成功!
通过Forwarding部分给出的地址即可实现外网访问,同时响应的结果也会返回到终端。
Django异常处理
如果是Django框架可能出现无法访问的问题
这个错误是由于 Django 的安全机制引起的。Django 默认会检查请求的 HTTP_HOST
头,以确保它在一个允许的主机列表中(即 ALLOWED_HOSTS
)。如果请求的主机不在 ALLOWED_HOSTS
列表中,Django 会抛出 DisallowedHost
异常。
在你的情况下,请求的主机是 fece785.r3.cpolar.top
,但这个主机名没有在 ALLOWED_HOSTS
中配置,因此 Django 拒绝了该请求。
解决方法
你需要将 fece785.r3.cpolar.top
添加到 Django 项目的 ALLOWED_HOSTS
设置中。具体步骤如下:
打开 Django 项目的
settings.py
文件。找到
ALLOWED_HOSTS
设置。它通常看起来像这样:1
ALLOWED_HOSTS = []
将
fece785.r3.cpolar.top
添加到ALLOWED_HOSTS
列表中。你可以这样做:1
ALLOWED_HOSTS = ['fece785.r3.cpolar.top']
如果你希望允许所有主机访问(不推荐在生产环境中使用),可以这样做:
1
ALLOWED_HOSTS = ['*']
保存
settings.py
文件。重启 Django 开发服务器,使更改生效。
示例
假设你的 settings.py
文件中有以下内容:
1 | ALLOWED_HOSTS = ['localhost', '127.0.0.1'] |
你可以将其修改为:
1 | ALLOWED_HOSTS = ['localhost', '127.0.0.1', 'fece785.r3.cpolar.top'] |
或者,如果你希望允许所有主机访问:
1 | ALLOWED_HOSTS = ['*'] |
注意事项
- 在生产环境中,不建议使用
ALLOWED_HOSTS = ['*']
,因为这可能会带来安全风险。你应该明确列出所有允许的主机名。 - 如果你使用的是动态域名(例如
cpolar
提供的域名),你可能需要定期更新ALLOWED_HOSTS
以匹配新的域名。
完成这些步骤后,你的 Django 应用应该能够正常处理来自 fece785.r3.cpolar.top
的请求了。
可以将 Django 的 ALLOWED_HOSTS
中设置为 ['*']
,如此,Django 将接受任何主机名的请求,包括 cpolar
提供的动态域名。这意味着你不需要定期更新 ALLOWED_HOSTS
,即使 cpolar
提供的域名发生了变化。
注意,该操作有安全风险,不建议在生产过程中使用!
解决后即可正常访问!
- 标题: Cpolar实现本地网站外网访问
- 作者: Cealivanus Kwan
- 创建于 : 2025-03-10 10:48:22
- 更新于 : 2025-03-10 11:42:29
- 链接: https://redefine.ohevan.com/2025/03/10/Cpolar实现本地网站外网访问/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。