完整教程:告别内网困局:cpolar破解Websocket远程访问难题

news/2025/10/25 16:45:58/文章来源:https://www.cnblogs.com/yxysuanfa/p/19165623

文章目录

    • 前言
        • 1. Java 服务端demo环境
        • 1. Java 服务端demo环境
        • 2. 在pom文件引入第三包封装的netty框架maven坐标
        • 3. 创建服务端,以接口模式调用,方便外部调用
        • 4. 启动服务,出现以下信息表示启动成功,暴露端口默认9999
        • 5. 创建隧道映射内网端口
        • 6. 查看状态->在线隧道,复制所创建隧道的公网地址加端口号
        • 7. 以基于go的socket客户端为例,通过公网连接java socket服务端
        • 8. 通过git下载websocket框架
        • 9. 创建客户端, 注意:Host值为上面复制的隧道公网地址!!
        • 10. 接着启动服务,与服务端连接,出现服务端返回的字样表示连接成功
        • 11. 客户端在控制台输入信息,回车
        • 12. 服务端出现客户端发送的信息
        • 13. 服务端控制台输入消息,回车
        • 14. 客户端收到服务端回复的消息,连接成功
        • 技术的进步应该让复杂的事情变简单,Websocket与cpolar的组合正是如此。它用轻量化穿透技术消除了内网访问的壁垒,同时保持实时通信的低延迟特性。当远程访问变得像本地连接一样顺畅,或许我们真的可以重新定义实时应用的开发方式。

前言

Websocket重新定义了客户端与服务器的通信方式——这款实时通信协议支持全双工数据传输,让在线聊天、实时监控和协同编辑等应用成为可能。它突破了HTTP请求的单向限制,以持久连接实现低延迟数据交互,是现代实时应用开发的基石技术。

作为一名全栈开发者,Websocket最吸引我的是其“即时响应”的特性——用户操作无需等待页面刷新,数据实时推送提升交互体验。但过去最困扰我的是,本地开发的WebSocket服务无法让远程团队成员测试,每次演示都要临时部署到云服务器,既耗时又占用资源。

自从用cpolar穿透内网后,我的开发流程发生了质的改变。上周与异地团队联调实时聊天功能,通过cpolar生成的公网地址,前端同事直接连接我本地的WebSocket服务,实时反馈问题并修改。这种“本地开发+公网测试”的模式,不仅节省了云服务器成本,更让实时应用的迭代速度提升数倍。

1. Java 服务端demo环境

下面我们就来试试吧!

1. Java 服务端demo环境
  • jdk1.8
  • 框架:springboot+maven
  • 工具IDEA
2. 在pom文件引入第三包封装的netty框架maven坐标
<dependency><groupId>io.github.fzdwx</groupId><artifactId>sky-http-springboot-starter</artifactId><version>0.10.6</version></dependency>

注意:pom文件里需注释掉springbootweb启动器,web启动器默认是tomcat服务启动,会和netty服务冲突

20221220152746

3. 创建服务端,以接口模式调用,方便外部调用
@GetMapping("/getConnect")
public void getConnect(HttpServerRequest request){
request.upgradeToWebSocket(ws -> {
ws.mountOpen(h->{
ws.send("连接成功,开始聊天吧!");
});
ws.mountText(s -> {
System.out.println(s);
//对方回复
System.out.println("客户端回复: "+s);
//获取控制台输入的值
Scanner scanner =new Scanner(System.in);
String next = scanner.next();
ws.send(next);
});
});
}
4. 启动服务,出现以下信息表示启动成功,暴露端口默认9999

20221220152808

5. 创建隧道映射内网端口

这里我们用cpolar内网穿透来映射内网端口,它支持http/https/tcp协议,不限制流量,无需公网ip,也不用设置路由器,操作简单。

curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 或短链接安装方式:(国外用户)
curl -sL https://git.io/cpolar | sudo bash
  • 查看cpolar版本信息
cpolar version

如果正常显示,则安装成功

  • cpolar进行token认证

cpolar官网:https://www.cpolar.com/

进入cpolar官网,注册一个账号并登录进入后台,点击左侧的验证,可以查看到token码,复制并执行命令进行认证

cpolar authtoken xxxxxxxxxxxxxxxxxx
  • 配置cpolar开机自启动
sudo systemctl enable cpolar
  • 守护进程方式,启动cpolar
sudo systemctl start cpolar
  • 查看cpolar守护进程状态,如正常为active,则为正常启动状态
sudo systemctl status cpolar

cpolar安装成功后,默认会配置两个默认隧道:一个ssh隧道和一个website隧道,可自行删减或者修改。

接着把本地服务通过cpolar暴露到公网,浏览器访问http://127.0.0.1:9200,登录cpolar web ui 界面,创建一个tcp隧道,指向9999端口

20221220152822

注意:该隧道选择的是临时tcp地址和端口,24小时内会变化,如需固定tcp地址,可升级为专业套餐做tcp地址固定!

6. 查看状态->在线隧道,复制所创建隧道的公网地址加端口号

20221220152843

此时,websocket服务端已经从本地localhost暴露至公网,接着我们创建一个客户端测试公网访问socket服务端连接

7. 以基于go的socket客户端为例,通过公网连接java socket服务端
8. 通过git下载websocket框架
go get github.com/gorilla/websocket

20221220152904

9. 创建客户端, 注意:Host值为上面复制的隧道公网地址!!
package main
import (
"fmt"
"log"
"net/url"
"github.com/gorilla/websocket"
)
func main() {
// 定义服务端的地址
u := url.URL{
Scheme: "ws",
Host:   "3.tcp.vip.cpolar.cn:10793", //地址为复制隧道的公网地址
Path:   "/eth/getConnect"} //服务端controller 映射地址
// 与服务端建立连接
c, _, err := websocket.DefaultDialer.Dial(u.String(), nil)
if err != nil {
log.Fatal("dial:", err)
}
defer c.Close()
// 阻塞主线程
down := make(chan byte)
// 启动一个线程,读取从服务端发送过来的数据
go func() {
for {
_, message, _ := c.ReadMessage()
fmt.Println("服务端回复:" + string(message))
}
}()
//启动一个线程输入消息
go func() {
for {
var input string
fmt.Scanln(&input)
c.WriteMessage(websocket.TextMessage, []byte(input))
}
}()
for {
<-down
}
}
10. 接着启动服务,与服务端连接,出现服务端返回的字样表示连接成功

20221220152924

11. 客户端在控制台输入信息,回车

20221220152933

12. 服务端出现客户端发送的信息

20221220152943

13. 服务端控制台输入消息,回车

20221220152951

14. 客户端收到服务端回复的消息,连接成功

20221220153000

需要注意,免费使用cpolar所生成的公网地址为随机临时地址,24小时内会发生变化。如果需要长期远程连接,建议为其配置固定的tcp端口地址。即登录cpolar官网后,点击预留,保留一个固定tcp端口地址,然后将其配置到相应的隧道中即可。

技术的进步应该让复杂的事情变简单,Websocket与cpolar的组合正是如此。它用轻量化穿透技术消除了内网访问的壁垒,同时保持实时通信的低延迟特性。当远程访问变得像本地连接一样顺畅,或许我们真的可以重新定义实时应用的开发方式。

cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/946264.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 年钛白粉源头厂家最新推荐排行榜:高分子材料领域专家解析改性技术与行业应用案例

引言 本次钛白粉源头厂家推荐排行榜,是结合中国化工协会高分子材料专业委员会 2024 - 2025 年度测评数据生成,测评覆盖全国 23 个省份共 86 家钛白粉生产企业,采用 “技术实力 + 产品质量 + 服务能力 + 市场口碑” …

如何通过限制网络访问来降低服务器被攻击的风险? - 指南

如何通过限制网络访问来降低服务器被攻击的风险? - 指南2025-10-25 16:38 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important;…

2025 年泳池设备厂家推荐:Firsle 法思乐泳池水处理与海洋馆维生系统设备专业方案及一体化设备优势解析

行业背景 近年来,居民生活品质提升推动私家泳池、民宿泳池需求持续增长,文旅产业扩张带动大型商业泳池、海洋馆项目密集落地,市场对水处理设备的专业性、稳定性与智能化要求显著提高。传统设备普遍存在安装流程复杂…

Axure: 多级多选可交互树状列表 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年工业木托盘批发厂家权威推荐榜单:实木叉车托盘/物流木托盘/免熏蒸木托源头厂家精选

在物流与供应链效率至关重要的今天,工业木托盘作为仓储运输的基础载体,其质量直接关系到整个物流系统的安全与效率。 根据市场调研数据显示,2025年华东地区标准化托盘使用率将突破68%,其中无锡作为苏南物流集散中心…

2025年废气治理设备厂家推荐排行榜,废气处理设备,工业废气净化装置,有机废气处理系统公司精选

2025年废气治理设备厂家推荐排行榜:工业废气净化装置与有机废气处理系统公司精选 随着环保政策的日益严格和工业绿色转型的加速推进,废气治理设备市场正迎来前所未有的发展机遇。工业废气净化装置和有机废气处理系统…

2025年托辊输送带直销厂家权威推荐榜单:输送机托辊/托辊设备/托辊配件源头厂家精选

在工业输送系统领域,托辊作为关键部件,其质量直接影响输送带的运行效率和使用寿命。据行业报告显示,2025年中国输送机托辊市场容量已达数十亿元级别,全球市场预计在预测期内将以稳定增长率持续扩大。 在工业输送系…

2025年提升机厂家权威推荐榜:自动提升机、垂直提升机、斗式提升机,高效输送设备源头厂家精选

2025年提升机厂家权威推荐榜:自动提升机、垂直提升机、斗式提升机,高效输送设备源头厂家精选 在工业自动化快速发展的今天,提升机作为物料输送系统的核心设备,其性能直接影响生产效率和运营成本。自动提升机、垂直…

2025 年最新冲压油供应厂家权威榜单:聚焦空调加工适配性与免清洗技术,助力企业精准选品免清洗/铝翅片/定子转子/高速冲压油厂家推荐

引言 在空调制造行业,翅片冲压油的品质对生产至关重要。为给企业提供可靠选择,中国制冷空调工业协会联合行业专家开展 2025 年翅片冲压油供应厂家测评。测评采用 “三维九项” 体系,从产品性能(润滑性、冷却性、抗…

ttkefu与下一代人机协同客服:重塑服务生态的智能引擎

ttkefu与下一代人机协同客服:重塑服务生态的智能引擎 在数字化浪潮与人工智能技术深度融合的当下,客户服务领域正经历一场由“人机协同”驱动的革命性变革。作为全渠道智能客服系统的标杆,ttkefu凭借其前瞻性的技术…

2025年企业数字化展厅定制厂家权威推荐榜单:企业数字展厅/企业创意展厅/企业智能展厅源头厂家精选

在数字化浪潮的推动下,企业展厅已从静态展示空间逐步升级为集智能交互、数据可视化和沉浸式体验于一体的战略枢纽,成为企业品牌建设与数字化转型的关键一环。 本文将基于行业技术实力、项目案例积累、全流程服务能力…

2025年仿石漆厂家推荐排行榜,外墙仿石漆,真石漆,质感涂料,水包砂,仿石涂料优质供应商精选

2025年仿石漆厂家推荐排行榜:外墙仿石漆、真石漆、质感涂料、水包砂、仿石涂料优质供应商精选 在建筑装饰材料领域,仿石漆凭借其卓越的装饰效果和实用性能,已成为外墙装饰的主流选择。随着2025年的到来,建筑行业对…

实用指南:Nginx 访问控制、用户认证、HTTPS配置实操手册

实用指南:Nginx 访问控制、用户认证、HTTPS配置实操手册pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas…

蓝队中的SOC角色解析:从初级分析师到职业发展路径

本文深入探讨安全运营中心在蓝队中的职能定位,分析从L1分析师开始的职业发展路径,涵盖安全层级结构、蓝队职责分工以及SOC服务提供商类型等核心内容,为网络安全从业者提供清晰的职业规划指导。独家内容:蓝队中的SO…

Electron 应用自动更新方案:electron-updater 完整指南

1. 概述 electron-updater 是 Electron 社区广泛采用的自动更新解决方案,通常与 electron-builder 配合使用。该库封装了跨平台的更新逻辑(支持 macOS、Windows、Linux),并通过事件回调机制让主进程能够在不同更新…

2025年包装机厂家权威推荐榜单:自动包装机、半自动包装机最新选购指南与行业趋势解析

2025年包装机厂家权威推荐榜单:自动包装机、半自动包装机最新选购指南与行业趋势解析 一、包装机行业发展趋势与市场格局 随着制造业智能化转型的深入推进,包装机械行业正迎来技术革新的关键时期。自动包装机和半自动…

《ESP32-S3使用指南—IDF版 V1.6》第四十三章视频播放器实验

第四十三章视频播放器实验 1)实验平台:正点原子DNESP32S3开发板 2)章节摘自【正点原子】ESP32-S3使用指南—IDF版 V1.6 3)购买链接:https://detail.tmall.com/item.htm?&id=768499342659 4)全套实验源码+手…

2025年清洗剂厂家权威推荐榜:水基型清洗剂、工业清洗剂、精密仪器清洗剂源头厂家综合测评与选购指南

2025年清洗剂厂家权威推荐榜:水基型清洗剂、工业清洗剂、精密仪器清洗剂源头厂家综合测评与选购指南 在制造业高质量发展的背景下,清洗剂作为工业生产中不可或缺的辅助材料,其技术水平和产品质量直接影响生产效率和…

18 龟兔赛跑代码和callable的基础结构

18 龟兔赛跑代码和callable的基础结构龟兔赛跑 public class RaceOfRT implements Runnable{private static String winner;//实现接口必须重写run方法,否则报错@Overridepublic void run(){//赢家判定规则:先达到10…

2025年实木家具厂家权威推荐榜:原木/全实木/北美黑胡桃/樱桃木/榫卯工艺高端定制,涵盖烘干/白胚/木蜡油/保养全流程服务

2025年实木家具厂家权威推荐榜:原木/全实木/北美黑胡桃/樱桃木/榫卯工艺高端定制,涵盖烘干/白胚/木蜡油/保养全流程服务 实木家具作为家居领域的高端品类,其市场格局正在经历深刻变革。随着消费者对环保、品质和个性…