如果您在一个 eth 设备上设置了多个 ip,那么端口是否允许为 1 个 eth 或 1 个 ip 共享?
现在,我遇到了一种情况,我在 Linux 系统公开的单个开发上别名了很多 ip。这个开发者可以说是 ethX。
现在,在 ethX 上,我从子网添加了许多 ip。
问题:
看来 ethx 上的所有 ip 共享端口范围。这意味着: 如果我在 ethx 上添加 ip xyab 并使用端口 5552 现在我在 ethx 上添加一个 ip yxba 并尝试使用 5552 ->这是不可能的
有谁能证实这一点吗?
添加是使用 ip2 utils (ip addr add xxxx dev xxxx) 等完成的。
Now, I have a situation where I alias a lot of ips on a single dev exposed by linux system. this dev is lets say ethX.
Now on ethX I add many ips from a subnet.
Problem:
It appears that the port range is shared for all ips on the ethx. which means:
if I use add an ip x.y.a.b on ethx and use port 5552
now i add an ip y.x.b.a on ethx and try to use 5552 -> this cannot be done
Can anyone confirm this?
addition is done using ip2 utils (ip addr add xxxx dev xxxx) etc.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
TCP 连接由元组(接口、源地址、源端口、目标地址、目标端口)标识,因此端口不共享。
使用
是什么意思?你的意思是bind()
吗?您应该能够bind()
到不同地址上的同一端口,尽管您可能需要使用SO_REUSEADDR
,我不记得具体细节了。A TCP connection is identified by the tuple (interface, source address, source port, dest address, dest port), so no, ports are not shared.
What do you mean by
use
? Do you meanbind()
? You should be able tobind()
to the same port on different addresses, though you may need to useSO_REUSEADDR
, I don't remember the specifics.