将 UDP 转换为 TCP - Ngrok TCP => UDP

Posted

技术标签:

【中文标题】将 UDP 转换为 TCP - Ngrok TCP => UDP【英文标题】:Convert UDP to TCP - Ngrok TCP => UDP 【发布时间】:2018-04-22 20:25:27 【问题描述】:

我现在很着急。

我的问题是,有没有办法将 UDP 转发到 TCP 端口? 我需要这个来为我的朋友托管游戏服务器,我想 以反恐精英服务器为例,但它使用 UDP(用户数据报协议)作为服务器端口,但 NGROK 仅支持 TCP(传输控制协议)和 HTTP(超文本传输​​协议)。

我之前试过这个..

ngrok tcp 127.0.0.1:27015

通常它会开始:

ngrok by @inconshreveable                                       (Ctrl+C to quit)

Session Status                online
Account                       Soricy Infinitive (Plan: Free)
Version                       2.2.8
Region                        United States (us)
Web Interface                 http://127.0.0.1:4040
Forwarding                    tcp://0.tcp.ngrok.io:18833 -> 127.0.0.1:27015

Connections                   ttl     opn     rt1     rt5     p50     p90
                              0       0       0.00    0.00    0.00    0.00

但是在游戏中连接不上0.tcp.ngrok.io:18833,显示服务器端没有配置UDP。

有什么方法可以让我做到这一点? UDP=>TCP?

【问题讨论】:

简短的回答是“不”。您必须为自己编写某种代理处理程序来转发它。 【参考方案1】:

结帐DatagramTunnneler (on github)。它是一个开源的 c++ 程序,它只是侦听 UDP 流量并将其转发到您选择的 TCP 端点。在该 TCP 端点上,另一个 DatagramTunneler 实例将 UDP 数据发布回 UDP 通道。 免责声明:我编写了该工具。

【讨论】:

【参考方案2】:

一种方法是复制“原始”udp 有效负载并使用原始有效负载创建一个新的 TCP 数据包。但是你需要设置除udp层之外的其他层的相同数据。另外:您需要一个干净的 tcp 层配置。

【讨论】:

没关系,给自己弄了一个 VPS,现在我可以使用 Wine 托管服务器了 :) 如果 NGROK 实现了 UDP 支持,我也会尝试!

以上是关于将 UDP 转换为 TCP - Ngrok TCP => UDP的主要内容,如果未能解决你的问题,请参考以下文章

如何让 Ngrok 固定(静态)端口 TCP

使用 ngrok 使用 tcp 隧道将数据发送到 tcp 端口时出错

ngrok:tcp 转发到 25565(我的世界服务器)

详解TCP/UDP模式下的MODBUS协议转换

详解TCP/UDP模式下的MODBUS协议转换

python 网络通信协议/TCP,UDP区别