【问题标题】:GCE allow incoming traffic on specific portsGCE 允许特定端口上的传入流量
【发布时间】:2017-02-10 14:14:20
【问题描述】:

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

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

任何帮助或提示将不胜感激,谢谢。

编辑: 1) 防火墙设置:

命名网络 SRC_RANGES 规则 SRC_TAGS TARGET_TAGS

default-allow-http 默认 0.0.0.0/0 tcp:80 http-server

default-allow-https 默认 0.0.0.0/0 tcp:443 https-server

default-allow-icmp 默认 0.0.0.0/0 icmp

default-allow-internal 默认 10.128.0.0/9 tcp:0-65535,udp:0-65535,icmp

default-allow-rdp 默认 0.0.0.0/0 tcp:3389

default-allow-ssh 默认 0.0.0.0/0 tcp:22

sockets-port 默认 0.0.0.0/0 tcp:11000

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

无法分配请求的地址 在 System.Net.Sockets.Socket.DoBind(端点 endPointSnapshot,SocketAddress socketAddress) 在 System.Net.Sockets.Socket.Bind(EndPoint localEP)

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

【问题讨论】:

  • 1) 在此处粘贴您的防火墙设置; 2)你得到什么错误代码? 3)尝试通过内部IP从同一网络中的另一个VM访问它,以确保服务已启动。
  • @Dagang 编辑了我的问题,但目前我无法从另一个虚拟机访问。

标签: c# google-compute-engine firewall .net-core


【解决方案1】:

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

外部 IP 是虚拟 IP。基础架构知道如何将针对 IP 的流量引导到您的 VM,但它不绑定到 VM 的任何网络接口。如果你在VM中运行sudo ifconfig,你只会看到eth0上的内部IP。

【讨论】:

    猜你喜欢
    • 2013-06-12
    • 2017-09-23
    • 2012-03-06
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    • 2020-11-04
    • 2017-12-25
    • 2018-05-04
    相关资源
    最近更新 更多