Pode conectar-se do RPi ao laptop, mas não de outra maneira

2

Estou desenvolvendo um aplicativo servidor-cliente (baseado em linha de comando) em Java. Eu quero executá-lo no meu Raspberry Pi (RPi), mas acontece que eu não consigo acessar a minha parte do servidor do meu laptop. O problema é que ao executar a parte do servidor do meu aplicativo (soquetes, porta 4444), então eu posso conectar com o telnet do meu RPi sem problemas.

Quando eu executo a parte do servidor no meu RPi, nenhuma conexão pode ser estabelecida. Eu não estou familiarizado com o Linux, mas é algo que eu preciso fazer no iptables? Outras sugestões?

    
por Hannes 15.06.2013 / 16:03

1 resposta

2

Para começar, eu me certificaria de que o firewall (iptables) não seja um problema. Você pode confirmar com este comando no RPi:

$ iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination    

Se o firewall parecer OK (como acima), inicie seu aplicativo Java e confirme com este comando que ele está escutando na porta correta:

$ netstat -anpt
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:9090          0.0.0.0:*               LISTEN      970/xbmc.bin
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      970/xbmc.bin
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      936/sshd
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      1086/smbd
tcp        0      0 192.168.1.85:22         192.168.1.20:34971      ESTABLISHED 6762/0
tcp        0      0 :::53                   :::*                    LISTEN      829/connmand
tcp        0      0 :::22                   :::*                    LISTEN      936/sshd
tcp        0      0 :::445                  :::*                    LISTEN      1086/smbd

Este comando mostra em qual endereço IP e porta cada daemon está escutando. Por exemplo, a seguinte linha:

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      970/xbmc.bin

Mostra um processo (xbmc.bin), cujo ID do processo é 970, está escutando na porta 80, em todas as interfaces (0.0.0.0). O último bit "all interfaces" significa que, se houver várias interfaces de rede (ethernet, wifi, etc.), o daemon aceitará conexões de qualquer uma delas.

Se ele dissesse apenas um endereço IP como 192.168.1.10, o daemon só aceitaria conexões da interface que tinha esse endereço IP atribuído a ele.

Uma última coisa a notar, os tipos de conexões que o daemon acima aceitará são TCP. O outro tipo é o UDP, que este daemon não aceitaria.

    
por 15.06.2013 / 17:17