|
|
Опции темы | Поиск в этой теме | Опции просмотра |
25.08.2013, 18:00 | #1 |
Junior Member
Регистрация: 25.08.2013
Сообщений: 15
Вес репутации: 0 |
Подключение локального TCP порта к внешнему TCP серверу
Здравствуйте, подскажите как реализовать следующую схему.
Имеем mr3020 с OpenWrt. К нему подключена Arduino по USB (/dev/ttyUSB0). С помощью ser2net к порту Arduino можно обращаться через TCP соединение на локальном порту 9999. Задача – сделать так, чтобы OpenWrt устанавливал соединение к удаленному TCP серверу. Этот сервер выполняет роль управленческого центра и таким образом может управлять Arduino посылая те или иные команды через TCP. Тут принципиально важно именно, чтобы инициатива соединения исходила от OpenWrt устройства, т.к. в боевых условиях у устройства может не быть белого IP и с сервера мы к нему не достучимся. Т.е. у нас есть один локальный TCP сокет на 9999 порту и один на удаленном сервере. Их надо как-то связать... |
25.08.2013, 22:50 | #2 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821 |
Если на Openwrt ser2net сервер то на удаленном компе должен стоять ser2net клиент
|
25.08.2013, 23:03 | #3 |
Junior Member
Регистрация: 25.08.2013
Сообщений: 15
Вес репутации: 0 |
@Admin на удаленном сервере конечно поднят TCP сервер, который принимает соединения на 10000 порту.
Но это не ser2net (тут нет цели связать 2 физических serial порта), это другой TCP сервер, не думаю что важно какой, просто главное, что 10000 порт принимает TCP соединения. |
25.08.2013, 23:34 | #4 |
Junior Member
Регистрация: 25.08.2013
Сообщений: 15
Вес репутации: 0 |
Я нашел решение, не думаю, что оно идеально, поэтому подскажите, пожалуйста аналоги.
Возможно ваши решения будут работать стабильнее. Надо учитывать, что TCP соединение может рваться (пока это вообще не учитывается), устройство с OpenWrt должно само восстанавливать соединение, как только появляется сеть. Запускаем на OpenWrt устройстве. Код:
nc 192.168.0.102 10000 | nc 0.0.0.0 9999 Код:
socat - TCP:192.168.0.102:10000 | socat - TCP:0.0.0.0:9999 К сожалению пока схема работает не оч. стабильно. Надо закладывать дисконекты и средства восстановления связи. Последний раз редактировалось BeZoom; 26.08.2013 в 03:22. |
26.08.2013, 21:49 | #5 |
Member
Регистрация: 11.07.2013
Сообщений: 91
Вес репутации: 0 |
Да не парьтесь, если в точке управления есть белый IP ставим PPTP сервер, на удалённой точке поднимаем PPTP клиент, теперь ваше устройство доступно по VPN сети напрямую по адресу порта, к примеру если VPN сеть 172 и на клиенте адрес 172.19.19.5 то по этому адресу по порту 10000 и запрашиваете, у меня целая сеть так сделана
PS количество vpn клиентов обслуживающее OpenWRT мне не известно, пару точно держит, за NAT работает (у меня даже за двойным NAT), надо почитать документацию, авто восстановление соединения как само собой разумеющееся Последний раз редактировалось UA6EM; 26.08.2013 в 21:55. |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|