Задать вопрос
  • OpenVPN как шлюз не работает почему?

    @res2001
    dobromin, Совсем пусто в логе? Там хоть что-то должно быть. Хотя бы какие-то дежурные фразы после подключения. Добейтесь того, что бы журнал писался.
    Можно поднять уровень verb. Там до 11, кажется, но после 5 или 6 он уже каждый пакет логирует - куча не нужной сейчас информации.
    На сколько помню, в виндовом логе явно видно, что openvpn запускает route.

    openpvn connect - это родной GUI? Я уже давно не пользовался под виндой. Помнится были какие-то проблемы с несовместимостью сторонних GUI (есть и такие) в определенных случаях. Но родной у меня работал нормально.

    В винде можно запросто не дать права на файл/каталог для админа. Админ, конечно, эти права сможет себе сам потом дать, но операции чтения/записи файла, пока прав нет, будут отвергнуты с ошибкой. Кроме того в винде есть еще UAC. Так что убедитесь, что у пользователя под которым работает openvpn.exe есть права на лог файл. Смотреть в менеджере задач при поднятом соединении.
  • OpenVPN как шлюз не работает почему?

    @res2001
    dobromin, Да. log-append обычно удобнее. Слеши в пути переверните, винде все равно, а openvpn - фиг знает.
    Как у вас стартует openvpn на клиенте?
    Он может работать через службу, а может запускаться от пользователя. Служба может стартовать от своего пользователя. Посмотрите в мендежере задач от какого пользователя работает openvpn.exe после подключения.
  • OpenVPN как шлюз не работает почему?

    @res2001
    dobromin,
    какая то специфика работы у виндовс с опен впн с адресами

    Нет никакой специфики именно у винды. У openvpn есть несколько вариантов топологий внутренней сети.
    Самая "правильная" и простая на мой взгляд topology subnet. Ее вы и используете.
    Разве, что драйвер tun/tap в винде ставится отдельно, а в никсах он встроен в ядре. Иногда драйвер криво устанавливается, помогает переустановка. Но у вас ВПН поднимается, так что с драйвером все нормально.

    Ошибка в том, что не устанавливается маршрут по умолчанию. Надо с этим и разбираться.

    Опция push "redirect–gateway def1 bypass–dhcp" должна быть в конфиге сервера. push - говорит о том, что сервер прокидывает ее клиенту. На клиенте должен появляться маршрут по умолчанию через ВПН сервер после подключения.
    В логе есть ошибки?
  • OpenVPN как шлюз не работает почему?

    @res2001
    dobromin,
    заметил такую картину, как только подключается в таблице появляется шлюз по умолчанию с маршрутом но буквально на доли секунды

    Встречал такое поведение, не помню как лечилось :)
    За логи отвечают опции конфига: log, log-append, verb
    И смотрите, чтоб у процесса openvpn был доступ к логам на запись. В винде это актуально.
    https://openvpn.net/community-resources/reference-...
    Чтоб изменять таблицу маршрутизации penvpn просто запускает route с соответствующими параметрами.
  • Как написать код в c++ который будет писать сообщения в документ?

    @res2001
    ygg_71, Работа с файлами на С++ описана в любом учебнике по плюсам. В русском интернете информации то же достаточно, просто этим сайтом я сам регулярно пользуюсь и мне там проще что-то найти, чем гуглить.
    cppstudio.com/post/446
    С++ один из самых популярных языков программирования, информации по нему в интернете вагон.
  • Как написать код в c++ который будет писать сообщения в документ?

    @res2001
    ygg_71,
    в интернете ничего нет

    Серьезно? Вас в гугле забанили?
    https://en.cppreference.com/w/cpp/io/basic_ofstream
    можно будет реализовать

    Можно. АНК ведь на чем то написан :)
  • Как написать код в c++ который будет писать сообщения в документ?

    @res2001
    Все есть в стандартной библиотеке. Просто используете классы стандартной библиотеки для работы с файлами.
    Обладать нужно: текстовым редактором для написания исходного кода (редактор должен сохранять код в обычные текстовые файлы) и компилятором С++, в составе которого будет стандартная библиотека. На винде в качестве компилятора проще всего использовать MSVC или msys2+mingw, на линуксе - ставите из пакетов стандартный компилятор, обычно это gcc.
  • OpenVPN как шлюз не работает почему?

    @res2001
    dobromin, Если трафик ходит нормально между ВПН клиентом и ВПН сервером (т.е. когда это конечные точки трафика), значит с самим ВПН соединением все нормально.

    Посмотрел таблицу маршрутизации на винде (я так понял это клиент) - там маршрут по умолчанию - не через ВПН сервер. Соответственно, трафик в инет идет в обход ВПНа.

    Опция push "redirect–gateway def1 bypass–dhcp" на ВПН сервере включает маршрут по умолчанию на клиенте через ВПН. Опция push "route-gateway 10.10.0.1" лишняя, имхо.
    Если маршрут по умолчанию на клиенте не срабатывает, включайте лог на клиенте и смотрите какие сообщения туда сыпятся.
  • OpenVPN как шлюз не работает почему?

    @res2001
    dobromin, Тогда смотрите правила фаерволов на всех участниках цепочки прохождения пакетов, они могут блокировать. Может помочь tcpdump для определения того, что куда уходит и от куда не возвращается.
  • Как проверить если ли буква в массиве?

    @res2001
    KIberWarriorJs,
    я не могу понять как мне написать такой код

    Два вложенных цикла. В верхнем цикле меняешь индекс myString, во внутреннем цикле меняешь индекс letters. Индексы, естественно, разные.
  • OpenVPN как шлюз не работает почему?

    @res2001
    С ВПН сервера трафик от клиента куда должен идти? На роутер, а дальше в инет?
    Роутер что-нибудь знает о ВПН подсети? Надо на роутере добавить маршрут для ВПН подсети через ВПН сервер.
  • Как на обычном ПК сделать доступ по ссылке?

    @res2001
    Предложили как-то сделать адрес сайта через какой-то сервис

    Какой-то сервис называется, видимо, DDNS. Нужна поддержка DDNS на вашем сервере/роутере. Смысл в том, что при смене адреса, роутер сообщает об этом DDNS серверу, а тот уже, соответственно, начинает возвращать на DNS запросы обновленный адрес. Обычно в роутерах поддержка DDNS есть, в линукс/винду надо ставить какой-то дополнительный софт, не знаю какой. Поддержка DDNS нужна именно на устройстве, которое подключается к провайдеру и на котором меняется внешний адрес, обычно это роутер.
  • Как зациклить выполнение команды в bat если процесс отпадает?

    @res2001
    Что значит "процесс отпадает"?
    Судя по коду у вас все зациклено навечно. Оно вам точно надо?
    Я бы запускал через шедулер, там и расписание можно настроить.
    На вид в коде ошибок нет. Если путь, указанный в cd существует, то будет запускаться скрипт. Питон должен быть доступен для запуска из командной строки (путь к питону должен быть указан в PATH) под пользователем из-под которого запускается батник. В шедулере по умолчанию задания запускаются из-под LocalSystem, настройки PATH у него могут не совпадать с настройками пользователя под которым работаете вы.
  • Имитация ООП в C, где ошибка?

    @res2001
    При вызове виртуальных функций через макрос надо указатель приводить к нужному типу функции, т.к. в vtable будут лежать не типизированные указатели (void*).
    Так что типы для каждой виртуальной функции должны быть определены с помощью typedef.
    Так как имена виртуальных функций реально будут у макросов, сами виртуальные функции должны называться как-то по другому, ну там подчеркивание добавлять или еще что.

    В общем кода получается слишком много, чтоб этим серьезно заниматься :-)
    Обычно хватает легкого приближения к стилю ООП, без этих наворотов с наследованием и т.п.
  • Имитация ООП в C, где ошибка?

    @res2001
    Wataru, Не согласен:
    1. vtable нужен только для виртуальных функций, для обычных, не виртуальных, она не используется. Автор, по моему, еще не дошел до реализации наследования и полиморфизма, так что явно не думал об этом.
    2. таблица виртуальных функций создается в единственном экземпляре, она одна для всех экземпляров класса. В структуре класса хранится только указатель на нее.
    Вызовы виртуальных функций можно завернуть в макросы с тем же именем, что я предложил в прошлом сообщении, в макросе вызывать нужный метод через vtable.
    Как-то так вижу.
  • Имитация ООП в C, где ошибка?

    @res2001
    Я бы предложил вообще не делать указатель на функцию внутри структуры.
    Просто именуйте функции по определенной схеме с указанием названия класса в имени функции, например: ClassName_FunctionName.
    В таком подходе есть преимущество - избавляемся от коссвенности при вызове функции, т.е. вызов будет происходить чуть быстрее, чем с использованием указателя на функцию.
    Но передавать указатель на объект в функцию все равно придется :)
    На хабре есть на тему ООП на Си несколько статей, одна из них: https://habr.com/ru/post/568588/
  • Ошибка при установке windows?

    @res2001
    L1nw0od, Согласен с John Smith, стоит начать с теста памяти.
    На моей практике самые не понятные ошибки при установке винды связаны со сбоящей памятью (еще из-за дохнущего БП могут проявлятся разные чудеса, но обычно это на стационарных ПК).
    Я пользовался диагностическим набором от adminpe.ru, там мемтест есть в загрузочном меню, инструкция по изготовлению загрузочной флешки присутствует в наборе.

    И берите образ винды с сайта микрософт, а не с левых источников.
  • Как подключить библиотеку в плюсах?

    @res2001
    Вам точно это надо на для cmake? Я тут не увидел ваших попыток сделать подключение библиотеки в cmake.
    По моему ваш проект, в который вы хотите подключить библиотеку, не cmake.
    У меня винда и mingw-make. Хотелось бы поменьше всяких дополнительных пакетов и зависимостей. И чтобы сорцы либы лежали рядом относительно main.cpp, с возможностью их правки.

    Ну и положите их рядом и включите исходники библиотеки в перечень исходников вашего проекта. Пусть она собирается вместе с вашим проектом. Это такой самый деревянный вариант.

    Я бы конечно, попытался использовать пакетный менеджер для установки библиотеки в систему (Linux, msys2, ...), если она есть в пакетах. Если в пакетах нет, то можно собирать и устанавить библиотеку в систему согласно описанию и подключаете в проект обычным образом: добавить путь к файлам заголовков библиотеки с помощью ключа компилятора -I, добавить путь к каталогу с динамической библиотекой с помощью ключа компилятора -L, добавить в линковку библиотеку с помощью ключа компилятора -l, использовать #include в своих исходниках для подключения заголовков библиотеки.