zywe 在 [闲聊笔记]简单讲述应用层端口复用以及常见方法——负载均衡与协议识别分流 中发帖
周末了水一篇,简单闲聊端口复用,不涉及内核层端口复用(SO_REUSEPORT),主要聊应用层这边
网络转发工具一般都能端口复用,涉及五元组(5‑tuple),即源IP、源端口、目的IP、目的端口、传输层协议(SrcIP、SrcPort、DstIP、 DstPort、Proto),冲突与否取决于五元组是否完全相同
假设输入
listen = "0.0.0.0:10000"
remote = "1.1.1.1:10000"
extra_remotes = ["127.0.0.1:20001", "127.0.0.1:20002"]
虽然listen和remote都有10000端口,但因为listen是源IP、源端口,remote是目的IP、目的端口,所以不会冲突
listen 固定的是源IP与源端口,变化的则是目的IP与目的端口。再加上 127.0.0.1:20001、127...