首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过添加额外的以太网接口来增加临时端口

通过添加额外的以太网接口来增加临时端口
EN

Stack Overflow用户
提问于 2013-09-09 22:53:08
回答 4查看 2.2K关注 0票数 4

有没有办法将临时端口的数量增加一倍,并绕过16位的限制?我已经尝试过在eth0上创建虚拟以太网接口,希望它能打破这一限制。尽管应用程序在出站流量中使用了新的虚拟is,但它似乎仍然达到了相同的临时端口限制。我假设虚拟端口与物理接口上的端口具有一对一的映射关系。

ifconfig eth0:1 10.10.10.210网络掩码255.255.255.192 ifconfig eht0:2 10.10.10.211网络掩码255.255.255.192

有人能告诉我如何在不增加额外网卡的情况下将Linux中的临时端口总数增加一倍吗?

(仅供参考,我已尝试增加ulimit/max打开文件,更改端口范围,启用tcp循环/时间戳,减少tcp fin超时...我想我们只需要为这台代理机器提供超过65k的端口。)

EN

回答 4

Stack Overflow用户

发布于 2013-09-10 04:29:55

如果您通过eth0创建虚拟接口,那么您应该能够为这些接口分配不同的IP地址。这样,您就可以对绑定到不同地址的多个套接字使用相同的临时端口号(它们是在内核中分配的,因此您实际上没有太多的控制权) --您可能需要设置SO_REUSEADDR选项。这样做的原因是,对于传入的数据包(UDP/TCP),通过查看本地源IP和端口号来识别流。

正如@Duck提到的,由于TCP/UDP报头只为端口号分配了16位,因此在本地堆栈中增加临时范围没有多大意义。

票数 3
EN

Stack Overflow用户

发布于 2013-09-09 23:08:51

这是网络协议的一个限制。例如,TCP和UDP都具有16位的源端口和目的端口。即使您可以增加端口的数量,也没有人可以对它们进行寻址。

票数 1
EN

Stack Overflow用户

发布于 2014-06-20 18:01:05

原来,如果您想要超过65535的限制,则不能使用0绑定临时端口。相反,您需要使用显式端口号。

此外,打开tcp_tw_reuse可能会有所帮助:http://krenel.org/tcp-time_wait-and-ephemeral-ports-bad-friends.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18701063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档