Étapes de dépannage MacOS et Linux

Suivez ces étapes pour identifier et confirmer que vous disposez d’un proxy et pour collecter les numéros d’hôte et de port proxy dont vous avez besoin pour un dépannage ultérieur.

  1. Ouvrez une nouvelle fenêtre Terminal.

  2. Exécutez la commande suivante pour récupérer les détails de configuration du proxy spécifiques à votre réseau. Remplacez example.com par le nom d’hôte réel que vous souhaitez tester.

    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

    Exemple de sortie avec une configuration de proxy

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

    Exemple de sortie sans configuration de proxy

    Enabled: No
    Server:
    Port: 0
    Authenticated Proxy Enabled: 0
    
  3. De plus, vous pouvez tester les variables d’environnement courantes utilisées pour les paramètres de proxy avec la commande suivante :

    env | grep -i proxy
    
    Copy

    La commande renvoie une sortie similaire à la suivante :

    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 trouvé : en fonction de ces paramètres de variables d’environnement, vous pouvez collecter l’hôte proxy et le port dont vous aurez besoin pour des tests supplémentaires.

    • Aucun proxy trouvé : si la sortie est vide, vous n’avez probablement aucune variable d’environnement définie pour une configuration de proxy, ce qui nécessite des tests supplémentaires.

    • NO_PROXY définit les hôtes qu’un client peut utiliser pour se connecter directement sans passer par le serveur proxy.

Si vous avez un proxy

Vous pouvez identifier l’URL spécifique qui rencontre des problèmes de connectivité. Bien qu’il soit bénéfique de tester toutes les URLs répertoriées dans la liste d’autorisation de Snowflake, vous souhaiterez peut-être vous concentrer sur l’URL qui cause directement des problèmes dans votre configuration.

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

Sinon, vous pouvez transmettre les paramètres proxy directement dans curl (sans définir au préalable les variables d’environnement), comme indiqué :

  • Proxy non authentifié

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

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

Exécutez les commandes suivantes dans Terminal : Mettez à jour la commande avec l’URL qui cause des problèmes. Remplacez <URL> avec l’URL problématique. De plus, remplacez <PROXY_URL> avec vos informations de proxy.

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

Ces commandes configurent votre environnement pour utiliser le proxy pour les requêtes HTTP et HTTPS et tentent de se connecter à l’URL Snowflake spécifiée. Cela génère également des informations détaillées sur la tentative de connexion, y compris les connexions réussies ou les erreurs rencontrées.

Exemple de sortie de connexion réussie :

➜  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

Analyse de la sortie :

  • « Connecté à… » indique une connexion réussie au proxy (<IP ADDRESS>) et la création d’un tunnel HTTP vers Snowflake.

  • Les codes de statut HTTP comme HTTP/1.1 200 Connection established suivi de HTTP/1.1 302 Found suggère une connexion réussie à la page.

Après avoir terminé ces étapes, continuez avec les actions de suivi.

Si vous n’avez pas de proxy

Dans Terminal, exécutez la commande suivante, en veillant à mettre à jour l’URL dans les commandes pour faire correspondre l’URL Snowflake que vous testez.

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

Exemple de sortie de connexion réussie :

➜  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

Cette sortie démontre une connexion réussie, indiquant que votre système peut atteindre et communiquer avec le serveur Snowflake.

Exemple d’échec de connexion :

➜  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

Après avoir terminé ces étapes, continuez avec les actions de suivi.