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

有没有办法将短暂端口的数量加倍并在16位限制附近工作?我尝试在eth0上创建虚拟以太网接口,并希望能够解除限制.虽然应用程序在出站流量中使用新的虚拟IP,但它似乎仍然达到了相同的临时端口限制.我认为虚拟端口与物理接口上的端口具有一对一的映射关系.

ifconfig eth0:1 10.10.10.210 netmask 255.255.255.192
ifconfig eht0:2 10.10.10.211 netmask 255.255.255.192

有人可以建议我如何在不添加额外NIC的情况下将Linux中的短暂端口总数翻倍?

(仅供参考,我尝试增加ulimit / max打开文件,更改端口范围,启用tcp recycle / timestamps,减少tcp fin超时…我想我们只需要超过65k端口用于此代理机器.)

解决方法:

如果在eth0上创建虚拟接口,则应该能够为这些接口分配不同的IP地址.有了这个,您可以使用相同的短暂端口号(它们在内核中分配,因此您实际上没有太多控制权),每个端口都绑定到不同的地址 – 您可能需要设置SO_REUSEADDR选项.这将起作用的原因是因为对于传入的数据包(UDP / TCP),通过查看本地源IP和端口号来识别流.

正如@Duck所提到的,由于TCP / UDP报头仅为端口号分配16位,因此增加本地堆栈中的短暂范围没有太大意义.

上一篇:wait和notify


下一篇:PROFIBUS,PROFINET,Ethernet三者的区别