Задать вопрос
  • Код на си начинает бесконечный цикл. Что делать?

    @maksimwork1980
    Нужно для начала понять, что должен делать код.

    Тут directory не будет иметь значение отличное от 2.
    И здесь break не даёт присвоить значение переменной.

    if (intype == 2)
                {
                    break;
                    directory = 2;
                }
    Написано
  • Squid: почему маршрутизация работает только для доменов?

    @maksimwork1980 Автор вопроса
    Максим Корнеев,
    Прокси это для кеширования

    Надеюсь Вы это про Squid, который именуется как раз как "Кеширующий прокси-сервер", а не про все прокси-сервера?

    Вместо школьных форумов луче читать документацию и учебники.

    На оффициальной документации Squid есть десятки примеров конфигураций, которые явно не похожи на кеширование (ссылка). И я функцию кеширования просто проигнорировал тоже.
    И что школьного в форумах..?

    DNS для разрешения имён

    Знаю, но как это противоречит моим словам, сказанным несколько дней назад? К примеру в OpenVPN если добавить в исключение домен, то он посмотрит его AAA записи. Потому что не бывает маршрутизации на основе доменных имён, а только IP, если речь не идёт о прокси. Проблемы начнутся, когда адрес сайта поменяется. Если в конфигах OpenVPN вообще есть возможность указать домен, а не вручную указывать IP сайта через dig или подобные утилиты.

    vpn для проброса сетей,

    Вы предлагаете использовать просто прокси-сервер без VPN? Не подходит:
    1. Через VPN у меня не только прокси.
    2. Могут просто заблокировать трафик провайдеры.

    для маршрутизации нужен маршрутизатор

    Физического или наподобии pfsence? Но там же не может быть доменной маршрутизации даже в теории.


    У Вас жуткая каша в голове и полнейшее непонимание как это работает. Вы хотите гланды ректально лечить.

    Теперь не уверен что у меня "полнейшее непонимание как это работает, тем более что всё и сейчас отлично работает)
    Написано
  • Squid: почему маршрутизация работает только для доменов?

    @maksimwork1980 Автор вопроса
    А что может быть проще?
    На одном форуме (ссылка) задавали вопрос и предложили несколько вариантов.
    Было несколько вариантов использовать Прокси-сервер.
    А ещё так предлагали использовать маршруты в самом OpenVPN или маршрутизацию на основе политик.
    Но в OpenVPN варианте серьёзный недостаток, что в случае смены AAA DNS записи домена у маршрута не будет правильно всплоть до перезагрузки. А также нужно укзаать явно поддомены, а я вообще бы хотел сразу маршрут на уровне доменов 1-ого уровня (ru).
    А с помощью Ipset и Dnsmasq есть свои сложности.
    А то, что прокси требует, что бы соответственно поддержку прокси у клиента - меня устраивает
    Написано
  • Squid: почему маршрутизация работает только для доменов?

    @maksimwork1980 Автор вопроса
    asmelnik, знаю, но я позаимствовал часть кода с cache_peer и never_direct не с оффициальной документации, а с какого то комплексного англоязычного руководства, где все писали в комментариях писали, что работает. Видимо просто не все пользуется IP маршрутизацией, лично у меня они завязаны на различных самохостинг решениях
    Написано
  • Squid: почему маршрутизация работает только для доменов?

    @maksimwork1980 Автор вопроса
    asmelnik, огромнейшее спасибо!
    Насчёт бордака да, но вспомнил чуть раньше перед Вами, как работает allow/deny. А про src - просто посмотрел пример на документации.
    Но на счёт опции always_direct - я не знал о её существовании.
    Напишите своё решение в ответы, в частности конфиг.
    Написано
  • Squid: почему маршрутизация работает только для доменов?

    @maksimwork1980 Автор вопроса
    asmelnik, Всё таки нет, это самый минимальный пример не работает как нужно - 10.8.0.1 уходит на Сервер №2.
    spoiler
    http_port 10.8.0.1:34004
    
    acl all1 src 0.0.0.0/0.0.0.0
    acl all1 src 10.8.0.1/24
    acl all1 src 10.8.0.1/24
    acl all1 src 10.8.0.1/32
    
    acl all2 dst 0.0.0.0/0.0.0.0
    acl all2 dst 10.8.0.1/24
    acl all2 dst 10.8.0.0/24
    acl all2 dst 10.8.0.1/32
    
    acl all3 localip 0.0.0.0/0.0.0.0
    acl all3 localip 10.8.0.1/24
    acl all3 localip 10.8.0.0/24
    acl all3 localip 10.8.0.1/32
    
    http_access allow all1
    http_access allow all2
    http_access allow all3
    
    cache_peer 10.8.1.1 parent 34004 0 default
    
    never_direct deny all1
    never_direct deny all2
    never_direct deny all3

    20 минут назад я случайно поменял порт узла Кеш Прокси-сервера на неправильный, он вообще не задействовался.
    Написано
  • Squid: почему маршрутизация работает только для доменов?

    @maksimwork1980 Автор вопроса
    Минуточку, я забыл, что так делать недопустимо.
    never_direct allow !all1
    never_direct allow !all2
    never_direct allow !all3

    Я забыл тут и в примере с доменами. Согласно 1-ой строчке, всё что входит в all1 - не будет передаваться на Сервер №2, а остальное будет. Но тогда не будет идти до этих двух строчек:
    never_direct allow !all2
    never_direct allow !all3

    Это грубая ошибка, надо вот так:
    never_direct deny all1
    never_direct deny all2
    never_direct deny all3


    С этими параметрами уже 10.8.0.1 не перенаправляется на Сервер №2, это большой прогресс

    В изначальном конфиге у меня похоже было 2 ошибки - неправильную директиву использовал (src/localip вместо dst) и не правильно пользовался логикой Squid, как я написал в нескольких строчках выше:
    never_direct allow !novpn_domain
    never_direct allow !novpn_ip4
    Написано
  • Squid: почему маршрутизация работает только для доменов?

    @maksimwork1980 Автор вопроса
    В случае если убрать последние эти 3 строчки:
    never_direct allow !all1
    never_direct allow !all2
    never_direct allow !all3

    То тоже.

    По правильному сетевому интерфейсу будет работать, только если вообще исключить узел кеширования, т.е. удалить эту строчку:
    cache_peer 10.8.1.1 parent 35004 0 default
    Написано
  • Squid: почему маршрутизация работает только для доменов?

    @maksimwork1980 Автор вопроса
    asmelnik, хорошо. Я тоже задумывался ещё парочку дней назад, что дело в этом. Может быть тогда я что то упустил, поэтому попробовал как Вы предложили - поменять localip или src на dst.
    Несколько раз переписал конфигурацию - не получилось.
    Хорошо, вообще уберу часть с доменами и попробую самым глупым методом, но рабочим - сразу для всех 3-ёх типов адресов:
    http_port 10.8.0.1:34004
    
    acl all1 src 0.0.0.0/0.0.0.0
    acl all2 dst 0.0.0.0/0.0.0.0
    acl all3 localip 0.0.0.0/0.0.0.0
    
    http_access allow all1
    http_access allow all2
    http_access allow all3
    
    cache_peer 10.8.1.1 parent 34004 0 default
    
    never_direct allow !all1
    never_direct allow !all2
    never_direct allow !all3

    К сожалению это не работало.
    Написано
  • Squid: почему маршрутизация работает только для доменов?

    @maksimwork1980 Автор вопроса
    asmelnik, для адреса 1.2.3.4 он и правда должен идти через Сервер №2. Но потому что его нет в списке в том же файле. Иначе бы он не должен идти через Сервер №2
    # IP, которые не должны идти через Сервер №2.
    acl novpn_ip4 localip 10.8.0.1/24


    P.S.: забыл сказать, что пробовал вместо localip использовать src, но это не меняет ситуацию.

    UPD спустя 5 минут: и дописал соотвествующую опцию, что был те адреса () не отправлялись на Сервер №2, как у доменов:
    never_direct allow !novpn_ip4
    Написано
  • Почему нет подключения к интернету при попытке маршрутизировать траффик после успешного создания общей локальной сети?

    @maksimwork1980 Автор вопроса
    Большое спасибо!
    Похоже мне просто стоит по нормальному разобраться в сетях, я о маскараде впервые слышу.
    Написано
  • Как скопировать файл из терминала или MC в буфер обмена?

    @maksimwork1980 Автор вопроса
    Хочется тягать в телегу файлы из файлового менеджера

    Вопрос как раз о том, как избежать его использования.
    И никакой связи между MC и DE нет и быть не может.

    Не знаю что вы имеете в виду под DE, но уже можно копировать буфер обмена с помощью XClip. И об этом написал в вопросе. Так что я не знаю где нет связи.
    Пробовал вообще отдельной консольнтой командой - XClip, но как понял можно только скопировать им содержимое файла в буфер обмена, не может подойти.
    Написано
  • Как исправить "неопределённая ссылка на «http::server::server::run()"?

    @maksimwork1980 Автор вопроса
    Сергей Соловьев, Она найдена. Оказалось, что проблема было в том, что я забыл, что CMake не добавляет автоматически исходники по умолчанию.
    Можно решить так (рекомендуется вручную):
    Дописать в CMakeLists.txt
    file(GLOB PROJECT_SRC
         "*.h"
         "*.cpp"
    )
    
    
    add_executable(main ${PROJECT_SRC})
    Написано
  • Как исправить "неопределённая ссылка на «http::server::server::run()"?

    @maksimwork1980 Автор вопроса
    Вы оказались правы, я не учёл остальные файлы. Почему то показалось что CMake по умолчанию берёт файлы
    Я исправил проблему автоматическим добавлением файлов (знаю, рекомендуется только вручную):
    Дописать в CMakeLists.txt

    add_executable(main ${PROJECT_SRC})
    file(GLOB PROJECT_SRC
         "*.h"
         "*.cpp"
    )


    Спасибо!
    Написано
  • Как исправить "неопределённая ссылка на «http::server::server::run()"?

    @maksimwork1980 Автор вопроса
    Да, это определение есть в исходниках.
    Надо ли что то дополнительно прописать в CMakeLists.txt ?
    Например это не изменило ситуацию.
    target_include_directories(test PRIVATE ${YOUR_DIRECTORY})
    Написано
  • Как исправить "неопределённая ссылка на «http::server::server::run()"?

    @maksimwork1980 Автор вопроса
    Сергей Соловьев,
    Makefile
    # CMAKE generated file: DO NOT EDIT!
    # Generated by "Unix Makefiles" Generator, CMake Version 3.22
    
    # Default target executed when no arguments are given to make.
    default_target: all
    .PHONY : default_target
    
    # Allow only one "make -f Makefile2" at a time, but pass parallelism.
    .NOTPARALLEL:
    
    #=============================================================================
    # Special targets provided by cmake.
    
    # Disable implicit rules so canonical targets will work.
    .SUFFIXES:
    
    # Disable VCS-based implicit rules.
    % : %,v
    
    # Disable VCS-based implicit rules.
    % : RCS/%
    
    # Disable VCS-based implicit rules.
    % : RCS/%,v
    
    # Disable VCS-based implicit rules.
    % : SCCS/s.%
    
    # Disable VCS-based implicit rules.
    % : s.%
    
    .SUFFIXES: .hpux_make_needs_suffix_list
    
    # Command-line flag to silence nested $(MAKE).
    $(VERBOSE)MAKESILENT = -s
    
    #Suppress display of executed commands.
    $(VERBOSE).SILENT:
    
    # A target that is always out of date.
    cmake_force:
    .PHONY : cmake_force
    
    #=============================================================================
    # Set environment variables for the build.
    
    # The shell in which to execute make rules.
    SHELL = /bin/sh
    
    # The CMake executable.
    CMAKE_COMMAND = /usr/bin/cmake
    
    # The command to remove a file.
    RM = /usr/bin/cmake -E rm -f
    
    # Escaping for special characters.
    EQUALS = =
    
    # The top-level source directory on which CMake was run.
    CMAKE_SOURCE_DIR = /home/maxsmg/Projects/Boost/HttpServer
    
    # The top-level build directory on which CMake was run.
    CMAKE_BINARY_DIR = /home/maxsmg/Projects/Boost/HttpServer/cmake-build
    
    #=============================================================================
    # Targets provided globally by CMake.
    
    # Special rule for the target edit_cache
    edit_cache:
    	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..."
    	/usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
    .PHONY : edit_cache
    
    # Special rule for the target edit_cache
    edit_cache/fast: edit_cache
    .PHONY : edit_cache/fast
    
    # Special rule for the target rebuild_cache
    rebuild_cache:
    	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
    	/usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
    .PHONY : rebuild_cache
    
    # Special rule for the target rebuild_cache
    rebuild_cache/fast: rebuild_cache
    .PHONY : rebuild_cache/fast
    
    # The main all target
    all: cmake_check_build_system
    	$(CMAKE_COMMAND) -E cmake_progress_start /home/maxsmg/Projects/Boost/HttpServer/cmake-build/CMakeFiles /home/maxsmg/Projects/Boost/HttpServer/cmake-build//CMakeFiles/progress.marks
    	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all
    	$(CMAKE_COMMAND) -E cmake_progress_start /home/maxsmg/Projects/Boost/HttpServer/cmake-build/CMakeFiles 0
    .PHONY : all
    
    # The main clean target
    clean:
    	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean
    .PHONY : clean
    
    # The main clean target
    clean/fast: clean
    .PHONY : clean/fast
    
    # Prepare targets for installation.
    preinstall: all
    	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall
    .PHONY : preinstall
    
    # Prepare targets for installation.
    preinstall/fast:
    	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall
    .PHONY : preinstall/fast
    
    # clear depends
    depend:
    	$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
    .PHONY : depend
    
    #=============================================================================
    # Target rules for targets named main
    
    # Build rule for target.
    main: cmake_check_build_system
    	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 main
    .PHONY : main
    
    # fast build rule for target.
    main/fast:
    	$(MAKE) $(MAKESILENT) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/build
    .PHONY : main/fast
    
    main.o: main.cpp.o
    .PHONY : main.o
    
    # target to build an object file
    main.cpp.o:
    	$(MAKE) $(MAKESILENT) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/main.cpp.o
    .PHONY : main.cpp.o
    
    main.i: main.cpp.i
    .PHONY : main.i
    
    # target to preprocess a source file
    main.cpp.i:
    	$(MAKE) $(MAKESILENT) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/main.cpp.i
    .PHONY : main.cpp.i
    
    main.s: main.cpp.s
    .PHONY : main.s
    
    # target to generate assembly for a file
    main.cpp.s:
    	$(MAKE) $(MAKESILENT) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/main.cpp.s
    .PHONY : main.cpp.s
    
    # Help Target
    help:
    	@echo "The following are some of the valid targets for this Makefile:"
    	@echo "... all (the default if no target is provided)"
    	@echo "... clean"
    	@echo "... depend"
    	@echo "... edit_cache"
    	@echo "... rebuild_cache"
    	@echo "... main"
    	@echo "... main.o"
    	@echo "... main.i"
    	@echo "... main.s"
    .PHONY : help
    
    
    
    #=============================================================================
    # Special targets to cleanup operation of make.
    
    # Special rule to run CMake to check the build system integrity.
    # No rule that depends on this can have commands that come from listfiles
    # because they might be regenerated.
    cmake_check_build_system:
    	$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
    .PHONY : cmake_check_build_system
    Написано
  • Будут ли сервера обнаруживать настоящую страну VPN, если вместе с иностранным IP использовать русский домен?

    @maksimwork1980 Автор вопроса
    Должен работать VPN, или обнаружение настоящей страны?
    Написано
  • Можно ли в параметр функции передать ссылку на объект?

    @maksimwork1980 Автор вопроса
    лучше начните с изучения типов данных и прочих основ

    Jacen11, хорошая идея. Всем спасибо!
  • Можно ли в параметр функции передать ссылку на объект?

    @maksimwork1980 Автор вопроса
    mayton2019, так и есть, в яве новичёк.
    Если не различает, то что в приведенном выше примере?