Связь с Raspberry Pi через Интернет

Связь с Raspberry Pi через Интернет

Я новичок в нетворкинге.

У меня Rpi-A подключен к Интернету через 3G Surf-Stick, а Rpi-B подключен к Интернету через точку доступа WiFi.

Я заметил, что у Rpi-A публичный IP-адрес, а у Rpi-B локальный/частный IP. Оба Raspberry Pi находятся в разных сетях.

Я хочу отправить двоичные данные из Rpi-A в Rpi-B. Есть предложения, как это можно сделать?

обновление: я использовал код ниже для проверки соединения MQTT. заменив XX.XX.XX.XX на публичный IP Raspberry Pi. Все равно получаю эту ошибку ---> ошибка: [Errno 10060] Попытка подключения не удалась, так как подключенная сторона не ответила должным образом в течение определенного периода времени, или установленное соединение не удалось, так как подключенный хост не ответил. в чем может быть возможная причина этой ошибки? Чего-то не хватает в моем коде

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.."

решение1

Если вы используете RPi B на точке доступа, которая не контролируется вами. Вы либо создадите обратное соединение от Pi B к Pi A (что-то вроде ncat должно работать) и будете отправлять данные через него, либо используете что-то вроде сервера OpenVPN в облаке и маршрутизируете между двумя Pi.

Если у вас есть доступ к порту конфигурации точки доступа Wi-Fi, перенаправьте что-то вроде ssh на Pi B. (Общий порт 22/tcp, если используется стандартная конфигурация)

решение2

В сети RPi-B должен быть маршрутизатор, использующий NAT, чтобы позволить RPI-B подключаться к Интернету через публичный адрес.

Так:

введите описание изображения здесь

Вам необходимо войти в конфигурацию этого маршрутизатора, открыть определенный порт (например, 22) и перенаправить весь входящий трафик на этот порт на IP-адрес RPi-B.

RPi-B будет доступен в публичном Интернете через комбинацию RPI-BпубличныйIP-адрес и порт 22.

Теперь из RPi-A вы можете использоватьСФТПдля отправки данных на RPi-B.

Связанный контент