tcp

DSR 的 HAPROXY 配置
tcp

DSR 的 HAPROXY 配置

我必须使用 HAproxy 在 TCP 模式下进行负载平衡。后端应用程序需要使用客户端源 IP。我在网上找到的唯一解决方案是在 DSR 模式下配置 haproxy。我找到了以下链接 https://www.haproxy.com/blog/layer-4-load-balancing-direct-server-return-mode/它只解释了 Linux 服务器配置,而不是 haproxy 配置,其他地方也没有。如果有人能帮助我完成 DSR 模式的 haproxy 配置,那将非常有帮助。 ...

Admin

仅在输出链上路由?
tcp

仅在输出链上路由?

我有两台机器 A 和 B。我想将 iperf 流量从 A 发送到 B,但首先让它通过 A 上的用户空间程序进行路由。我使用隧道设备完成了此操作:因此,我使用了命令ip route add *B address* dev tun77。 但是,此命令阻止了从 B 到 A 的连接:例如,我无法从 SSH B 到 A。这给我的项目带来了问题,尤其是 TCP 流量。 我以为这ip route只会影响离开机器 A 的数据包。但是,它似乎影响了从 B 到 A 的连接。这是因为传入的数据包正在被路由,还是从 A 到 B 的响应阻止了连接发生(如 SYNACK 消息)?您...

Admin

Windows TCP 超时
tcp

Windows TCP 超时

Windows 上是否有任何默认的 TCP 连接超时?因此,当未收到任何答复时,连接将被关闭。我问这个问题的原因是,在一台机器上,连接会在 5 分钟后关闭。(Windows XP)在另一台机器上运行相同的客户端 - 服务器连接,连接将永远保持打开状态,就像它应该的那样。或者也许我应该知道某个全局 Java 虚拟机设置? 服务器和客户端在同一台本地机器上运行 ...

Admin

在 iMac 上添加新的端口转发条目(TCP)
tcp

在 iMac 上添加新的端口转发条目(TCP)

我使用的是 iMac,Leopard OSX,我需要在 iMac 本身中添加一个新的端口转发条目(TCP 协议),因为我没有将路由器/调制解调器连接到 iMac,而是使用光纤(即从 iMac 直接连接到墙壁的网线)。那么如何在 iMac 中完成此操作? 谢谢你! ...

Admin

如何解释 FIN、ACK 而不是 FIN - FIN、ACK 的序列?
tcp

如何解释 FIN、ACK 而不是 FIN - FIN、ACK 的序列?

语境:新安装的 Debian 12,我收到一堆与 ssh 相关的奇怪日志: root@square:~# journalctl -u ssh -f May 07 11:13:00 yop-square sshd[766]: error: kex_exchange_identification: Connection closed by remote host May 07 11:13:00 yop-square sshd[766]: Connection closed by 10.91.66.91 port 53714 May 07 11:13:00 yop...

Admin

TCP 交换中是否会丢弃多余的标志?
tcp

TCP 交换中是否会丢弃多余的标志?

“正常”的 TCP 握手如下所示: MachineA → SYN → MachineB Machine B → SYN,ACK → MachineA MachineA → ACK → MachineB 这意味着对于每个步骤,都需要在数据包中设置一个标志(或一组标志)。 当存在预期标志时,是否会丢弃额外的标志,或者是否将带有额外标志的数据包视为不正确?换句话说,以下序列是否会被视为MachineB完整、正确的握手? MachineA → SYN → MachineB Machine B → SYN,ACK → MachineA MachineA → ACK,...

Admin

PowerShell:使用 Test-NetConnection 诊断 TCP 端口上的超时与连接被拒绝
tcp

PowerShell:使用 Test-NetConnection 诊断 TCP 端口上的超时与连接被拒绝

我经常需要诊断网络连接问题,目前使用的Test-NetConnection是 PowerShell(版本 5.1)。输出告诉我端口是否可访问。如果不可访问,我想知道具体错误,例如timeout或connection refused。到目前为止,我在输出中找不到这条信息。 是否可以使用 获取失败的连接尝试的具体错误消息Test-NetConnection? 如果可以,如何获取? 作为参考,这里有我得到的三个输出示例。 连接成功 Test-NetConnection somehostname -Port 1433 -InformationLevel Deta...

Admin

当数据包在同一台机器上运行时,将数据包传送到正确的 Web 服务器
tcp

当数据包在同一台机器上运行时,将数据包传送到正确的 Web 服务器

例如,我在一台机器上运行两个 Web 服务器(只有一个 NIC 可用)。它们使用不同的端口(比如:1200 和 1201) 现在,当客户端(例如来自移动设备或笔记本电脑的浏览器)尝试访问这些 Web 服务器时。可以通过在浏览器中输入 http 地址或 IP 地址来访问服务器;但不会同时提供端口号。 在这种情况下,由于地址中没有提供端口号,如何将数据包传送到正确的服务器? 我知道传入的数据包将被传送到正确的浏览器进程,因为数据包包含客户端 IP 地址和端口号。 谢谢! ...

Admin

为什么 listen() (在调用 accept() 之前)足以让应用程序完成三次握手?
tcp

为什么 listen() (在调用 accept() 之前)足以让应用程序完成三次握手?

我正在 Linux 上用 C 调试一个非常基本的 tcp 服务器。我在调用 accept() 的那一行之前停止了执行。令我惊讶的是,当客户端发送 SYN 时,tcpdump 显示服务器以 SYN-ACK 响应(客户端会立即用最终 ACK 回复)。 ss命令确实表明应用程序已经在监听绑定的端口。 我知道我已经调用了 listen(),因此应用程序将监听绑定的端口。但是,按照相同的语义,应该在服务器接受连接之前调用 accept()。 在 listen() 手册页中,它写道(斜体是我的): listen() 将 ...

Admin

HTTP Keepalive 如何处理来自同一来源的多个请求以及 EOF?
tcp

HTTP Keepalive 如何处理来自同一来源的多个请求以及 EOF?

说客户端有多个文件要通过 HTTP Post 方法发布到服务器,将会有两个 api 调用。因为我不想创建两个 TCP 连接,而且我想重用 TCP 连接,所以我对第一个请求使用了 Http keep-alive 标头,现在我只需要在第一个请求时建立一个 TCP 连接来发送多个文件 但是服务器如何区分这两个文件呢?当我们不使用keep alive时,客户端的操作系统会发送EOF标志(文件结束)来指示服务器文件已完成传输 以下是我的假设,不确定是否正确: 现在我们使用 keep-alive,因此服务器上的 EOF 不会关闭连接,因此可以通过同一连接发送第二个文件并...

Admin

Linux 6.5 netfilter NAT 在 TIME_WAIT 状态下重用 TCP 端口?
tcp

Linux 6.5 netfilter NAT 在 TIME_WAIT 状态下重用 TCP 端口?

据我所知,Linux(netfilter)的 NAT 不会重用 TIME_WAIT 状态下的 TCP 端口,但似乎 Linux >= 6.5 会重用 TIME_WAIT 状态下的 TCP 端口,即使目的地相同。 例如我添加了这个iptables规则。 sudo iptables -t nat -A POSTROUTING -p tcp --dport 3478 -j SNAT --to-source :10000 现在,仅使用端口 10000 来连接 TCP 中的 *:3478。我使用了 stunclient (https://www.stunprot...

Admin

TCP 如何处理来自同一主机的多个并发请求
tcp

TCP 如何处理来自同一主机的多个并发请求

假设有一个 Web 服务器公开具有两个端点的端口 80,一个用于返回数据集 A,另一个用于返回数据集 B。 我有一个执行多线程的应用程序,因此我可能会并行发送两个请求,请求A以访问数据集A,请求B以并行访问数据集B。 根据我对TCP的理解是: 两个主机之间的 TCP 连接由以下 5 元组唯一标识: 由以下 5 元组唯一标识: 协议(UDP、TCP) 主机 A 的 IP 地址。 主机 A 的端口号。 主机 B 的 IP 地址。 主机 B 的端口号。 在我的例子中,源的 ip 地址和端口号与服务器相同 这会给 TCP 造成混乱吗?假设 reques...

Admin

我该如何修复它?“XRAY:transport/internet/websocket:无法为 WebSocket 提供 http > 接受 tcp [::]:8443:使用已关闭的网络连接。”
tcp

我该如何修复它?“XRAY:transport/internet/websocket:无法为 WebSocket 提供 http > 接受 tcp [::]:8443:使用已关闭的网络连接。”

最近我购买了一台德国的 VPS 服务器,以便使用 v2ray 创建我自己的 VPN,因为我住在伊朗,这里的互联网受到严格审查。 我将我的域名连接到 CloudFlare CDN,以避免我的实际服务器 IP 泄露,并且我已在我的域名上激活 SSL。我创建了一个 VPN 配置,使用端口 443 上的 vless 和 websocket 作为传输,因为我正在使用 CDN 并使用我的域名作为 SNI,同时激活 TLS。 这个配置工作正常,但是当我尝试在任何其他 https 端口上使用 vmess 或 vless 创建任何其他配置时,我收到此错误: 警告 - XRA...

Admin

显式拥塞通知 (ECN),为什么路由器不发出通知?
tcp

显式拥塞通知 (ECN),为什么路由器不发出通知?

引用维基百科: “当两个端点都支持 ECN 时,它们会用 ECT(0) 或 ECT(1) 标记其数据包。路由器将 ECT(0) 和 ECT(1) 代码点视为等效。如果数据包穿过正在经历拥塞的主动队列管理 (AQM) 队列(例如,使用随机早期检测 (RED) 的队列),并且相应的路由器支持 ECN,则它可能会将代码点更改为 CE,而不是丢弃数据包。此操作称为“标记”,其目的是通知接收端点即将发生拥塞。在接收端点,此拥塞指示由上层协议(传输层协议)处理,并需要回送到发送节点,以通知其降低传输速率。“ 因此,拥塞反馈机制是在传输层 (TCP) 中通过接收端发送 E...

Admin