Я новичок в нетворкинге.
У меня 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.