.NET + SignalR 的反向代理 websocket/http 数据隧道

net,signalr,反向,代理,websocket,http,数据,隧道 · 浏览次数 : 238

小编点评

**开源项目 TuToDataTunnel 的功能概述:** **功能:** * 使用一个公网 IP 地址和一个 tcp 端口,默认端口为 80 http。 * 通过隧道传输多个 TCP 和 udp 套接字。 * 可通过启动参数配置跨平台控制台应用程序整个解决方案是 两个应用程序TutoProxy.Server和TutoProxy.Client。 * TutoProxy.Server 应用程序是隧道客户端和tcp/udp 终端客户端的入站服务器,在公网上部署。 * TutoProxy.Client 应用程序是一个出口隧道客户端。 **启动参数:** * **server**:TutoProxy.Server 的服务器地址,默认值为 200.100.10.1:8088。 * **sendto**:数据目标的 IP地址,默认值为 127.0.0.1。 * **id**:客户端 ID,默认值为 Client1。 * **tcp**:用于 TCP 端口的列表,默认值为 80,81,443,8000-8100。 * **udp**:用于 UDP 端口的列表,默认值为 700-900, 65500。 **端口冲突处理:** * 不同的 TutoProxy.Client 的端口应该不同。 **其他说明:** * 启动 TutoProxy.Server 和 TutoProxy.Client 应用程序需要在相同主机上运行。 * 每个客户端提供一组唯一的套接字/端口。

正文

开源项目TuToDataTunnel: https://github.com/viordash/TuToDataTunnel,这个项目可以满足以下几个需求:

  1. 使用一个公网 IP 地址和一个 tcp 端口,默认端口为 80 http。

  1. Websocket 或 http 隧道传输、性能或可访问性。理想情况下,将自动选择最佳可用交换协议。

  1. 同时通过隧道传输多个 TCP 和 udp 套接字。

  1. 可通过启动参数配置的跨平台控制台应用程序

image

整个解决方案是 两个应用程序TutoProxy.Server和TutoProxy.Client:

TutoProxy.Server应用程序是用于隧道客户端和tcp/udp终端客户端的入站服务器,部署在公网上。它的启动参数是:

  • <host>,服务器的地址,例如 http://200.100.10.1:8088

  • --tcp <tcp>,侦听的 TCP 端口列表,例如 --tcp=80,81,443,8000-8100。(可选)前提是存在 --udp 选项。

  • --udp <udp>,侦听的 UDP 端口列表,例如 --udp=700-900,65500。(可选)前提是存在 --tcp 选项。

  • --客户端<客户端>允许客户端的可选列表,例如 --client=Client1,Client2 如果省略此参数,则不会对连接的客户端进行访问检查

例如,用于启动大约 50 个 TCP/UDP 端口到三个客户端的输入隧道的行如下所示:

TutoProxy.Server http://200.100.10.1:8088 --tcp=3389,8071-8073,10000-10010,20000-20010 --udp=5000-5010,7000-7010 --clients=Client0Linux,ClientSecLinux,Client3Win


TutoProxy.Client应用程序是一个出口隧道客户端。

它的启动参数是:

  • <server>,TutoProxy.Server服务器的地址,例如 http://200.100.10.1:8088

  • <sendto>,数据目标的 IP,例如 127.0.0.1

  • --id <id>, 客户端 ID,例如 --id=Client1

  • --tcp <tcp>,TCP 端口列表,例如 --tcp=80,81,443,8000-8100。(可选)前提是存在 --udp 选项。

  • --udp <udp>,UDP 端口列表,例如 --udp=700-900.65500。(可选)前提是存在 --tcp 选项。

例如,启动 5 个 tcp 和 3 个 udp 端口的输出隧道的行将如下所示:

TutoProxy.Client http://200.100.10.1:8088 127.0.0.1 --tcp=8071,10000,20004-20006 --udp=7000-7002 --id= Client0Linux.

重要的是要考虑到不同TutoProxy.Client的端口不应该重叠,即每个客户端提供一组唯一的套接字/端口。

与.NET + SignalR 的反向代理 websocket/http 数据隧道相似的内容:

.NET + SignalR 的反向代理 websocket/http 数据隧道

开源项目TuToDataTunnel: https://github.com/viordash/TuToDataTunnel,这个项目可以满足以下几个需求:使用一个公网 IP 地址和一个 tcp 端口,默认端口为 80 http。Websocket 或 http 隧道传输、性能或可访问性。理想情况下

基于SqlSugar的开发框架循序渐进介绍(25)-- 基于SignalR实现多端的消息通讯

基于ASP.NET Core SignalR 可以实现客户端和服务器之间进行即时通信。本篇随笔介绍一些SignalR的基础知识,以及结合对SqlSugar的开发框架的支持,实现SignalR的多端处理整合,从而实现Winform客户端,基于Vue3+ElementPlus的BS端整合,后面也可以实现对移动端的SignalR的整合通讯。

ASP.NET Core实时库SignalR简单应用

## 一、什么是SignalR: **SignalR** 是用于构建需要实时用户交互或实时数据更新的Web 应用程序的一个开放源代码.NET 库。不仅仅用在Web应用中,后面会讲到它的应用范围。它简化了简化了构建实时应用程序的过程,包括**ASP.NET Server**库和**JavaScript

造轮子之消息实时推送

前面我们的EventBus已经弄好了,那么接下来通过EventBus来实现我们的消息推送就是自然而然的事情了。说到消息推送,很多人肯定会想到Websocket,既然我们使用Asp.net core,那么SignalR肯定是我们的首选。接下来就用SignalR来实现我们的消息实时推送。 Notific

一个.NET 7 + DDD + CQRS +React+Vite的实战项目

## 项目简介 基于SignalR实现聊天通信,支持横向扩展,可支撑上万用户同时在线聊天 ## 快速体验 http://server.tokengo.top:8888/ 可在这里快速体验使用,请注意目前只适配了PC端,请勿使用手机访问,可能出现样式不适应的情况, 当然如果你想要自己部署也可以,目前提

【ASP.NET Core】动态映射MVC路由

ASP.NET Core 中的几大功能模块(Razor Pages、MVC、SignalR/Blazor、Mini-API 等等)都以终结点(End Point)的方式公开。在HTTP管道上调用时,其扩展方法基本是以 Map 开头,如 MapControllers、MapBlazorHub。 对于

【ASP.NET Core】修改Blazor.Server的Hub地址后引发的问题

Blazor Server,即运行在服务器上的 Blazor 应用程序,它的优点是应用程序在首次运行时,客户端不需要下载运行时。但它的代码是在服务器上执行的,然后通过 SignalR 通信来更新客户端的 UI,所以它要求必须建立 Web Socket 连接。 用于 Blazor 应用的 Signal

WatchDog:一款.NET开源的实时应用监控系统

项目介绍 WatchDog是一个开源(MIT License)、免费、针对ASP.Net Core Web应用程序和API的实时应用监控系统。开发者可以实时记录和查看他们的应用程序中的消息、事件、HTTP请求和响应,以及运行时捕获的异常。 项目工作原理 它利用SignalR进行实时监控,并使用Lit

SignalR+Hangfire 实现后台任务队列和实时通讯

# SignalR+Hangfire 实现后台任务队列和实时通讯 1.简介: SignalR是一个.NET的开源框架,SignalR可使用Web Socket, Server Sent Events 和 Long Polling作为底层传输方式实现服务端和客户端的实时数据交互。 Hangfire是一

Blazor模式讲解

Blazor的三种模式 Blazor Server: Blazor Server在 ASP.NET Core 应用中支持在服务器上托管 Razor 组件。 可通过 SignalR 连接处理 UI 更新。 运行时停留在服务器上并处理: 执行应用的 C# 代码。 将 UI 事件从浏览器发送到服务器。 将