Пробую придумати як організувати зв'язок між двома комп'ютерами (k1) і (k2) за NAT.
Поки що вже стабільно працюючих варіантів два:
1) k1 за допомогою rsync передає по крону всі файли в папці /home/user1/folder1 на сервер s1 із білою статичною IP через ssh і k2 так само їх приймає
2) k1 зберігає потрібні файли в папку /home/user1/sync і далі утиліта synthing що встановлена на k1, k2, s1 синхронізує цю папку на всі згадані пристрої
При цьому, звісно, нема можливості просто залогінитися на віддалений з k1 на k2 через ssh і виконати потрібні команди. Думаю що можна організувати щось в напрямку файлу з потрібними командами; файл кладеться на k1 в потрібну папку і syncthing його синхронізує; далі k2 виконує команди в цьому файлі по крону в наперед визначений час; тут проблема що є команди які мені потрібно виконати лише один раз, не знаю точно як це організувати; можливо за допомогою унікального імені файлу: тобто скрипт Python по крону парсить кожен файл в потрібній папці і веде лог, а якщо трапляється командний файл з іменем що вже присутнє в лог-файлі, тоді ми його не виконуємо знову.
Суттєво легше було б, якби існував сервер на котрому можна було б підняти VPN; тоді на кожному згаданому компі створюємо з'єднання з VPN при завантаженні і отримуємо статичну сіру айпі типу 10.10.x.y - але в мене доступні сервери з білими айпі лише типу OpenVZ без девайсів tun/tap (нема відповідних модулів в ядрі і провайдер відмовляється їх включати), тому підняти vpn сервак нема можливості або ж я не знаю як це зробити без tun/tap. Виділений фізичний сервер орендувати заради цього не хочу - дорого і буде лише простоювати, бо іншого корисного застосування я поки що не маю.
Це думки вголос, але може хтось таким страждає і є ідея...