如果您在一个 eth 设备上设置了多个 ip,那么端口是否允许为 1 个 eth 或 1 个 ip 共享?

发布于 2024-11-23 15:45:14 字数 302 浏览 1 评论 0原文

现在,我遇到了一种情况,我在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

左秋 2024-11-30 15:45:15

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 mean bind()? You should be able to bind() to the same port on different addresses, though you may need to use SO_REUSEADDR, I don't remember the specifics.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文