gpt4 book ai didi

c# - GCE 允许特定端口上的传入流量

转载 作者:太空宇宙 更新时间:2023-11-03 12:38:55 27 4
gpt4 key购买 nike

我正在尝试在 Google Compute Engine 上托管 TCP 套接字服务器,我在 GCE 防火墙规则上添加了以下规则(套接字端口 0.0.0.0/0 tcp:11000 适用于所有目标)但端口是仍然无法使用公共(public) IP 从外部访问(在我的情况下是短暂的)。

在这种情况下是否还有更多工作要做?我应该在 VM 本身上使用 ufw 来设置额外的规则吗?

如有任何帮助或提示,我们将不胜感激。

编辑:1)防火墙设置:

NAME NETWORK SRC_RANGES RULES SRC_TAGS TARGET_TAGS

默认允许 http 默认 0.0.0.0/0 tcp:80 http 服务器

默认允许 https 默认 0.0.0.0/0 tcp:443 https 服务器

默认允许 icmp 默认 0.0.0.0/0 icmp

默认允许内部默认 10.128.0.0/9 tcp:0-65535,udp:0-65535,icmp

默认允许 rdp 默认 0.0.0.0/0 tcp:3389

默认允许 ssh 默认 0.0.0.0/0 tcp:22

套接字端口默认 0.0.0.0/0 tcp:11000

2) 在 VM 本身上,SocketListener 类 (C#) 给出错误:

Cannot assign requested address at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.Sockets.Socket.Bind(EndPoint localEP)

"IPEndpoint由 native 公网IP和11000端口组成

最佳答案

这是 GCE 的经典问题,您必须将服务器套接字绑定(bind)到 0.0.0.0,而不是外部 IP。我不知道这是否是设计使然。

外部IP是虚拟IP。基础架构知道如何将以 IP 为目标的流量定向到您的 VM,但它未绑定(bind)到 VM 的任何网络接口(interface)。如果您在 VM 中运行 sudo ifconfig,您只会在 eth0 上看到内部 IP。

关于c# - GCE 允许特定端口上的传入流量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39817971/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com