Eu sou um novato em redes.
Eu tenho um Rpi-A conectado à internet via surf-stick 3G e um Rpi-B conectado à internet através de um hotspot WiFi.
Percebi que o Rpi-A possui um endereço IP público e o Rpi-B possui um IP local/privado. Ambos os Raspberry Pi estão em redes diferentes.
Quero enviar dados binários de Rpi-A para Rpi-B. Alguma sugestão sobre como isso pode ser alcançado?
atualização: usei o código abaixo para testar a conexão MQTT. substituindo XX.XX.XX.XX pelo IP público do Raspberry Pi. Ainda assim acabo recebendo este erro ---> erro: [Errno 10060] Uma tentativa de conexão falhou porque a parte conectada não respondeu corretamente após um período de tempo ou a conexão estabelecida falhou porque o host conectado não respondeu. qual pode ser o possível motivo desse erro? Está faltando alguma coisa no meu código
import paho.mqtt.client as mqtt
import time
def on_connect(client, userdata, flags, rc):
print("Connected with result code " + str(rc))
client = mqtt.Client()
client.on_connect = on_connect
client.connect("xx.xx.xxx.x", 1883, 60)
client.loop_start()
while True:
time.sleep(2)
client.publish('Due_0.72/cmd/in','hello')
print "publish.."
Responder1
Se você estiver executando o RPi B em um ponto de acesso que não é controlado por você. Você criaria uma conexão reversa de Pi B para Pi A (algo como ncat deve funcionar) e enviaria dados dessa maneira ou usaria algo como um servidor OpenVPN na nuvem e rotearia entre os 2 Pi.
Se você tiver acesso à porta de configuração do ponto de acesso Wi-Fi, encaminhe algo como ssh para Pi B. (Porta geral 22/tcp se estiver usando a configuração padrão)
Responder2
Na rede do RPi-B deve haver um roteador que use NAT para permitir que o RPI-B se conecte à Internet através de um endereço público.
Assim:
Você tem que entrar na configuração desse roteador e abrir uma porta específica (por exemplo 22) e encaminhar todo o tráfego de entrada dessa porta para o endereço IP do RPi-B.
O RPi-B será acessível à Internet pública através da combinação de RPI-B'spúblicoEndereço IP e porta 22.
Agora, no RPi-A você pode usarSFTPpara enviar dados para RPi-B.