服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

Linuxnetworking端口耗尽

我已经做了尽可能多的研究,而不用在内核源代码中进行挖掘。 关于这个问题似乎有大量的虚假信息/不正确的信息,所以我希望这个答案为我和其他人一劳永逸。 严格的讲IPv4,实际上是端口耗尽的可能吗? 让我解释: 貌似有65535个端口可供使用。 0不可用。 我已经读过,端口耗尽需要(src ip,src端口,dst ip,dst端口)元组是唯一的。 要清楚,并假设我可以通过sysctl net.ipv4.ip_local_port_range设置使用100%的临时端口 这就是问题:这是如何工作的? 我可以从127.0.0.1:(x)到127.0.0.1:80有65k连接 我可以从127.0.0.1:(x)到127.0.0.1:555有65k连接 基本上再一次,问题是(srcip,srcport,dstip,dstport)必须是唯一的,正确的? 我无法打开从 IP“A”到IP“B”,端口“N” 同样,一个IP不能打开超过65k连接到我的web服务器在xxxx:80,但是我可以支持多于65k整体,只要他们来自不同的来源IP ? 最后,我对输出的临时端口和正在监听的input端口有些困惑。 我意识到一旦build立连接,连接的每一边都是对等的,但在此之前: 例如,如果确实(srcip,srcport,dstip,dstport)元组必须是唯一的,为什么如果我启用,例如 net.ipv4.ip_local_port_range = 1024 65535 它允许使用从1024-65535的短暂端口,如果我的服务绑定在端口3306上(例如mySQL),它们有时会因端口正在使用而无法启动。 这与这个事实有关:(这是我要求validation的一个陈述): (srcip,srcport,dstip,dstport)对端口范围1-65535的每个连接都是唯一的(不注意操作系统使用临时端口) 但是,对于要绑定的套接字,可以将其视为(srcip,srcport,*,*)。 或者另一种方式来说明,是否IP不能以任何理由使用该端口绑定? 我可以validation上述行为,即我使用上面的确切的sysctl行,因为它我把mySQL移动到一个低于1024的端口,因为它会偶尔和非常随机地重新启动,因为假设操作系统使用该端口(3306)为一个短暂的港口。