Schritte zur Problembehandlung für MacOS und Linux

Führen Sie die folgenden Schritte aus, um zu erkennen und zu bestätigen, dass Sie einen Proxy haben und um die Proxy-Host- und Portnummern zu ermitteln, die Sie für die weitere Fehlersuche benötigen.

  1. Öffnen Sie ein neues Terminal-Fenster.

  2. Führen Sie den folgenden Befehl aus, um die Details der Proxykonfiguration für Ihr Netzwerk abzurufen. Ersetzen Sie example.com durch den tatsächlichen Hostnamen, den Sie testen möchten.

    networksetup -getsecurewebproxy "$(networksetup -listnetworkserviceorder | grep $(route get example.com | grep interface | awk -F: '{print $2}') | awk -FPort: '{print $2}' | awk -F, '{print $1}' | sed 's/^ //g')"
    
    Copy

    Beispiel für die Ausgabe mit einer Proxykonfiguration

    Enabled: Yes
    Server: 192.168.21.12
    Port: 3128
    Authenticated Proxy Enabled: 1
    

    Beispiel der Ausgabe ohne Proxykonfiguration

    Enabled: No
    Server:
    Port: 0
    Authenticated Proxy Enabled: 0
    
  3. Darüber hinaus können Sie gängige Umgebungsvariablen, die für Proxyeinstellungen verwendet werden, mit dem folgenden Befehl testen:

    env | grep -i proxy
    
    Copy

    Der Befehl gibt eine Ausgabe ähnlich der folgenden zurück:

    http_proxy=http://my.pro.xy:123
    HTTP_PROXY=http://my.pro.xy:123
    HTTPS_PROXY=http://my.pro.xy:123
    https_proxy=http://my.pro.xy:123
    NO_PROXY=localhost,.company.com,.amazonaws.com
    
    • Proxy gefunden: Anhand dieser Einstellungen der Umgebungsvariablen können Sie den Proxy-Host und den Port ermitteln, den Sie für weitere Tests benötigen.

    • Kein Proxy gefunden: Wenn die Ausgabe leer ist, haben Sie wahrscheinlich keine Umgebungsvariablen für eine Proxykonfiguration festgelegt, was weitere Tests erfordert.

    • NO_PROXY definiert die Hosts, die ein Client verwenden kann, um eine direkte Verbindung herzustellen, ohne den Proxyserver zu passieren.

Wenn Sie einen Proxy haben:

Sie können die spezifische URL identifizieren, bei der es Probleme mit der Konnektivität gibt. Auch wenn es von Vorteil ist, alle in der Zulassungsliste von Snowflake aufgeführten URLs zu testen, sollten Sie sich auf die URL konzentrieren, die in Ihrem Setup direkt Probleme verursacht.

export http_proxy=http://<PROXY_HOST:PROXY_PORT> && export HTTP_PROXY=$http_proxy && export HTTPS_PROXY=$http_proxy && export https_proxy=$http_proxy

curl -v https://URL 2>&1 | tee | grep "Trying\|Connected\|Establish\|CONNECT\|subject\|issuer\|HTTP\|curl"
Copy

Alternativ können Sie die Proxyeinstellungen auch direkt an curl übergeben (ohne vorher die Umgebungsvariablen zu setzen), wie gezeigt:

  • Nicht authentifizierter Proxy

    curl --proxy “<PROTOCOL>://<HOST>:<PORT>” ..rest of the arguments..
    
    Copy
  • Authentifizierter Proxy

    curl --proxy “<PROTOCOL>://<HOST>:<PORT>” --proxy-user user:pass ..rest of the arguments..
    
    Copy

Führen Sie im Terminal die folgenden Befehle aus. Aktualisieren Sie den Befehl mit der URL, die Probleme verursacht. Ersetzen Sie <URL> durch die problematische URL. Ersetzen Sie außerdem <PROXY_URL> durch Ihre Proxyinformationen.

export http_proxy=http://<PROXY_URL> && export HTTP_PROXY=$http_proxy && export HTTPS_PROXY=$http_proxy && export https_proxy=$http_proxy

curl -v https://<URL> 2>&1 | tee | grep "Trying\|Connected\|Establish\|CONNECT\|subject\|issuer\|HTTP\|curl"
Copy

Mit diesen Befehlen wird Ihre Umgebung so konfiguriert, dass der Proxy für HTTP- und HTTPS- Anfragen verwendet wird und versucht wird, eine Verbindung mit der angegebenen Snowflake-URL herzustellen. Es gibt auch detaillierte Informationen über den Verbindungsversuch aus, einschließlich erfolgreicher Verbindungen oder aufgetretener Fehler.

Ausgabe des Beispiels für eine erfolgreiche Verbindung:

➜  curl -v https://<account>.snowflakecomputing.com 2>&1 | tee | grep "Trying\|Connected\|Establish\|CONNECT\|subject\|issuer\|HTTP\|curl"
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying <IP ADDRESS>...
* Connected to <IP ADDRESS> (<IP ADDRESS>) port <PORT> (#0)
* Establish HTTP proxy tunnel to <account>.snowflakecomputing.com:443
> CONNECT <account>.snowflakecomputing.com:443 HTTP/1.1
> User-Agent: curl/7.79.1
< HTTP/1.1 200 Connection established
* Proxy replied 200 to CONNECT request
* CONNECT phase completed!
*  subject: CN=*.us-east-1.snowflakecomputing.com
*  subjectAltName: host "<account>.snowflakecomputing.com" matched cert's "*.us-east-1.snowflakecomputing.com"
*  issuer: C=US; O=Amazon; OU=Server CA 1B; CN=Amazon
> GET / HTTP/1.1
> User-Agent: curl/7.79.1
< HTTP/1.1 302 Found

Ausgabenanalyse:

  • „Verbunden mit …“ zeigt eine erfolgreiche Verbindung zum Proxy (<IP ADDRESS>) und den Aufbau eines HTTP-Tunnels zu Snowflake an.

  • HTTP-Statuscodes wie HTTP/1.1 200 Connection established gefolgt von HTTP/1.1 302 Found deuten auf eine erfolgreiche Anmeldung hin.

Nachdem Sie diese Schritte abgeschlossen haben, fahren Sie mit den Nachfassaktionen fort.

Wenn Sie keinen Proxy haben:

Führen Sie in Terminal den folgenden Befehl aus. Achten Sie darauf, dass die URL in den Befehlen mit der Snowflake-URL übereinstimmt, die Sie testen.

curl -v https://<URL> 2>&1 | tee | grep "Trying\|Connected\|Establish\|CONNECT\|subject\|issuer\|HTTP\|curl"
Copy

Ausgabe des Beispiels für eine erfolgreiche Verbindung:

➜  curl -v https://<account>.snowflakecomputing.com 2>&1 | tee | grep "Trying\|Connected\|Establish\|CONNECT\|subject\|issuer\|HTTP\|curl"

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 52.22.29.117:443...
* Connected to <account>.snowflakecomputing.com (52.22.29.117) port 443 (#0)
*  subject: CN=*.us-east-1.snowflakecomputing.com
*  subjectAltName: host "<account>.snowflakecomputing.com" matched cert's "*.us-east-1.snowflakecomputing.com"
*  issuer: C=US; O=Amazon; OU=Server CA 1B; CN=Amazon
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0> GET / HTTP/1.1
< HTTP/1.1 302 Found

Diese Ausgabe zeigt eine erfolgreiche Verbindung an, d. h. dass Ihr System den Snowflake-Server erreichen und mit ihm kommunizieren kann.

Beispiel für den Ausfall einer Verbindung:

➜  curl -v https://<account>.snowflakecomputing.com 2>&1 | tee | grep "Trying\|Connected\|Establish\|CONNECT\|subject\|issuer\|HTTP\|curl"
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 52.22.29.117:443...
*   Trying 3.222.247.13:443...
*   Trying 54.81.51.170:443...
curl: (7) Failed to connect to <account>.us-east-1.snowflakecomputing.com port 443 after 3139 ms: Connection refused

Nachdem Sie diese Schritte abgeschlossen haben, fahren Sie mit den Nachfassaktionen fort.