Não é possível encontrar onde o endereço IP externo está sendo bloqueado (nginx, nodejs, linksys router)

0

Então, embora não seja o ideal, atualmente tenho um servidor web rodando o Ubuntu 14.04 atrás de um roteador Linksys. No roteador, redirecionei as portas 22, 80 e 435 para SSH, HTTP e HTTPS, respectivamente.

Agora, executando um proxy reverso nginx muito simples para rotear a porta 80 para um script de nó muito simples na porta local 3001, consigo abrir um navegador da web de qualquer lugar na rede local e acessar o ip público do servidor porta 80 e obter a resposta correta.

Assim que eu tento conectar ao mesmo ip público no sinal do meu iPhone (método mais fácil para eu usar um ip externo), recebo um erro dizendo que a "conexão de rede foi perdida". Eu tentei desativar o ufw, mas este é o meu status atual do ufw:

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
80                         ALLOW       Anywhere
Nginx Full                 ALLOW       Anywhere
22 (v6)                    ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
80 (v6)                    ALLOW       Anywhere (v6)
Nginx Full (v6)            ALLOW       Anywhere (v6)

Recentemente, ativei o perfil Nginx Full na esperança de que isso possa ajudar, mas não ajudou.

A execução de tcpdump -i em1 port 80 -s 0 -w capture.cap , a tentativa de conexão no meu iphone e a execução do tcpick -C -yP -r capture.cap fornecem os seguintes resultados:

Timeout for connections is 600
tcpick: reading from capture.cap
1      SYN-SENT       IPHONE_IP:12649 > LOCAL_IP:http
1      SYN-RECEIVED   IPHONE_IP:12649 > LOCAL_IP:http
2      SYN-SENT       IPHONE_IP:12649 > LOCAL_IP:http
3      SYN-SENT       IPHONE_IP:12649 > LOCAL_IP:http
4      SYN-SENT       IPHONE_IP:21998 > LOCAL_IP:http
4      SYN-RECEIVED   IPHONE_IP:21998 > LOCAL_IP:http
5      SYN-SENT       IPHONE_IP:21998 > LOCAL_IP:http
6      SYN-SENT       IPHONE_IP:21998 > LOCAL_IP:http
7      SYN-SENT       IPHONE_IP:9256 > LOCAL_IP:http
7      SYN-RECEIVED   IPHONE_IP:9256 > LOCAL_IP:http
8      SYN-SENT       IPHONE_IP:9256 > LOCAL_IP:http
9      SYN-SENT       IPHONE_IP:9256 > LOCAL_IP:http
tcpick: done reading from capture.cap

e aqui está minha configuração básica do nginx:

server {
    listen 80;

    server_name mgmcdermott.com;

    location / {
        proxy_pass http://127.0.0.1:3001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_read_timeout 180s;
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Meu palpite está me dizendo isso porque eu posso acessar o site localmente, então deve ser meu roteador bloqueando solicitações externas, no entanto, eu sou capaz de SSH remotamente através do roteador e tentei desativar todos os firewalls sem sorte.

Eu tenho conhecimento em programação e conhecimento básico em configurações do lado do servidor, no entanto eu sou novo em fazer uma nova instalação com Ubuntu e nginx atrás de um roteador.

Estou disposto a limpar completamente o Ubuntu e reinstalá-lo se necessário

Concluirei mencionando que sou um pouco inexperiente quando se trata de postar perguntas sobre o StackExchange. Eu já li milhares deles, mas raramente encontrei algo para postar que ainda não está aqui, então, por favor, descubra comigo se eu perdi algo.

Obrigado!

Editar:

Usando o comando traceroute, ele mostra um tempo limite de rede com um! X significando "comunicação administrativamente proibida":

1-4. Pings across work network
5. * * *
6. * * *
7. * * *
...
19. * * * LAST_PINGED_IP_AT_STEP_4 1.491 ms !X
...

Eu vejo que o! X aparece, o que significa comunicação administrativamente proibida , não tenho certeza se isso ajuda.

Ainda mais informações ...

$ sudo netstat -tclp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 localhost:mysql         *:*                     LISTEN      1339/mysqld
tcp        0      0 *:http                  *:*                     LISTEN      1301/nginx
tcp        0      0 *:ssh                   *:*                     LISTEN      1262/sshd
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      1262/sshd
tcp6       0      0 [::]:3001               [::]:*                  LISTEN      1395/node
    
por mgmcdermott 09.06.2015 / 08:44

1 resposta

0

Depois de mais algumas depurações, descobri que uma solicitação para a porta 80 estava sendo interrompida por:

ool-4353e70a.dyn.optonline.net (67.83.231.10)

Esse ip resolve para o meu provedor. Acontece que o Optimum bloqueia a porta 80, a menos que você atualize seu serviço. * facepalm *

% bl0ck_qu0te%     
por mgmcdermott 10.06.2015 / 04:52