在 Oracle Cloud Infrastructure Compute 节点上打开端口 80
Opening port 80 on Oracle Cloud Infrastructure Compute node
这是一个基本问题,但我似乎无法通过仔细阅读 Oracle 云基础设施文档来解决这个问题。我创建了一个基于 Ubuntu 的计算节点,并将其附加到子网。在该子网中,我创建了一个有状态规则,源为 0.0.0.0/0,IP 协议:TCP,源端口范围:全部,目标端口范围:80.
服务器上没有配置防火墙。
尽管有此配置,我仍无法访问计算节点的 public IP。有什么想法吗?
如果您还没有创建 Internet 网关,可能就是这个原因。为了将 VCN 连接到 public 互联网,您需要有一个互联网网关和一个路由 table 来引导流量通过网关。
我明白了。连接问题是由于 Oracle 在所有 Oracle 提供的映像上默认使用 iptables。从字面上看,启动此实例时我做的第一件事就是检查 ufw
,假设存在一些防火墙限制。 ufw
状态是不活动的,所以我断定防火墙在本地是完全开放的。因为根据我的理解,ufw
和 iptables
都查看了 netfilter 内核防火墙,并且因为 ufw
是 Ubuntu 上事实上的(标准?)防火墙解决方案,我已经不知道为什么他们认为以这种方式使用 iptables 是有意义的。也许只是为了对所有图像进行标准化?
我通过 运行ning 了解了规则:
$ sudo iptables -L
然后我将规则保存到一个文件中,以便以后可以添加相关的规则:
$ sudo iptables-save > ~/iptables-rules
然后我 运行 这些规则通过允许所有流量通过来有效地禁用 iptables
:
$ iptables -P INPUT ACCEPT
$ iptables -P OUTPUT ACCEPT
$ iptables -P FORWARD ACCEPT
$ iptables -F
要一次性清除所有 iptables 规则,运行 这个命令:
$ iptables --flush
无论如何,希望这对其他人有所帮助,因为关于此事的文档不存在。
在 Oracle 云基础设施上部署计算实例时,您需要考虑以下几点:
- 创建互联网网关 (IGW)。
- 定义指向 IGW 的路由。
- 允许与 IGW 关联的安全列表中的端口 80。默认情况下,您只能访问 SSH 和 ICMP 3,4 类型。
- 允许在 Compute 的实例防火墙上进行连接(默认情况下启用)。
在您的示例中,如果您使用的是 OEL 形状:
$ sudo firewall-cmd --zone=public --permanent --add-port=80/tcp
$ sudo firewall-cmd --reload
我想如果您将下面的规则添加到您的 iptables
它应该可以工作;否则,您将扰乱与这些 Oracle 映像上预配置的 块卷附件 相关的其他规则。
iptables -I INPUT 5 -i ens3 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
记入 https://medium.com/@fathi.ria/oracle-database-cloud-open-ports-on-oci-1af24f4eb9f2
计算机实例(如Ubuntu) -> 虚拟云网络 -> 安全列表 -> 入口规则 -> 请添加规则以允许从任何地方访问端口 80
先决条件
- VM 实例应该已经创建并且 运行ning
- 访问 Public 和创建 VM 实例期间使用的私钥
使用 SSH 和运行以下命令登录虚拟机
$ sudo iptables --list --line-numbers
它将显示有关 Chain INPUT(策略接受)的详细信息。来自列表
需要删除 IPTABLES 中的 REJECT all 规则。
$ sudo iptables -D INPUT <Reject Line number>
e.g.
$ sudo iptables -D INPUT 6
检查REJECT规则是否被删除
sudo iptables --list --line-numbers
访问默认安全列表并编辑入口规则以允许端口
上的互联网流量
Edit the INGRES Rule Add CIDR 0.0.0.0/0 TCP Destination 9999
(N): Networking >Virtual Cloud Networks> Virtual Cloud Network Details>Security Lists> Security List Details
通过网络浏览器访问您的应用程序
Type http://<public IP address of the VM>:port
$ sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 80 -j ACCEPT
$ sudo netfilter-persistent save
$ sudo systemctl restart apache2
这是一个基本问题,但我似乎无法通过仔细阅读 Oracle 云基础设施文档来解决这个问题。我创建了一个基于 Ubuntu 的计算节点,并将其附加到子网。在该子网中,我创建了一个有状态规则,源为 0.0.0.0/0,IP 协议:TCP,源端口范围:全部,目标端口范围:80.
服务器上没有配置防火墙。
尽管有此配置,我仍无法访问计算节点的 public IP。有什么想法吗?
如果您还没有创建 Internet 网关,可能就是这个原因。为了将 VCN 连接到 public 互联网,您需要有一个互联网网关和一个路由 table 来引导流量通过网关。
我明白了。连接问题是由于 Oracle 在所有 Oracle 提供的映像上默认使用 iptables。从字面上看,启动此实例时我做的第一件事就是检查 ufw
,假设存在一些防火墙限制。 ufw
状态是不活动的,所以我断定防火墙在本地是完全开放的。因为根据我的理解,ufw
和 iptables
都查看了 netfilter 内核防火墙,并且因为 ufw
是 Ubuntu 上事实上的(标准?)防火墙解决方案,我已经不知道为什么他们认为以这种方式使用 iptables 是有意义的。也许只是为了对所有图像进行标准化?
我通过 运行ning 了解了规则:
$ sudo iptables -L
然后我将规则保存到一个文件中,以便以后可以添加相关的规则:
$ sudo iptables-save > ~/iptables-rules
然后我 运行 这些规则通过允许所有流量通过来有效地禁用 iptables
:
$ iptables -P INPUT ACCEPT
$ iptables -P OUTPUT ACCEPT
$ iptables -P FORWARD ACCEPT
$ iptables -F
要一次性清除所有 iptables 规则,运行 这个命令:
$ iptables --flush
无论如何,希望这对其他人有所帮助,因为关于此事的文档不存在。
在 Oracle 云基础设施上部署计算实例时,您需要考虑以下几点:
- 创建互联网网关 (IGW)。
- 定义指向 IGW 的路由。
- 允许与 IGW 关联的安全列表中的端口 80。默认情况下,您只能访问 SSH 和 ICMP 3,4 类型。
- 允许在 Compute 的实例防火墙上进行连接(默认情况下启用)。
在您的示例中,如果您使用的是 OEL 形状:
$ sudo firewall-cmd --zone=public --permanent --add-port=80/tcp
$ sudo firewall-cmd --reload
我想如果您将下面的规则添加到您的 iptables
它应该可以工作;否则,您将扰乱与这些 Oracle 映像上预配置的 块卷附件 相关的其他规则。
iptables -I INPUT 5 -i ens3 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
记入 https://medium.com/@fathi.ria/oracle-database-cloud-open-ports-on-oci-1af24f4eb9f2
计算机实例(如Ubuntu) -> 虚拟云网络 -> 安全列表 -> 入口规则 -> 请添加规则以允许从任何地方访问端口 80
先决条件
- VM 实例应该已经创建并且 运行ning
- 访问 Public 和创建 VM 实例期间使用的私钥
使用 SSH 和运行以下命令登录虚拟机
$ sudo iptables --list --line-numbers
它将显示有关 Chain INPUT(策略接受)的详细信息。来自列表 需要删除 IPTABLES 中的 REJECT all 规则。
$ sudo iptables -D INPUT <Reject Line number>
e.g.
$ sudo iptables -D INPUT 6
检查REJECT规则是否被删除
sudo iptables --list --line-numbers
访问默认安全列表并编辑入口规则以允许端口
上的互联网流量Edit the INGRES Rule Add CIDR 0.0.0.0/0 TCP Destination 9999 (N): Networking >Virtual Cloud Networks> Virtual Cloud Network Details>Security Lists> Security List Details
通过网络浏览器访问您的应用程序
Type http://<public IP address of the VM>:port
$ sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 80 -j ACCEPT
$ sudo netfilter-persistent save
$ sudo systemctl restart apache2