Warum erhalte ich Fehler, wenn ich yum auf meiner EC2-Instanz mit Amazon Linux 1 oder Amazon Linux 2 verwende?
Warum erhalte ich Fehler, wenn ich yum auf meiner Amazon Elastic Compute Cloud (Amazon EC2) Instanz mit Amazon Linux 1 oder Amazon Linux 2 verwende?
Kurzbeschreibung
Verwenden Sie die Ausgabemeldungen des yum-Befehls, um festzustellen, welcher Fehler aufgetreten ist. Im Folgenden finden Sie häufig auftretende Fehlermeldungen:
- **Die Verbindung hat ein Zeitlimit von XXX Millisekunden überschritten **
- **HTTP-Fehler 403 — Verboten **
- **Host: xxxxx konnte nicht aufgelöst werden. $ awsregion. $ aws-Domäne **
- **HTTP-Fehler 407 — Proxyauthentifizierung erforderlich **
- **Timeout bei der Auflösung nach 5000 Millisekunden **
Auflösung
Zeitüberschreitung der Verbindung XXXX Millisekunden
-
Überprüfen Sie, ob die Sicherheitsgruppe, die Ihrer EC2-Instanz zugeordnet ist, ausgehenden http/https-Verkehr zulässt.
-
Überprüfen Sie, ob die Netzwerk-ACLs, die mit dem Subnetz Ihrer EC2-Instanz verbunden sind, ausgehenden http/https-Verkehr über Ihre NACLs zulassen.
Das folgende Beispiel zeigt eine benutzerdefinierte Netzwerk-ACL, die ausgehenden Datenverkehr über Port 80 und 443 zulässt:
Inbound rules Rule# Type Protocol Port Range Source Allow/Deny 100 Custom TCP Rule TCP (6) 1024-65535 0.0.0.0/0 ALLOW 101 Custom TCP Rule TCP (6) 1024-65535 ::/0 ALLOW * ALL Traffic ALL ALL ::/0 DENY * ALL Traffic ALL ALL 0.0.0.0/0 DENY
Outbound rules Rule # Type Protocol Port Range Source Allow/Deny 100 HTTP (80) TCP (6) 80 0.0.0.0/0 ALLOW 101 HTTPS (443) TCP (6) 443 0.0.0.0/0 ALLOW 102 HTTP (80) TCP (6) 80 ::/0 ALLOW 103 HTTPS (443) TCP (6) 443 ::/0 ALLOW * ALL Traffic ALL ALL ::/0 DENY * ALL Traffic ALL ALL 0.0.0.0/0 DENY
- Stellen Sie sicher, dass Ihre EC2-Instanz Zugriff auf Amazon Linux-Repositories hat, indem Sie eine der folgenden Optionen verwenden
- Ihre Instance befindet sich in einem öffentlichen Subnetz mit einem Internet-Gateway. Weitere Informationen finden Sie unter Internetzugriff aktivieren.
- Ihre Instance befindet sich in einem privaten Subnetz mit einem NAT-Gateway. Weitere Informationen finden Sie unter NAT-Gateways.
- Ihre Instance befindet sich in einem privaten Subnetz mit einer NAT-Instance. Weitere Informationen finden Sie unter NAT-Instances.
- Ihre Instance befindet sich in einem öffentlichen oder privaten Subnetz mit einem Amazon Simple Storage Service (Amazon S3) VPC-Endpunkt. Weitere Informationen finden Sie unter Wie kann ich Yum aktualisieren oder Pakete ohne Internetzugang auf EC2-Instances installieren, auf denen Amazon Linux 1 oder Amazon Linux 2 ausgeführt wird?
- Ihre Instance befindet sich in einem privaten Subnetz mit einem Proxy. Um yum für die Verwendung eines Proxys zu konfigurieren, modifizieren Sie die Datei ** ** /etc/yum.conf mit den folgenden Parametern. Ersetzen Sie im folgenden Beispiel den ** Proxy-Port**, den Proxy-Benutzernamen und das ** Proxy-Passwort durch die richtigen ** Werte für Ihren ** Proxy**.
proxy=http://proxy-server-IP-address:proxy_port proxy_username="proxy-user-name" proxy_password="proxy-password"
Weitere Informationen finden Sie unter Yum mit einem Proxyserver verwenden auf der Website fedoraproject.org.
- Nachdem Sie Ihre Instanz mit einer der oben genannten Optionen konfiguriert haben, führen Sie den folgenden curl-Befehl aus, um zu bestätigen, dass die Instanz auf das Repository zugreifen kann. Ersetzen Sie im folgenden Befehl ** us-east-1 ** durch die Region Ihrer Instance.
Amazon Linux 1
curl -I repo.us-east-1.amazonaws.com
Amazon Linux 2
curl -I amazonlinux.us-east-1.amazonaws.com
**Hinweis: ** curl ist auf allen AMIs vorinstalliert, aber auf die Amazon Linux-Repositorys kann ohne Anmeldeinformationen nicht zugegriffen werden. curl kann die Anmeldeinformationen eines Yum-Repositorys nicht annehmen. Sie erhalten eine Fehlermeldung, die der folgenden ähnelt: Zugriff verweigert. Der Befehl curl wird verwendet, um zu testen, ob das Timeout-Problem weiterhin auftritt. Die Fehlermeldung zeigt, dass das Netzwerk erreichbar ist und das Timeout-Problem nicht mehr auftritt:
$ curl -I amazonlinux.us-east-1.amazonaws.com HTTP/1.1 403 Forbidden x-amz-bucket-region: us-east-1 x-amz-request-id: xxxxxxxx x-amz-id-2: xxxxxxxxxxxxx= Content-Type: application/xml Date: Thu, 17 Nov 2022 16:59:59 GMT Server: AmazonS3
Führen Sie den folgenden Befehl aus, um Software wie Telnet zu installieren:
sudo yum install telnet
HTTP-Fehler 403 — Verboten
- Wenn Sie einen Amazon S3-VPC-Endpunkt in der VPC Ihrer Instance verwenden, stellen Sie sicher, dass die angehängte Richtlinie den ** ** s3:getObject-API-Aufruf für die folgenden Ressourcen zulässt:
Amazon Linux 1
**„arn:aws:s3: ::packages.region.amazonaws.com/\ *“ **
**„arn:aws:s3: ::repo.region.amazonaws.com/\ *“ **
Amazon Linux 2
**„arn:aws:s3: ::amazonlinux.region.amazonaws.com/\ *“ **
**„arn:aws:s3: ::amazonlinux-2-repos-region/\ *“ **
**Hinweis:**Ersetzen Sie die Region in den vorherigen Beispielen durch die Region Ihrer Instanz.
Weitere Informationen finden Sie unter Endpunktrichtlinien für Amazon S3.
- Wenn Sie einen Proxy für den Zugriff auf Amazon Linux-Repositorys verwenden, stellen Sie sicher, dass die Subdomains ** .amazonaws.com in Ihrer Proxykonfiguration auf der Zulassungsliste ** stehen.
Host: xxxxxxxx konnte nicht aufgelöst werden. $ awsregion. $ aws-Domäne
- Führen Sie die folgenden Befehle aus, um zu überprüfen, ob das Verzeichnis ** /etc/yum/vars die benutzerdefinierten Yum-Variablen definiert**. Das Verzeichnis muss die Variablen ** awsdomain ** und ** awsregion enthalten. **. Ersetzen Sie im folgenden Beispielbefehl ** us-east-1 ** durch die Region Ihrer Instance.
$ cat /etc/yum/vars/awsregion us-east-1 $ cat /etc/yum/vars/awsdomain amazonaws.com
- Überprüfen Sie die DNS-Auflösung Ihrer Instance. Die Instance muss den Domainnamen der Amazon Linux-Repositorys ermitteln:
$ dig amazonlinux.us-east-1.amazonaws.com $ dig repo.us-east-1.amazonaws.com
Abfragen an den von Amazon bereitgestellten DNS-Server an der 169.254.169.253 IPv4-Adresse und der fd00:ec2: :253 IPv6-Adresse werden erfolgreich sein. Abfragen an den von Amazon bereitgestellten DNS-Server an der reservierten IP-Adresse an der Basis des VPC-IPv4-Netzwerkbereichs plus zwei werden ebenfalls erfolgreich sein. Auf die IPv6-Adresse kann nur auf EC2-Instances zugegriffen werden, die auf dem Nitro-System basieren.
HTTP-Fehler 407 — Proxyauthentifizierung erforderlich
Dies passiert, wenn Ihr Proxy die Anfrage nicht abschließen kann, weil yum nicht über die richtigen Authentifizierungsdaten für Ihren Proxyserver verfügt. Um yum für die Verwendung eines Proxys zu konfigurieren, modifizieren Sie die Datei ** ** /etc/yum.conf mit den folgenden Parametern:
proxy=http://proxy-server-IP-address:proxy_port proxy_username=proxy-user-name proxy_password=proxy-password
Timeout bei der Auflösung nach 5000 Millisekunden
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die ** Datei ** /etc/resolv.conf die richtige IP für Ihren DNS-Server hat:
cat /etc/resolv.conf nameserver YourDNSIP
Sie können den Timeout-Zeitraum von 5000 Millisekunden ändern, indem Sie den ** ** Timeout-Wert in der Yum-Konfigurationsdatei ändern. .
Führen Sie den folgenden Befehl aus, um die Abfragezeit mit dig zu überprüfen:
$ dig repo.us-east-1.amazonaws.com | grep time
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren