Задать вопрос
  • Как решить проблему потерь пакетов при пробросе порта на tcp server?

    @res2001
    AlexSer, В линуксе все драйвера в ядре. Либо встроены, либо в виде подгружаемых модулей.
    На сколько я знаю, драйвер для ttyACM встроен в ядро, так же как и для ttyUSB и ttyS.
    Так что смена драйвера - это только смена ядра.
    Что за проблема в драйвере?
  • Как решить проблему потерь пакетов при пробросе порта на tcp server?

    @res2001
    AlexSer, Используйте любую программу, которая умеет работать с последовательными портами, например minicom, или что-то еще, их много.

    Можно даже так: cat </dev/ttyACM0
    Но, конечно, порт в системе должен быть правильно сконфигурирован. Программы общего назначения сами не умеют правильно конфигурировать порт, поэтому вы должны об этом позаботится.
    Тот же minicom сам может сконфигурировать порт через свои настройки/опции.
  • Как правильно передавать функцию в качестве параметра?

    @res2001
    Matvey_Mt, Верно.
    Даже если вы попробуете передать автоматический массив, то все равно передается только указатель:
    #define N   10
    void foo(int arr[N]) {}
    ...
    int array[N];
    foo(array);

    Но с автоматическими массивами надо быть аккуратным - имя такого массива не всегда ведет себя как указатель, в некоторых случаях оно ведет себя как массив. Например sizeof(array) из примера выше вернет полный размер массива в байтах, а не размер указателя.
  • Как использовать make на windows?

    @res2001
    voproser45654, В качестве окружения рекомендую связку msys2 + mingw.
    msys2 представляет собой линуксовую командную строку и пакетный менеджер с помощью которого можно установить кучу утилит и библиотек из пакетов. С его помощью ставим окружение для сборки, которое включает в себя в т.ч. и make, и mingw (компилятор).
    Если добавить соответствующие пути в виндовую переменную окружения PATH, то все утилиты будут доступны из командной строки винды. Если добавить виндовые переменные окружения MINGW_HOME и MSYS_HOME (смотри документацию msys2), то msys и mingw увидят разнообразные IDE.

    Другой вариант - WSL. Это полноценная виртуальная Линукс машина, предоставляемая микрософт. Все что собрано в WSL может быть запущено только в WSL. Но в винде много чего сделано для того что бы работа с WSL была достаточно прозрачна для пользователя. Не так давно появилась возможность запускать полноценное графическое окружение внутри WSL и иметь нормальный рабочий стол линукса, параллельно с раб.столом винды. Запускать WSL команды можно и из виндовой командной строки, через утилиту wsl))
  • Сервер-клиент openvpn win не видят за собой локальную сеть. как исправить?

    @res2001
    Слава Кривошейков, Как я и писал выше в такой конфигурации адрес подсети: 172.22.24.0, маска 255.255.248.0.
    Этот адрес и маску указывайте в настройках openvpn.
    PS: Чтоб вычислить адрес подсети надо сделать операцию побитового И над IP адресом и маской.
    PPS: Но что-то я сомневаюсь, что вам реально требуется такая маска. Обычно для разбиения на подсети выбирают такой диапазон адресов (адрес и маску подсети), в который бы помещалось необходимое количество узлов + 10-20% на расширение. Самая распространенная подсеть с маской 24 (255.255.255.0), она достаточно маленькая, ее удобно запоминать и просто вычислять адреса узлов и подсети.
  • Сервер-клиент openvpn win не видят за собой локальную сеть. как исправить?

    @res2001
    Слава Кривошейков, Видимо из-за сочетания адреса подсети 28.0 и маски 248.0.
    Дело в том, что для адреса подсети 28.0 маска 248.0 не подходит.
    Для такой маски адрес 28.0 - это адрес узла, а не подсети. Для подсети в таком случае адрес 24.0.
    Если адрес подсети реально должен быть 28.0, то маска должна быть 252.0.

    Что у вас фактически на камерах настроено? Какой диапазон адресов из этой подсети реально используется?

    Для справки - в подсети с маской 248.0 - может быть до 2048 узлов. Для подсети 252.0 - 1024 узла.
    Вам реально требуется такое количество узлов (камер) в этой подсети?
  • Сервер-клиент openvpn win не видят за собой локальную сеть. как исправить?

    @res2001
    Слава Кривошейков, Маршрут на месте, лишних маршрутов нет.
    Теперь пинги с сервера на компы в сети за клиентом должны проходить.
  • Сервер-клиент openvpn win не видят за собой локальную сеть. как исправить?

    @res2001
    Слава Кривошейков,
    Есть еще 2 впн клиент с такой же подсетью 192.168.100.1(роутер) , но там в ccd я не чего не прописывал кроме ip 10.8.0.3.

    Это не считается. В данном случае маршрут существует даже без запущенного openvpn. Значит он появился откуда то вне openvpn.
    Если route delete маршурт удалит успешно и после перезагрузки он не появится опять, то не важно откуда он взялся. Иначе, придется искать, откуда растут ноги у этого маршрута.

    Кстати, если потребуется доступ к сети за этим вторым клиентом, то придется как-то решать вопрос с пересекающимися подсетями. Обычно правильней всего - изменить адресацию в одной из сетей, но это может быть не всегда возможно.
  • Сервер-клиент openvpn win не видят за собой локальную сеть. как исправить?

    @res2001
    Слава Кривошейков, Маршруты не удаляются с помощью route delete 192.168.100.0?
    Если сразу посмотреть таблицу маршрутизации после команды? Сама команда ошибки выдает?
    На сервере нет сетевых адаптеров с вторичным адресом из сети 192.168.100.0?
  • Сервер-клиент openvpn win не видят за собой локальную сеть. как исправить?

    @res2001
    res2001,
    192.168.100.255 255.255.255.255 On-link 192.168.1.245 291

    Этот маршрут то же надо удалить.
  • Сервер-клиент openvpn win не видят за собой локальную сеть. как исправить?

    @res2001
    Слава Кривошейков, Завершите openvpn на сервере полностью.
    Посмотрите таблицу маршрутизации.
    Если остались маршруты для сети 192.168.100.0, то удалите их с помощью route delete.
    Перезагрузите винду, проверьте таблицу маршуртизации еще раз. После перезагрузки и до старта openvpn маршрутов к 192.168.100.0 не должно быть.
  • Сервер-клиент openvpn win не видят за собой локальную сеть. как исправить?

    @res2001
    Слава Кривошейков, Маршрут на сервере добавился:
    192.168.100.0 255.255.255.0 10.8.0.2 10.8.0.1 281

    Но помимо этого там же есть еще 2 маршрута:
    192.168.100.0 255.255.255.0 On-link 192.168.1.245 36
    192.168.100.255 255.255.255.255 On-link 192.168.1.245 291

    Как они туда попали?
    У первого из них метрика (последняя цифра в строке) 36, а у маршрута на 10.8.0.1 метрика 281, т.к. маршруты оба маршрута для одной и той же сети, то для выбора используется метрика - выбирается маршрут у которого метрика меньше.
  • Сервер-клиент openvpn win не видят за собой локальную сеть. как исправить?

    @res2001
    Слава Кривошейков, 1. В ccd должна быть опция iroute, а в основном конфиге сервера route! Так сделано, потому что фактически маршрутизация разделена на 2 части - одна происходит в ОС (route), а вторая в openvpn (iroute).
    2. Судя по логу маршрут добавляется сразу после старта сервера, еще до подключения клиента. Так и должно быть:
    Wed May 4 15:48:09 2022 C:\Windows\system32\route.exe ADD 192.168.100.0 MASK 255.255.255.0 10.8.0.2
    Wed May 4 15:48:09 2022 Route addition via service succeeded

    Посмотрите таблицу маршрутизации сразу после старта сервера и после подключения клиента.
  • Сервер-клиент openvpn win не видят за собой локальную сеть. как исправить?

    @res2001
    Слава Кривошейков, Последний вариант конфига сервера, ccd клиента и логи с сервера и клиента с моментом подключения в студию.
  • По какой причине несовместимость библиотек?

    @res2001
    Вадим Ушаков, Объектные файлы самого проекта то же посмотри objdumpом. Там что с форматом/разрядностью?
    Если все совпадает, то остается только вариант, что ld используется от другой платформы. Возможно используется родной вместо нужного.
    Кросс-компиляция как-то настраивается в makefile? Обычно нужно задавать свои варианты компилятора, линковщика и других сопутствующих утилит в этом случае.
    Если не задавать? то будут использоваться стандартный компилятор и линковщик и итоговый исполняемый файл будет в формате текущей платформы, т.е. какой-нибудь elf64
  • Сервер-клиент openvpn win не видят за собой локальную сеть. как исправить?

    @res2001
    Слава Кривошейков, На микротиках openvpn какой-то кастрированный. Сам не использовал его на микротиках, но даже тут время от времени проходили сообщения о каких-то странных граблях с этой связкой, в детали не вдавался, т.к. ничего сказать по этому поводу не могу. Попробовать можно. Вроде тут у нас все стандартно, должно работать.
    На камерах настраиваешь шлюзом по умолчанию IP адрес микротика в сети камер.
  • Сервер-клиент openvpn win не видят за собой локальную сеть. как исправить?

    @res2001
    Слава Кривошейков, По 3 пункту. У тебя же сейчас видео сервер это комп с виндой?
    Можно его настроить на маршрутизацию трафика, тогда настройки камер менять не придется, т.к. на камерах шлюзом по умолчанию настроен видео сервер.

    С видео регистратором такой номер может не пройти. Хотя большинство виде регистраторов - это просто специализированные компы с линуксом и там то же можно попытаться попробовать такой финт. Но надо глубоко разбираться с конкретным регистратором.
    В целом же самый прямой путь - настроить правильно шлюз по умолчанию в камерах. Причем даже если на этапе разворачивания сети камер еще ничего не известно про ВПН и т.п. достаточно просто настроить любой свободный адрес под шлюз по умолчанию. Когда понадобится его использовать просто добавляем шлюз с этим адресом и настраиваем его, камеры перенастраивать не потребуется.
  • Сервер-клиент openvpn win не видят за собой локальную сеть. как исправить?

    @res2001
    Слава Кривошейков, 3. Ну поставишь ты микротик, а дальше то что? Тебе нужно как-то ответы от видеокамер загонять в ВПН. ВПН может быть на самом микротике или на компе, подключенном к микротику, не важно.
    Что бы камера знала куда слать трафик для другой сети у нее либо должен быть настроен маршрут, либо указан шлюз по умолчанию, который будет направлять трафик в правильном направлении.
    А у тебя шлюзом по умолчанию на камерах является видео сервер.
    И тут уже не важно что у тебя там будет шлюзом - клиент ВПН или микротик - тебе все равно нужно править настройки камер. Мое мнение - роутер нужен, только в том случае, если и ВПН будет на нем. Иначе достаточно компа с ВПН клиентом и адресом в сети камер.
    4. openvpn умеет стартовать в качестве службы, без залогиненного пользователя и без GUI.
    При установке openvpn в инсталляторе есть галка, что-то типа создавать службу Windows. Если она включена, то после установки служба будет создана. Надо ее только перевести в состояния автостарта.
    Но это уже после того, как в ручном режиме все настроишь. Имей ввиду, что служба стартует от другого пользователя (не от того из-под которого работает openvpn в ручном режиме). Надо обеспечить этому пользователю права на чтение ключей и на запись логов.