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

    @res2001
    Слава Кривошейков, В ifconfig-push третий параметр не нужен.
    Посмотрите route print на клиенте и сервере, проверьте, что соответствующие маршруты есть.

    У вас маршрут до сети 172.22.24.0 фигурирует и в push route и в iroute. Это не правильно.
    Где реально расположена эта сеть?
    Если за клиентом - оставьте iroute, если за сервером - оставьте push route.

    Теперь отвечайте на вопросы:
    1. ВПН сервер является шлюзом по умолчанию для компов в сети 192.168.1.0?
    2. ВПН клиент является шлюзом по умолчанию для компов в сети 192.168.100.0?
    3. То же самое для сети 172.22.24.0. Кто там является шлюзом по умолчанию?
    На сколько я понял в сети 172.22.24.0 камеры наблюдения. Там есть возможность настраивать шлюз по умолчанию и добавлять статические маршруты? Не приходилось иметь дело с IP камерами.
  • Почему в консоль выводится правильный результат, а в файл нет?

    @res2001
    Что конкретно у вас в результате не правильно? Хорошо бы увидеть пример того что выводится на экран и в файл.
    Пока предполагаю, что проблема в кодировке. Просто используйте правильную кодировки при просмотре файла.

    И еще ошибка: после сообщения "Файл не открыт" вы продолжаете работать с файлом так как будто он открыт.
  • Сервер-клиент openvpn win не видят за собой локальную сеть. как исправить?

    @res2001
    Слава Кривошейков,
    1. Уберите из клиентского конфига все push route
    2. Уберите из серверного конфига push route относящиеся к сетям за клиентом. Будем их прописывать в клиентском ccd в опции iroute.
    Оставьте тут только push route для сетей, находящихся за сервером. Эти маршруты будут добавлены в таблицу маршрутизации всех клиентов после подключения.
    3. Добавьте в серверный конфиг опцию "topology subnet". Про возможные варианты топологий можно почитать тут (ищите по названию опции): https://openvpn.net/community-resources/reference-...
    По умолчанию используется net30. subnet превращает вашу ВПН подсеть в одну большую подсеть, а не в кучу мелких с маской 30 подсетей.
    Всегда использую subnet.
    4. В клиентском ccd файле исправьте опцию ifconfig-push. Приведите ее в формат:
    ifconfig-push 10.8.0.8 255.255.255.0
    где 10.8.0.8 - внутренний ВПН IP адрес назначаемый клиенту при подключении, должен быть из подсети, указанной в опции server серверного конфига.
    255.255.255.0 - маска сети, та же, что и в опции server
    Если использовать топологию по умолчанию, то вместо маски надо указывать IP адрес сервера. Принцип распределения адресов между клиентами и сервером для топологии net30 описан тут: https://openvpn.net/community-resources/configurin...
    5. Добавьте в клиентский ccd опции iroute для всех сетей за данным клиентом. Эти маршруты будут прописаны в таблице маршрутизации сервера после подключения клиента.

    Рестартуйте сервер. Подключитесь клиентом.
    Проверьте пинг с сервера на клиент и обратно по внутренним ВПН адресам.
    Проверь в таблице маршрутизации сервера, что там появились маршруты, указанные в опции iroute клиентского ccd.
    Проверь в таблице маршрутизации клиента, что там появились маршруты, указанные в опции push route сервера.

    Это первый этап. Когда все проверки пройдут, перейдем к настройкам рабочих станций в сетях за клиентом и сервером.
  • В чем ошибка при установке Mingw w64 для C++?

    @res2001
    Рекомендую использовать mingw не напрямую, а установленный в msys2. В качестве дополнительных бесплатных плюшек получаете:
    1. командную строку bash со всеми линуксовыми утилитами и прочим. Утилиты можно вызывать из cmd винды то же, прописав пути в PATH.
    2. менеджер пакетов pacman. В репозиториях куча портированных под mingw сторонних библиотек.
    3. Все популярные IDE смогут находить установленный mingw, если задать переменные окружения в винде:
    MSYS_HOME=X:\msys64\usr
    MINGW_HOME=X:\msys64\mingw64

    где X:\msys64 - путь куда вы установили msys2.
    Для доступа к линуксовым утилитам из командной строки винды добавьте путь X:\msys64\usr\bin в переменную окружения PATH. Для доступа к компилятору, отладчику и т.п. добавьте в PATH X:\msys64\mingw64\bin

    После установки msys2, mingw надо установить с помощью менеджера пакетов:
    # Обновление
    pacman -Sy pacman
    pacman -Su
    pacman -Syu
    # Установка окружения для сборки
    pacman -S base-devel
    # git
    pacman -S git
    # mingw
    pacman -S mingw-w64-i686-toolchain mingw-w64-x86_64-toolchain
    # Остальное по необходимости
    # cmake 
    pacman -S mingw-w64-x86_64-cmake mingw-w64-i686-cmake
    # Qt5
    pacman -S mingw32/mingw-w64-i686-qt5 mingw64/mingw-w64-x86_64-qt5
    # QT Creator
    pacman -S mingw32/mingw-w64-i686-qt-creator mingw64/mingw-w64-x86_64-qt-creator
    # Поиск пакетов в репозитории
    pacman -Ss <reg exp for find package>

    В примерах я ставлю вариант mingw для x32 (i686) и x64 (x86_64). Если нужен только один из них убираете соответствующий пакет.

    Вместо mingw можно установить clang.
  • Как запретить пользоваталям в сети использовать VPN? как блокировать соединения?

    @res2001
    Дополню:
    - отобрать у пользователей админские права на раб. станциях
    - запрет запуска не разрешенных приложений
  • Ошибки этой быть не должно, почему возникает?

    @res2001
    Вадим Ушаков, А ларчик то просто открывался и надо было его заметить сразу :)
    В Utils.hpp в 62 строке замени слэши на обратные.
    Линукс не умеет в разные слэши, это только винда всеядная.
  • Ошибки этой быть не должно, почему возникает?

    @res2001
    Вадим Ушаков, Ну вот, справился :-)
    Только в выводе нет строки запуска компилятора. Посмотрел еще раз makefile, оказалось по умолчанию включен "тихий" режим и команды не выводятся.
    Чтоб отключить "тихий" режим попробуй запускать make так:
    make Garrys\ Mod\ 10 verbose=1
    И вывод сюда.
  • Ошибки этой быть не должно, почему возникает?

    @res2001
    Вадим Ушаков, Это не то. Это ты руками вызываешь make. А уже make вызывает компилятор.
    Нужна строка вызова именно компилятора. Она на том же экране, что и ошибка, только надо прокрутить назад (выше) и найти где вызывается gcc (или g++ ну или чем ты там собираешь).
    Освой наконец копи-паст текста из консоли.
  • Проверить первые 2 байта?

    @res2001
    Haaaaz, Ссылку открой, там пример как раз для тебя:
    std::ifstream is{"test.txt", std::ios::binary}
    В примере в конструктор передается еще std::ios::ate - это заставляет сделать переход в конец файла сразу после открытия. В примере это нужно для того, что бы узнать длину файла. Тебе это не нужно, так что ate не указывай.
  • Проверить первые 2 байта?

    @res2001
    Haaaaz,
    функционала там нет

    Есть. Надо открыть файл в двоичном режиме и прочитать 2 байта в переменную unsigned short или двухбайтовый массив.
    https://en.cppreference.com/w/cpp/io/basic_istream/read
    По ссылке выше смотрите пример.
  • Проверить первые 2 байта?

    @res2001
    но так и не понял, каким образом преобразовать в массив байтов файл, который я получаю через CreateFile()

    Это шедевр я считаю! Никогда не встречал настолько завуалированное название операции "чтения из файла" :)

    Когда вы открываете файл, то в системе просто создается некая ссылка на этот файл, никаких данных из файла в памяти еще нет. Чтоб данные появились в памяти их надо из файла прочитать.
    Аналогично, чтоб данные появились в файле их надо записать.
    Это отдельные операции и вызовы.

    Зачем вы сразу залезли в WinAPI? Это сложно.
    Купите учебник по плюсам. В любом учебнике есть описание работы с файлами.
    В стандартной библиотеки С++ есть объекты для работы с файлами. Это на много проще, чем WinAPI.
  • Будет ли разница какой объем занимает система?

    @res2001
    32 Гб для установки хватит. Но с таким системным разделом жить довольно трудно. Придется постоянно себя контролировать.
    Чистая система будет занимать одинаковый объем не зависимо от размера диска/раздела, главное чтоб его хватило для установки.
  • Почему скрипт не работает при наличии в строке символов?

    @res2001
    newaitix, Забудьте про батники.
    1. В HTML файле сплошные спец.символы cmd. Не то что бы такие файлы совсем не возможно обрабатывать в батнике, но это может создавать определенные трудности, из-за которых скорее всего нельзя будет использовать все возможности cmd.
    2. Данные не структурированы, разбить на лексемы не получится. К тому же см.п.1.
    3. findstr поддерживает regexpы, но в крайне ограниченном варианте. В замену она не умеет.

    Используйте sed.
    Или powershell, JScript, VBScript - все это есть в винде из коробки.
  • Ошибки этой быть не должно, почему возникает?

    @res2001
    Вадим Ушаков,
    По изображениям выше не видно?

    Нет. Тут только часть вывода компилятора при компиляции Lua535.cpp.
    Нужно увидеть командную строку запуска компилятора, посмотреть параметры, какие туда передаются. Она еще выше должна быть. И захватить еще несколько строк сверху, там могут быть дополнительные вызовы make со сменой каталога, или вызовы cd с тем же самым. Хотя в makefile я cd не увидел.
    В целом makefile выглядит нормально.
  • Ошибки этой быть не должно, почему возникает?

    @res2001
    Вадим Ушаков, Было бы верно - собралось.
    Есть Team Viewer?

    Нет
  • Ошибки этой быть не должно, почему возникает?

    @res2001
    Вадим Ушаков, Покажи, что конкретно ты прописал. Т.к. если указать абсолютный путь, то заголовок должен быть найден. Варианты могут быть только а) не правильно указан абсолютный путь в -I б) не правильно указан путь в #include. Другого не дано.

    Повторюсь:
    Выложи под спойлер весь вывод компилятора начиная от команды запуска компилятора для файла на котором происходит ошибка. Захвати несколько строк выше команды.
    Выкладывай в текстовом виде. Используй консоль для сборки. Возьми оттуда вывод компилятора и вставь сюда текстом.
  • Почему скрипт не работает при наличии в строке символов?

    @res2001
    Приведите пример входных и выходных данных . Не понятно из описания.
    Во входном файле несколько строк или одна?
    Все строки во входном файле подходят под формат входной строки? Или есть произвольные строки, которые надо просто оставить как есть.
    Вы ищите в коде "version=", а в примере у вас version:. Как так?
    В вашем коде, что-то не видно взятие версии в кавычки.

    Вообще я бы использовал sed из набора линуксовых утилит и соответствующий regexp для замены. В этом случае все, скорее всего, можно сделать одной командой. sed для винды можно взять, например, в msys2.
  • Ошибки этой быть не должно, почему возникает?

    @res2001
    Вадим Ушаков,
    Зачем вам полный путь до файлов?

    Что бы проверить предположение о том, что перед вызовом компилятора меняется текущий каталог и относительные пути становятся не действительными.
    Картинку не видно.

    Повторюсь:
    Выложи под спойлер весь вывод компилятора начиная от команды запуска компилятора для файла на котором происходит ошибка. Захвати несколько строк выше команды. Выкладывай в текстовом виде.
    Так же не плохо посмотреть на содержимое ../src, действительно ли там есть файл, указанный в ошибке.
  • Ошибки этой быть не должно, почему возникает?

    @res2001
    Вадим Ушаков, Подставь в INCLUDES вместо относительного пути ../src, абсолютный.
    Если эта ошибка уйдет - значит мое предположение верно.