我在 ubuntu 20.04 上安装了我的 Oracle Cloud 实例,并设置了 apache2 服务器。它可以工作,curl localhost
但不能从我的实例公共 IP 工作。我的ufw状态:
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
Apache ALLOW Anywhere
80/tcp ALLOW Anywhere
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
22/tcp (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
如果我愿意sudo ufw disable
它仍然无法连接。
只有当我这样做时它才会连接:
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
但我显然不想那样做。
如果我向 iptables 添加一些规则:
sudo iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT
sudo netfilter-persistent save
它不会改变任何东西
编辑
sudo iptables -S OUTPUT
:
-P OUTPUT ACCEPT
-A OUTPUT -d 169.254.0.0/16 -j InstanceServices
-A OUTPUT -j ufw-before-logging-output
-A OUTPUT -j ufw-before-output
-A OUTPUT -j ufw-after-output
-A OUTPUT -j ufw-after-logging-output
-A OUTPUT -j ufw-reject-output
-A OUTPUT -j ufw-track-output
-A OUTPUT -p tcp -m tcp --dport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 443 -m conntrack --ctstate ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT
您似乎在使用原始 iptables 和 ufw(它是 iptables 的前端)之间混合和匹配
我认为首先要做的是删除所有 ufw 规则,并刷新 iptables。然后选择一个(原始 iptables 或前端)。然后就用那个。两者之间的混合和匹配将导致各种问题