gpt4 book ai didi

.net - 如何避免由于 2x 反向代理网络中未关闭套接字而导致端口耗尽?

转载 作者:行者123 更新时间:2023-12-01 04:07:13 24 4
gpt4 key购买 nike

我正在开发一个名为 PortFusion 的分布式反向代理.它最初的目标是通过防火墙建立长期的、开销最小的、高吞吐量的 TCP 隧道,特别是对于 RDP——很少的、长期存在的连接。

不过,现在,为了满足用户对安全性和帮助事件家的需求,我正在扩展它以支持加密并支持许多短期连接。

网络:

          Hu 1000 <============ Cx 1000 Au
[ 1001 1001=Ax:1000
^ |
| |
| |
| v
Cu 1001 Au Hx 1000
Squid <----- 1001=Au:3128 [ 1001 <----- Firefox

Legend:

u you
x person x

A address
H PortFusionHost
[ hosted service
C PortFusionClient

< establish bidirectional link
= encrypted, secure, bidirectional link
- localhost-only, normal, bidirectional link

Notes:

- Squid as a forward HTTP proxy
- Connection between two parties (===) are secure and encrypted
- Cu is in complete control of what services are shared with Hx
- A single Hu and a single Cu can handle multiple persons x y z

问题:

在上面的网络设置中,我检查了 Connected套接字的属性,例如 Hx接受来自 Firefox @ Ax:1001 , 将闭包传播到 Cu 使用的相应镜像套接字与 Squid 通信。

但是他们总是保持联系!
  • 为什么 Firefox 套接字总是保持连接?
  • 一旦得到响应,Firefox 是否不负责关闭它为 HTTP 请求打开的套接字?
  • 是否还有其他我可以感知并用于关闭套接字的外部触发器?


  • 有关已接受答案的信息

    使用 Connected套接字的属性是错误的。按照已接受答案中的提示,我阅读了 this post这个 MSDN article .

    经过如下所示的更改,现在两端都得到 立即一旦请求得到完全响应并且关闭传播按预期正常工作,就会立即通知。 (在过去,有一种不同的机制在最终清除不活动的套接字,但速度不够快。)

    代码 (F#) 之前:
                try
    request serverPort cl [||]
    while transmitting && socket.Connected do
    if socket.Available = 0
    then Thread.Sleep Wait
    else let length = read()
    LogFlow "<:>" "Read" serverPort "<-" client length
    request serverPort cl <| Array.sub buffer 0 length
    with

    之后的代码:
                try
    request serverPort cl [||]
    while transmitting && read() > 0 do
    let length = !lengthR
    LogFlow "<:>" "Read" serverPort "<-" client length
    request serverPort cl <| Array.sub buffer 0 length
    with

    在哪里 read包含对 Socket.Receive 的调用并设置 lengthR .

    最佳答案

    'connected' 属性是指套接字,而不是连接。连接没有连接状态。它们一直连接,直到您在读取时收到 EOS,或者在读取或写入时出现错误。你应该传播的是 EOS 条件。您可以通过关闭下游套接字的输出在代理中执行此操作。您正在使用的代理基础产品应该已经完成​​了所有这些。

    关于.net - 如何避免由于 2x 反向代理网络中未关闭套接字而导致端口耗尽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8582085/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com