小编A.B*_*oll的帖子

Linux 网络端口耗尽

我已经做了尽可能多的研究,而没有直接挖掘内核源代码。关于这个主题似乎有大量虚假信息/不正确信息,所以我希望这能一劳永逸地回答我和其他人的问题。

严格来说,IPv4 端口耗尽真的可能吗?让我解释:

  • 貌似有 65535 个端口可供使用。0 不可用。
  • 我读过端口耗尽需要 (src ip, src port, dst ip, dst port) 元组是唯一的。
  • 明确并假设我可以通过 sysctl net.ipv4.ip_local_port_range 设置使用 100% 的临时端口

这就是问题:它是这样工作的吗?

  • 我可以有 65k 个连接,从 127.0.0.1:(x) 到 127.0.0.1:80
  • 我可以有 65k 个连接,从 127.0.0.1:(x) 到 127.0.0.1:555
  • 基本上再一次,问题是 (srcip,srcport,dstip,dstport) 必须是唯一的,对吗?
  • 我无法打开ip "A" 到 IP "B"、端口 "N" 的超过 65k 个连接
  • 同样,单个 IP无法在 xxxx:80 处打开到我的网络服务器的超过 65k 个连接,但是只要它们来自不同的源 IP,我就可以支持超过 65k 的总体连接?

最后,我对(传出)临时端口和正在侦听的传入端口感到有些困惑。我意识到一旦建立连接,连接的每一端都是对等的,但在此之前:

例如,如果确实 (srcip,srcport,dstip,dstport) 元组必须是唯一的,为什么我启用它,例如

net.ipv4.ip_local_port_range = 1024 65535
Run Code Online (Sandbox Code Playgroud)

这允许使用 1024-65535 的临时端口,如果我有绑定在端口 3306(例如 mySQL)上的服务,它们有时会因为端口正在使用而无法启动。

这是否与以下事实有关:(这是我要求验证的声明):

  • (srcip,srcport,dstip,dstport) 对每个连接都需要是唯一的,端口范围为 1-65535(不注意操作系统对临时端口的使用) …

networking linux port sysctl

12
推荐指数
1
解决办法
1万
查看次数

标签 统计

linux ×1

networking ×1

port ×1

sysctl ×1