Etapas de solução de problemas do Linux e MacOS¶
Siga estas etapas para identificar e confirmar que você tem um proxy e para coletar os números de porta e host do proxy necessários para a solução de problemas.
Abra uma nova janela
Terminal
.Execute o seguinte comando para recuperar detalhes de configuração de proxy específicos para sua rede. Substitua
example.com
pelo nome do host real que você deseja testar.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')"
Exemplo de saída com uma configuração de proxy
Enabled: Yes Server: 192.168.21.12 Port: 3128 Authenticated Proxy Enabled: 1
Exemplo de saída sem uma configuração de proxy
Enabled: No Server: Port: 0 Authenticated Proxy Enabled: 0
Além disso, você pode testar variáveis de ambiente comuns usadas para configurações de proxy com o seguinte comando:
env | grep -i proxy
O comando retorna uma saída semelhante à seguinte:
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 encontrado: com base nessas configurações de variáveis de ambiente, você pode reunir o host e a porta do proxy necessários para testes posteriores.
Nenhum proxy encontrado: se a saída estiver vazia, provavelmente você não tem variáveis de ambiente definidas para uma configuração de proxy, o que precisa de mais testes.
O
NO_PROXY
define os hosts que um cliente pode usar para se conectar diretamente sem passar pelo servidor proxy.
Se você tiver um proxy¶
Você pode identificar o URL específico que está enfrentando problemas de conectividade. Embora seja benéfico testar todos os URLs listados na lista de permissões do Snowflake, talvez você queira se concentrar no URL que está causando problemas diretamente na sua configuração.
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"
Como alternativa, você pode passar as configurações de proxy diretamente para curl
(sem configuração as variáveis de ambiente primeiro), conforme mostrado:
Proxy não autenticado
curl --proxy “<PROTOCOL>://<HOST>:<PORT>” ..rest of the arguments..
Proxy autenticado
curl --proxy “<PROTOCOL>://<HOST>:<PORT>” --proxy-user user:pass ..rest of the arguments..
No Terminal
, execute os seguintes comandos. Atualize o comando com o URL que está causando problemas. Substitua o <URL>
pelo URL problemático. Além disso, substitua <PROXY_URL>
pelas informações do seu 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"
Esses comandos configuram seu ambiente para usar o proxy para solicitações HTTP e HTTPS e tentar se conectar ao URL do Snowflake especificado. Ele também exibe informações detalhadas sobre a tentativa de conexão, incluindo quaisquer conexões bem-sucedidas ou erros encontrados.
Exemplo de saída de conexão bem-sucedida:
➜ 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
Análise de saída:
“Conectado a…” indica uma conexão bem-sucedida com o proxy (<IP ADDRESS>) e o estabelecimento de um túnel HTTP para o Snowflake.
Códigos de status HTTP como
HTTP/1.1 200 Connection established
seguido porHTTP/1.1 302 Found
sugerem um login bem-sucedido na página.
Após concluir essas etapas, continue com as ações de acompanhamento.
Se você não tem um proxy¶
No Terminal
, execute o comando a seguir, certificando-se de atualizar o URL nos comandos para corresponder ao URL do Snowflake que você está testando.
curl -v https://<URL> 2>&1 | tee | grep "Trying\|Connected\|Establish\|CONNECT\|subject\|issuer\|HTTP\|curl"
Exemplo de saída de conexão bem-sucedida:
➜ 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
Esta saída demonstra uma conexão bem-sucedida, indicando que seu sistema pode alcançar e se comunicar com o servidor Snowflake.
Exemplo de falha de conexão:
➜ 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
Após concluir essas etapas, continue com as ações de acompanhamento.