前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >.NET + SignalR 的反向代理 websocket/http 数据隧道

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

作者头像
张善友
发布2023-05-23 17:24:25
4010
发布2023-05-23 17:24:25
举报
文章被收录于专栏:张善友的专栏

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

  1. 使用一个公网 IP 地址和一个 tcp 端口,默认端口为 80 http。
  2. Websocket 或 http 隧道传输、性能或可访问性。理想情况下,将自动选择最佳可用交换协议。
  3. 同时通过隧道传输多个 TCP 和 udp 套接字。
  4. 可通过启动参数配置的跨平台控制台应用程序

整个解决方案是 两个应用程序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的端口不应该重叠,即每个客户端提供一组唯一的套接字/端口。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档