【问题标题】:Opening port 3000 on Oracle cloud compute instance在 Oracle 云计算实例上打开 3000 端口
【发布时间】:2021-04-30 23:49:33
【问题描述】:

我正在尝试在 Oracle 云计算实例上打开端口 3000。我一步步跟着Nodejs tutorial,但端口仍然没有打开。

我创建了另一个实例并添加了一个新的安全规则以允许所有端口上的所有流量,如下图所示

我能够在机器上执行 ssh 并使用端口开放工具进行检查,它发现端口 22 已打开,但端口 3000 已关闭。主机上的防火墙规则允许端口 3000 如下所示

$ sudo firewall-cmd --list-all
public
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: cockpit dhcpv6-client ssh
  ports: 3000/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

更新1: 我必须重新启动实例才能将接口列为防火墙 list-all 命令的一部分。

$ sudo firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens3
  sources:
  services: cockpit dhcpv6-client ssh
  ports: 3000/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

我的发行版是 CentOS 8,所以不确定是否是导致问题的原因。 更新2: 我能够让它与 Oracle Linux 7.9 映像一起使用,所以看起来普通的旧 CentOS8 映像与防火墙规则在 Oracle 云上的工作方式存在一些问题。

【问题讨论】:

    标签: node.js oracle-cloud-infrastructure


    【解决方案1】:

    奇怪的是防火墙没有接口。我的计算实例上的一个类似命令显示了一个接口“ens3”并且该公共是“(活动)”:

    $ sudo firewall-cmd --list-all
    public (active)
      target: default
      icmp-block-inversion: no
      interfaces: ens3
      sources: 
      services: ssh
      ports: 3001/tcp
      protocols: 
      masquerade: no
      forward-ports: 
      source-ports: 
      icmp-blocks: 
      rich rules: 
    

    添加端口后是否错过了重新加载防火墙?

    sudo firewall-cmd --reload

    【讨论】:

    • 我已经重新启动了我的实例,现在它显示 ens3 作为开放端口 3000 的接口。实例似乎有些问题,因为我多次尝试重新加载防火墙,但它没有用。我的发行版是 CentOS 8,不确定这是否会导致问题。
    【解决方案2】:

    除了禁用防火墙和在 Oracle Cloud Portal 中添加入口规则之外,我还需要通过 iptables 打开端口:

    sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 3000 -j ACCEPT
    

    【讨论】:

      猜你喜欢
      • 2021-06-30
      • 2018-12-04
      • 1970-01-01
      • 1970-01-01
      • 2015-03-30
      • 2011-04-26
      • 2013-06-14
      • 2013-12-28
      • 2017-08-19
      相关资源
      最近更新 更多