繁体   English   中英

同一端口上有多个TCP服务

[英]Multiple tcp services on the same port

我正在一个项目中,到目前为止,某些客户端(嵌入式linux系统)需要使用至少两种协议连接到主服务器:HTTPS和SSH。 要求之一是从每个客户端到服务器只允许一个流,因此我必须找到一种使两个服务在同一端口上工作的方法。

我正在考虑的一种解决方案是使用iptables标记:在客户端,将SSH的数据包标记为0x1,将HTTPS的数据包标记为0x2,然后在服务器端,根据该标记,将数据包重定向到右侧服务在本地接口上侦听。 这是可以接受的解决方案吗? 这些标记是由网络路由器保存的,还是仅在同一台机器上本地工作的iptables?

而且,无论如何,如果您可以提出其他解决方案的建议,当然欢迎您!

其他用户将来会发现此问题的更多信息:

https://github.com/yrutschle/sslh具有您可能需要的功能。 我还没有使用过(但尚未计划)。 从Github站点:sslh-一个ssl / ssh多路复用器

sslh接受指定端口上的连接,并根据对远程客户端发送的第一个数据包执行的测试进一步转发它们。

实现了针对HTTP,SSL,SSH,OpenVPN,tinc,XMPP的探针,并且可以识别可以使用正则表达式测试的任何其他协议。 一个典型的用例是允许在端口443上提供多种服务(例如,从公司防火墙内部连接到SSH,几乎从不阻止端口443),同时仍在该端口上提供HTTPS。

因此,sslh充当协议多路分解器或配电盘。 它的名称来自其在同一端口上提供SSH和HTTPS的原始功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM