MaxKozlov, не, там всё определяется более чем правильно. Была работающая роль, решил вынести в другую.
Дебаг в родительской роли всё пишет правильно. При редактировании хотел упростить, потому что (мне) понятно, что проблема не в опечатке, а какая-то более системная.
В дочерней роли могут быть варианты: от разваливания в неизвестную ошибку питона до значения переменной из какой-то странной комбинации из названия родительской роли, названия переменной. Это в таком виде передаётся и можно распечатать в дочерней роли. В дочерней роли на базе этой передаваемой переменной должна определяться внутренняя переменная, которая уже будет использоваться.
Почитал мануалы, должно быть просто
1) Прокинул ssh-туннель до сервера с openvpn-server и перенаправил на его порт.
2) Сменил udp на tcp на клиенте и не сервере.
3) Запустил. Клиент соединился, но пропал весь интернет.
Если верить мануалам, то ничего больше делать не нужно. У меня кое какие сайты по ip проходили в обход vpn, но они тоже не работают. Что-то я пока упускаю. Видимо, что-то с гейтвеем, но почему тогда исключения не работают?
Я вот думаю, а через socks получится? Т.е. например, если поднять туннель на сервере openvpn и подключаться к нему. Провайдеры же не блочат ssh. Есть софтина под ios. Платная. Но недорого и не жалко.
Соответственно, захожу на свой белый ip и порт 65303 с ip, указанных в настройке. Если там поставить 0.0.0.0 или вообще всё убрать, ничего не поменяется. Захожу через браузер, как с внутренней сети, только на внешний ip. У провайдера не заблокировано.
Что-то это странно выглядит и не так, как вы описываете. socket.send() raised exception — это попытка что-то куда-то послать по сети. Но никак не в консоль.
[10] Retrying "updates.GetChannelDifference" due to: Request timed out
— Это попытка что-то получить, которая отваливается по таймауту.
Я бы сказал, что это больше похоже на проблемы с сетью, которая нестабильная какая-то и теряет данные.
С чего бы программа не могла обрабатывать больше 2 сообщений в секунду? Это же фигня, а не нагрузка.. Если такое ограничение есть, то почему оно вообще существует в библиотеке? Может, сменить библиотеку?
Lynn «Кофеман», да, была такая мысль в процессе. Но реально проще забить туда домен типа foo.bar и менять его ip в hosts. Если будет задача убрать даунтаймы при смене ip, то так и надо будет делать.
Наверное, использование доменного имени решает проблему. Если нужно прямо быстро, можно и в hosts. Просто придумал такую схему, она показалась логичной и без обновления половины системы. Но не работает. Не страшно, просто интересно.
Drno, нет, там именно проблема была в роутинге. Сейчас я паркую с 65303 порта на такой же на роутере. На 80 порт роутера он не хотел укладываться.
Разобраться бы ещё с сертификатами, чтобы по https ходить и опционально запустить на роутере openvpn :) Там, вроде, не сложно, но руки не доходят.
Дебаг в родительской роли всё пишет правильно. При редактировании хотел упростить, потому что (мне) понятно, что проблема не в опечатке, а какая-то более системная.
В дочерней роли могут быть варианты: от разваливания в неизвестную ошибку питона до значения переменной из какой-то странной комбинации из названия родительской роли, названия переменной. Это в таком виде передаётся и можно распечатать в дочерней роли. В дочерней роли на базе этой передаваемой переменной должна определяться внутренняя переменная, которая уже будет использоваться.