始终免费:从 Ubuntu 20.04 LTS ARM 升级到 Ubuntu 22.04 LTS ARM 后无网络

始终免费:从 Ubuntu 20.04 LTS ARM 升级到 Ubuntu 22.04 LTS ARM 后无网络

场景如下:

我从 Ubuntu 20.04 LTS 升级到 Ubuntu 22.04 LTS。但是,升级后我失去了与主机的完全连接,只能通过 Cloud Shell 控制台访问它。

观察到的行为:

  • 无法通过公共 IP 访问 SSH。仅通过串行控制台使用 Cloud Shell。测试了密钥交换 RSA 是否是问题,因为现在推荐使用 ECDSA,但这似乎不是问题。

  • 执行时无法到达任何来源sudo apt update

  • nslookup google.es不会给出任何输出(无法到达)

  • ip addrIP 接口已启动:

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP group default qlen 1000
        link/ether 02:00:17:00:95:86 brd ff:ff:ff:ff:ff:ff
        inet 10.0.0.62/24 metric 100 brd 10.0.0.255 scope global dynamic ens3
           valid_lft 62767sec preferred_lft 62767sec
        inet6 fe80::17ff:fe00:9586/64 scope link 
           valid_lft forever preferred_lft forever
    
  • ip route输出:

    default via 10.0.0.1 dev ens3 proto dhcp src 10.0.0.62 metric 100 
    10.0.0.0/24 dev ens3 proto kernel scope link src 10.0.0.62 metric 100 
    10.0.0.1 dev ens3 proto dhcp scope link src 10.0.0.62 metric 100 
    169.254.169.254 via 10.0.0.1 dev ens3 proto dhcp src 10.0.0.62 metric 100
    
  • iptables -L输出:

    Chain INPUT (policy DROP)
    target     prot opt source               destination         
    
    Chain FORWARD (policy DROP)
    target     prot opt source               destination         
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination
    
  • out 的输出iptables-save -c如下:

    :INPUT DROP [71948:4580785] 
    :FORWARD DROP [0:0]  
    :OUTPUT ACCEPT[59782:3909997] COMMIT
    # Completed on Tue Aug 16 08:10:43 2022
    
  • Netplan 只有 1 个名为的配置文件,50-cloud-init.yaml其中包含以下内容:

      ethernets:
          ens3:
              dhcp4: true
              match:
                  macaddress: 02:00:17:00:95:86
              set-name: ens3
      version: 2
    
  • /etc/resolv.conf输出:

    nameserver 127.0.0.53 
    options edns0 trust-ad
    search vcn09040100.oraclevcn.com
    
  • 我不确定这是否是 Oracle 云配置问题,尽管我没有接触过任何东西,而且它之前可以运行并托管网站。 VCNvcn-20210904-0043分配有子网 10.0.0.0/24 和以下入口安全列表

    Oracle 云安全列表

我的想法已经用完了,非常感谢任何帮助。我有其他实例在共享相同 VCN 的同一租户上运行,并且没有任何问题......所以我倾向于认为这是操作系统问题。

答案1

你有iptables阻止网络操作的规则。尽管没有明显的规则,但仍然应用了一项规则:过滤器/输入的默认 DROP 策略。这意味着系统接收到的任何流量在应用程序有机会使用它之前都会被丢弃。 DNS解析失败。 TCP 连接(显然是直接连接到 IP 地址,因为 DNS 失败)保持SYN-SENT状态。 ETC。

我不知道在刷新之前系统中仍然存在哪些规则,因为问题中没有写任何有关此的内容。将现有规则删除到规则集中是一项危险的操作iptables:它不会将默认策略恢复为ACCEPT.因此,要手动盲目地删除所有过滤规则,应该这样做:

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables -X

请注意,还有其他可能的表正在使用中(natmangleraw),但 OP 的iptables-save -c命令并未显示它们正在使用中。

上面的第一个命令将恢复过滤器/输入策略,并且ACCEPTDROP在删除规则和(现在为空)用户链之后。

笔记:nftables不会遇到这个缺陷,并且nft flush ruleset可能会在一个命令中对所有表执行上述所有操作,假设iptables(as iptables-nft)现在使用nftablesAPI。


还要做的事情:找到系统中配置的哪一部分设置了防火墙规则并修复它。

这可能是防火墙包,例如firewalldufw,或手动规则。您必须调查应该在那里进行哪些纠正。

对于配置文件中的直接手动规则,此命令可能有助于查找此类候选文件:

grep -r 'INPUT DROP' /etc

同时系统没有防火墙规则,这不是一个好主意。但它仍然受到云环境提供的防火墙的保护。

相关内容