Как завернуть весь HTTP и HTTPS трафик Windows в proxy server. Что важно знать выбирая прокси

Вайбер на компьютер 01.04.2019
Вайбер на компьютер

Уже давно мечтаю об ОС с полностью анонимным трафиком. До недавнего времени я использовал следующий способ.
Виртуальная машина, на которую ставится анонимизируемая система, связана через локальную сеть только с хостовой системой (режим Host-only виртуального сетевого адаптера), на которой стоит Tor. Внутри гостевой ОС у приложений, которым нужен интернет, прописывался адрес прокси-сервера Polipo, установленного вместе с Tor на хостовой системе. Таким образом, выход в интернет с гостевой системы возможен только через Tor. Однако у этого способа есть недостаток. Для каждого приложения необходимо прописывать прокси, к тому же не все приложения имеют такие настойки. Прибегать к использованию программ-проксификаторов не хотелось, т.к. такое решение мне показалось не совсем «естественным». Ниже я расскажу о более «естественном» способе ТОРификации.

После напряженного гугления наткнулся на софтину tun2socks. Используя устройство TUN/TAP (виртуальный сетевой адаптер), она направляет весь tcp и udp трафик через SOCKS-прокси. Для системы это выглядит как Ethernet-адаптер, подключенный к роутеру, раздающему интернет. Вполне «естественно», не правда ли?
Нам понадобятся:

  • BadVPN (внутри архива присутствует tun2socks)
  • OpenVPN (для создания устройства TUN/TAP).

Итак, приступим к настройке:

  • Устанавливаем Windows на вашу любимую виртуальную машину. В настройках сетевого адаптера виртуальной машины выставляем режим Host-only (это означает, что из гостевой ОС по сети будет доступна только хостовая ОС).
  • Назначаем фиксированные IP-адреса для адаптеров в хостовой и гостевой системах, например 192.168.220.1 и 192.168.220.2 соответственно.
  • Устанавливаем на хостовую ОС Vidalia Bundle. Затем открываем файл torrc (%USERPROFILE%\AppData\Local\Vidalia) и дописываем в конец следующие строки:

    SocksListenAddress 192.168.220.1 # Заставляем тор слушать порт 9050 на адресе 192.168.220.1
    DNSListenAddress 192.168.220.1 # Вешаем встроенный в Tor DNS-сервер на указанный адрес
    DNSPort 53 # Указываем на каком порту будет висеть DNS-сервер (почему-то без этой настройки тор выдает ошибку)

    Запускаем Tor.

  • На гостевой системе устанавливаем OpenVPN. После этого в сетевых подключениях должен появится TUN/TAP сетевой адаптер со статусом «сетевой кабель не подключен». Зададим ему какое-нибудь имя покороче, например tor.
  • Распаковываем куда-нибудь badvpn. В папке bin находим файл badvpn-tun2sock.exe и запускаем его со следующими параметрами:
    --tundev --netif-ipaddr 10.0.0.2 --netif-netmask 255.255.255.0 --socks-server-addr 192.168.220.1:9050

    Здесь:

    • это строка tap0901:tor:10.0.0.1:10.0.0.0:255.255.255.0, где tor – название нашего TUN/TAP адаптера, 10.0.0.1 – адрес адаптера, 10.0.0.0 и 255.255.255.0 – адрес и маска подсети.
    • 10.0.0.2 – адрес виртуального роутера, который выступает в качестве интернет шлюза.
    • 255.255.255.0 – маска подсети.
    • 192.168.220.1:9050 адрес прокси, установленного на хостовой ОС. В нашем случае роль прокси выполняет Tor.

    Поле запуска tun2sock, статус TUN/TAP адаптера должен сменится на «Подключено».
    Теперь в свойствах этого адаптера необходимо настроить шлюз и DNS-сервер:
    В роли DNS-сервера у нас выступает DNS, встроенный в Tor (192.168.220.1:53), а в роли шлюза, как уже было сказано выше, виртуальный роутер (10.0.0.2).

  • Для того чтобы заработали скрытые сервисы тор, в torrc необходимо добавить следующие строки:

    AutomapHostsOnResolve 1
    AutomapHostsSuffixes .onion
    VirtualAddrNetwork 10.192.0.0/10

  • Автор tun2socks пишет о том, что эта программа поддерживает также перенаправление udp, однако его не поддерживает тор. Подозреваю, что именно из-за этого мне не удалось воспользоваться WebICQ.
    На этом все. Анонимного вам интернета.

    О ProxyCap

    ProxyCap – программное обеспечение, которое легко перенаправит весь сетевой трафик вашего компьютера через прокси сервер или цепочку прокси. ProxyCap обладает большим количеством функций и позволяет туннелировать запросы любой программы.

    Уникальная особенность ProxyCap в том, что он может работать с протоколами SOCKS 4/5, HTTP/HTTPS прокси и SSH-соединениями, поддерживает авторизацию в протоколах. Имеется встроенный чекер для проверки работы. Приложение автоматически запускается при старте операционной системы и находится в трее.

    ProxyCap позволяет создавать цепочки из прокси смешанных типов – Socks , https , SSH . Программа поддерживает использование цепи до 16 прокси. Для удобной работы в ProxyCap имеется возможность создать гибкий набор правил для роутинга соединений, где можно вручную задать собственные правила туннелирования трафика по таким параметрам как: приложение, IP -адрес, порт, домен или протокол (TCP / UDP ).

    ProxyCap поддерживает перенаправление всех DNS запросов через прокси, что защищает от утечки DNS и скрывает ваше реальное местонахождение.

    Программа ProxyCap работает под операционными системами семейства Windows (х32 и х64), Mac OS Х и Windows Mobile . Успешно работает с популярными приложениями: FireFox , Chrome , Opera , Internet Explorer , Safari , Outlook , Pidgin , PSI , а так же с приложениями в Metro Style системы Windows 8 (такие как Windows Store и Metro версия Internet Explorer ).

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

    Программа имеет бесплатный 30-дневный срок использования. Вы можете скачать ее по ссылке:

    Получение прокси с панели управления SOCKS Admin

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

    1. Откройте страницу и войдите в свой аккаунт, чтобы получить доступ к админ панели.

    2. После выполнения входа открывается страница управления Socks . Отсюда вы получаете доступ к прокси серверам через опцию Proxy Search (Поиск прокси) или List Proxies (Список прокси). На странице отображается информация о количестве прокси серверов, доступных в данный момент, а также данные вашего аккаунта (Account Settings ).


    3. Нажмите кнопку Proxy Search . Откроется окно со списком стран и количеством прокси в них.


    4. Нажмите на страну, прокси серверы которой вы хотите использовать. Результаты выводятся в отдельном окне. Отображаются данные прокси серверов: страна, штат, город, сеть, время работы и скорость.


    5. При нажатии на имя хоста появляется всплывающее окно с дополнительными сведениями о прокси сервере. Для просмотра IP и порта прокси нажмите click here to view .

    6. Подождите несколько секунд, пока завершится проверка прокси сервера, после чего появляется окошко (см. ниже). Скопируйте IP и порт прокси и используйте эти данные в работе с ProxyCap .

    Запуск прокси в браузерах через программу ProxyCap , тестирование прокси.

    1. Запустите приложение ProxyCap .


    2. После первого запуска мы увидим окно настроек и добавления прокси. Нажмите New proxy server , чтобы добавить наш прокси. В графе Type - необходимо указать протокол SOCKS 5


    3. Для сохранения изменений нажмите OK .

    4. Теперь вы можете нажать кнопку Proxy check , чтобы проверить добавленный нами прокси.


    5. После этого перейдите во вкладку Rules , чтобы добавить новое правило для туннелирования трафика. Нажимаем Add new Rule
    В графах:
    - Rule Action выбираем - Redirect throught proxy
    - Задаем наш прокси в графе proxy .
    - Ставим галочку Resolve names remotely для перенаправления всех DNS запросов на socks сервер. Это нужно для защиты от утечки DNS.
    - Отмечаем галочкой протоколы TCP и UDP .

    (По умолчанию правило задает туннелирование для всех приложений и диапазонов IP/port. Но вы можете сделать свои настройки и вручную выбрать программы, которые будут работать через этот прокси. Таким образом различные программы можно заставить работать через разные прокси одновременно)


    6. Нажимаем OK , чтобы сохранить все настройки.
    Теперь мы можем запустить любой браузер и проверить работу приложения ProxyCap.
    Чтобы проверить наш IP-адрес и DNS, мы воспользуемся сервисом: http://IPleak.com/


    Как можно видеть, IP -адрес тот, который вы ввели в окне настроек ProxyCap . Происходит туннелирование SOCKS v 5 через программу ProxyCap .

    Знакомство с ProxyCap

    Вот как выглядит ProxyCap при первом запуске.


    До момента начала работы с программой окно пустое. Ознакомимся с графическим интерфейсом и конфигурацией программы.

    Во вкладке Proxies можно добавить новые прокси (New proxy server ), удалить прокси (Delete proxy ), изменить настройки прокси (Properties ), проверить прокси (Check proxy ), а также задать прокси для работы по умолчанию (Set as default ).


    Во вкладке Chains находятся настройки для цепочек прокси:


    New Proxy Chain – позволяет создавать цепочки из разных прокси, через которые ProxyCap будет туннелировать трафик .

    Также в этой вкладке можно изменять (Edit ), удалять (Delete ) и проверять (Check ) сохраненные цепочки прокси.

    Конфигурация экспортируется и импортируется в программу во вкладке Ruleset .



    Во вкладке Rules можно управлять различными правилами для роутинга интернет соединений и добавлять новые с помощью мастера настроек (New rule wizard ).


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



    Для доступа к меню программы ProxyCap необходимо нажать правой кнопкой на ее иконку в трее.

    Через меню можно включить и отключить ProxyCap (Enable/Disable Proxycap ), просмотреть мануалы по работе с программой (ProxyCap Help ), зайти в меню настроек прокси (Configuration ), а также открыть окно мониторинга соединений и логов (Status and Logs ).

    Последнее время участились вопросы, связанные с тем, что же такое прокси сервер, как безопасно путешествовать по интернету, скрыв свой IP , и как попасть на заблокированные на работе сайты (всё таки хитрые они, пользователи, ибо хотят обмануть одного админа с помощью другого админа:)).

    Для написания данной статьи мы взяли несколько IPv4-прокси у проверенного нами сервиса , чтобы наглядно продемонстрировать все настройки в виде пошаговой инструкции.

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

    Что такое прокси?

    Вся терминология (но не вся статья) написана опираясь на Википедию или попросту скопирована с соответствующего там материала . Сделано это с целью экономии времени, а так же с точки зрения целесообразности ибо я не вижу смысла перефразировать то, что уже прекрасно написано и почти полностью совпадает с тем, что я хотел написать.

    Прокси сервер (от англ. proxy - «представитель, уполномоченный») - это служба в компьютерных сетях, позволяющая клиентам выполнять косвенные запросы к другим сетевым службам.

    Сначала клиент подключается к такому серверу и запрашивает у него какой-либо ресурс, расположенный на другом сервере в сети\интернете. Затем сервер либо подключается к указанному серверу и получает ресурс у него, либо возвращает ресурс из собственного кеша (тобишь с уже сохраненного к себе ресурса) (если конечно у него есть этот кеш).

    Для чего применяется прокси сервер?

    Чаще всего оные применяются для следующих целей:

    • Обеспечение доступа с компьютеров локальной сети в Интернет;
    • Кеширование данных : если часто происходят обращения к одним и тем же внешним ресурсам, то можно держать их копию на сервере и выдавать по запросу, снижая тем самым нагрузку на канал во внешнюю сеть и ускоряя получение клиентом запрошенной информации;
    • Сжатие данных : сервер загружает информацию из Интернета и передаёт информацию конечному пользователю в сжатом виде. Такие прокси серверы используются в основном с целью экономии внешнего трафика;
    • Защита локальной сети от внешнего доступа: например, можно настроить сервер так, что локальные компьютеры будут обращаться к внешним ресурсам только через него, а внешние компьютеры не смогут обращаться к локальным вообще (они «видят» только такой сервер);
    • Ограничение доступа из локальной сети к внешней: например, можно запретить доступ к определённым веб-сайтам (что, собственно, и делаем мы, злые админы:)), ограничить использование интернета каким-то локальным пользователям, устанавливать квоты на трафик или полосу пропускания, фильтровать рекламу и вирусы;
    • Анонимизация доступа к различным ресурсам. Прокси сервер может скрывать сведения об источнике запроса или пользователе. В таком случае целевой сервер видит лишь информацию о сервере, например, IP-адрес, но не имеет возможности определить истинный источник запроса. Существуют также искажающие прокси-серверы , которые передают целевому серверу ложную информацию об истинном пользователе;
    • Ну и он позволяет защищать клиентский компьютер от некоторых сетевых атак.

    Прокси-серверы делятся на открытые и закрытые. Открытые - это те, к которым может получить доступ любой пользователь сети интернет. Закрытые, само собой, наоборот.

    В этой статье нас интересуют открытые прокси, а посему рассмотрим их поближе.

    Открытый прокси - анонимный и обычный

    Открытый прокси-сервер, - это сервер, который позволяет практически любому узлу сети (клиенту, тобишь, скажем, Вам) обращаться через себя к другим узлам сети (на всякие там сайты или еще куда).

    Для справки: говоря сеть, я подразумеваю не только локальную, но и сеть Интернет.

    Открытые прокси так же делятся на два подвида:
    Анонимные и обычные.

    • Анонимные , - это те, которые скрывают реальные IP -адреса клиентов и тем самым предоставляют возможность анонимно пользоваться услугами сети Интернет.
    • Обычные , - это обычные, они не скрывают ничего ни от кого и выдают Ваш реальный IP и все остальные типичные данные.

    Помимо анонимности, в случае разницы в цене трафика в разных сетях, открытый прокси-сервер, находящийся в «своей» сети, может использоваться для получения более дорогого трафика из «чужой» сети. Так, например, многие российские пользователи, которым на работе запрещён доступ к иностранным сайтам, могут всё-таки получить такой доступ через открытый прокси-сервер.

    Скорость работы прокси

    Что касается скорости работы, - она значительно меньше, ведь, по сути, трафик, в виде запроса, идет через дополнительный сервер, а это задержки значительно большие чем при запросе напрямую. Открытыми прокси пользуются, как правило, для совершения какой-то конкретной операции, когда важна не скорость, а достижение цели (доступ к какому-то ресурсу и тд и тп).

    Как Вы понимаете, открытый прокси представляет некоторую проблему, поскольку подобная анонимность может позволить безнаказанно нарушать закон и условия предоставления услуг в Сети, а посему, как следствие, сайты некоторых Интернет-сервисов запрещают доступ к своим ресурсам с открытых прокси-серверов (например, - это почтовые службы Яндекса).

    Ладно, теория изложена. Приступим к практике.

    Как работать через прокси сервер?

    Способов работать через прокси несколько: это либо путем настроек сети (глобально), либо путем настроек программ (точечно, т.е, скажем только для ).

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

    Сразу хочу сказать, что вариант глобального изменения настроек, прямо скажем, не совсем глобальный. Дело в том, что в Windows нету понятия глобального прокси как такового, есть лишь возможность настроить "условно-глобальный вариант", т.е только для таких программ, которые умеют брать настройки прокси из Internet Explorer ’а.. Для всех прочих придется указывать желание использовать прокси в их собственных (программ) настройках.

    Для начала нам надо найти открытый прокси-сервер. Сделать это можно простым запросом в : "список анонимных прокси " или "список открытых анонимных прокси " или "open proxy list " или что там еще кому в голову придет. Сайтов со списками прокси-серверов довольно много, правда далеко не все из них работают, посему придется помучиться при подборе.

    Что важно знать выбирая прокси

    Смотрите:

    • Важно, чтобы он работал;
    • Важно понимать, что чем выше значение ping , если оно указано, тем медленнее будут идти запросы к прокси и обратно и, как следствие, тем медленнее у Вас будет работать загрузка страниц;
    • Важно понимать, что адрес 127.0.0.1:80 означает, что 127.0.0.1 - это адрес прокси сервера, а 80 - это его порт;
    • Страна, указанная напротив прокси сервера (если опять же она указана), означает месторасположение сервера, т.е. фактически для всех Вы будете как бы из этой страны ибо ваш IP будет IP выделенный прокси. Ну и, само собой, удаленность страны от Вашей влияет на пинг до сервера;
    • Не все они одинаково полезны ибо все они имеют разные настройки и могут допускать Вас далеко не ко всем ресурсам (например, США-сервер может пускать Вас только на com-сайты и тд и тп), так и сами ресурсы могут не допускать Вас, заподозрив, что Вы обращаетесь к ним через открытый прокси-сервер.

    Пинг до прокси-сервера и вообще существование чего либо по найденному Вами адресу можно проверить сделав следующее: Пуск - Выполнить - cmd - Ок . В появившимся окне (консоли) надо ввести "ping пробел адрес сервера " и нажать кнопочку enter . Пример:
    ping 127.0.0.1:80
    Если сервер доступен, то пройдет 4 пакета (может поменьше), которые покажут, собственно, пинг, а наличие пинга подтверждает существование чего бы то ни было по указанному IP .
    Если недоступен, то не пройдет ничего и никуда.

    Как пустить трафик через прокси

    Найдя таки работающий сервер нам нужно как-то указать компьютеру, что, собственно, мы хотим гнать трафик через него. Сделать это можно двумя способами (третий не совсем способ), имеющими принципиальное отличие:

    Глобальный способ
    Можно пустить весь трафик компьютера через прокси, т.е. задать глобальную настройку. В этом случае ВСЕ программы так или иначе работающие с интернетом (браузер, аська, фтп и тд и тп) будут обращаться через него.

    Чтобы это сделать заходим: Пуск - Настройка - Панель управления - Свойства обозревателя - Подключения - Настройка сети . Там ставим галочку "использовать прокси-сервер", прописываем адрес и порт, жмем ОК .

    Важно внимательно читать галочку, ибо там написано, что не применяется для удаленных и VPN -соединений. Т.е. в случае, если у Вас один из этих типов соединений (например, корбина) - ничего не выйдет.
    Далее следует показать локальным службам. В зависимости от операционной системы, в которой Вы работаете в дайте команду:

    В Windows XP :

    В Windows постарше :

    netsh winhttp import proxy source=ie

    Итог будет таким:

    Локальный способ
    Почти в каждой программе в настройках есть возможность указать proxy . Соответственно, каждая программа в которой Вы укажете его будет работать через этот самый протокол, а остальные будут обращаться к интернету как обычно, напрямую. Удобно тем, что если Вам не надо никакой анонимности нигде кроме веб-страниц или аськи, то, собственно, все это можно настроить.

    Ну или, как вариант, можно сконфигурировать работу разных программ через разные прокси. Где настраивать? У каждой программы в своём месте, но найти в общем-то не сложно. В Mozilla FireFox настройки обитают по адресу "Инструменты - Настройки - Дополнительно - Сеть - Соединение - Настроить "

    Полумера или расширение
    Если Вам надо попасть на страницу, которая заблокирована по каким-либо причинам или Вы не хотите светить на этой странице свой IP , но лень искать и настраивать прокси, то Вы можете воспользоваться этаким сайтом или расширением (вроде );

    Можно использовать VPN . Цикл статей на эту тему живет .

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

    Послесловие

    Если честно, то мне сложно представить человека, который будет пользоваться сим дабы скрыть свой IP и анонимно путешествовать по интернету.

    Такой способ самозащиты несколько попахивает паранойей или недобрыми замыслами, но всё же.. Всё же знать о об этом полезно хотя бы потому, что через них зачастую организуются локальные сети (офисные, учебные, домашние и тд), да и вообще мало ли зачем, когда и где это может пригодится.

    Ну и, да, это бывает полезно, если вдруг Вас где-то забанили по IP и надо втихаря проскользнуть на сайт.. Тогда да:)

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

    На просторах интернета, блогах и форумах, довольно часто можно встретить вопросы такого типа: как запустить программу через прокси , игра через прокси, как играть через прокси и т.д. С играми как-то не очень надо, а вот в плане анонимности вопрос довольно интересный и актуальный, так как далеко не все программы имеют возможность выходить в сеть и работать через прокси , а уж тем более через сокс5 прокси.

    Прежде чем мы перейдем к настойкам проксификатора, советуют прочесть статью « » какие бывают виды и зачем они нужны.

    Запуск программ через прокси

    Так-как наш сайт параллельно с другими темами рассматривает вопросы анонимности в сети, я решил написать данную статью. В этой статье я опишу один из способов запуска программ через прокси, при помощи программы проксификатора Proxifier .

    Для начала скачаем и установим программу. Скачать программу . Для запуска программ через прокси на понадобятся сами прокси. Найти свежие, рабочие прокси можно на , Это хороший сайт, там можно найти много чего интересного.

    Настройка программы Proxifier

    Теперь можно приступать к настройке Proxifier. Первым делом нужно установить настройки для прокси-сервера (нескольких или только одного в зависимости от необходимости). В меню выбираем в разделе «Profile» вкладку «Proxy Servers».

    В появившемся окне нажимаем кнопку «Add»


    Просмотреть файл Библиотека CMD, реализует настройку микроконтроллера и управление вашей программой через терминал.
    Основная задача библиотеки, это прием пользовательских команд через UART интерфейс, их обработка и выполнение пользовательского кода, связанного с той или иной командой.


    Подключение библиотеки
    #include






    < argc) { for (uint8_t i = 0; i < argc; i++) { Serial.printf("%i. %s\n", i, argv[i]); } } } Пример вызова пользовательской функции без параметров и с ними





    Автор Kitsum Добавлен 05.12.2018 Категория Библиотеки


    Основная задача библиотеки, это прием пользовательских команд через UART интерфейс, их обработка и выполнение пользовательского кода, связанного с той или иной командой.
    Данная библиотека позволяет реализовать:
    Управление микроконтроллером Любую настройку, будь то WiFi, другие библиотеки или часть Вашей программы Вызывать Ваши задачи (функции) из терминала по команде и передавать им требуемые параметры Использовать контроллер в качестве шлюза между датчиками и программами на PC Внимание: любая команда, передаваемая в терминал обязана заканчиваться символом перевода строки "\n".
    Подключение библиотеки
    #include Инициализация объекта, к которому мы будем обращаться для добавления команд. В качестве параметра объекту необходимо передать указатель на объект Serial или любой другой схожий по типу интерфейс.
    cmd command(&Serial); В функции Setup описываем какие команды требуется обрабатывать. Например, по команде "test" вызывать пользовательскую функцию с именем "myFunctionName". Имя пользовательской функции может быть абсолютно любым.
    void Setup() { Serial.begin(115200); command.add("test", myFunctionName); } Пользовательская функция будет вызываться каждый раз, когда по интерфейсу Serial поступит команда "test". Если команда будет передана с параметрами, то эти параметры будут переданы в качестве аргументов пользовательской функции.
    В функции loop должна находится команда вызова обработчика.
    void loop() { command.handleEvents(); } Пользовательская функция обязана соответствовать ряду требований:
    Не возвращать никакого результата (быть объявленной с типом void) Принимать в качестве первого аргумента переменную с типом byte в которой будет храниться число равное количеству переданных параметров Принимать в качестве второго параметра переменную с типом char** в которой будет храниться указатель на массив со всеми указателями (char*) на переданные параметры void myFunctionName(byte argc, char** argv) { /* ... */ } Функция всегда должна иметь такой вид, даже если не подразумевается, что ей будут передаваться какие-либо параметры.
    Чтобы перебрать все переданные параметры и вывести их в консоль, можно воспользоваться следующим примером
    void myFunctionName(byte argc, char** argv) { if (0 < argc) { for (uint8_t i = 0; i < argc; i++) { Serial.printf("%i. %s\n", i, argv[i]); } } } Пример вызова пользовательской функции без параметров и с ними
    # test No parameter was passed # test p1 p2 p3 p4 p5 0. p1 1. p2 2. p3 3. p4 4. p5 Помните, что параметры представлены в виде указателей и работать с ними нужно как с обычными переменными не получится т.к указатель содержит не значение переменной (переданный параметр), а указатель на ту область памяти микроконтроллера в которой это значение находится.
    Чтобы сравнить два значения, например, параметр под индексом 0 (идет первым в списке) с каким-либо значением в программе, воспользуйтесь функцией strcmp, которая возвращает целочисленное значение, указывающее на лексическое расхождение строк. Если строки равны, то возвращаемое значение равно 0.
    if (!strcmp(argv, "wifi")) { Serial.println(F("Первый аргумент WiFi")); } else { Serial.println(F("Первый аргумент НЕ WiFi!!!")); } Для копирования значения указателя в другую переменную с типом char можно воспользоваться функцией strcpy
    char myVar; strcpy(myVar, argv); if (myVar == "123456") { Serial.prinln(F("ok")); } Также можно обернуть указатель объектом String и получить весь функционал этого объекта, который будет содержать значение параметра
    String param1(argv); // String param1 = argv; Serial.printf("argv length: %i\n", param1.length()); Serial.printf("argv is integer?: %s\n", param1.toInt() ? "YES" : "NO"); if (param1 == "qwerty") { Serial.println(F("Hello QWERTY!")); } С библиотекой идут несколько примеров, в том числе и пример конфигурации WiFi в режиме STA.


    Описанный ниже велосипед является продолжением одной из моих статей на другом, интересном мне, ресурсе. Продолжение и все последующие обновления будут происходить только на сайт
    Для начала, хочу процитировать самого себя и тем самым дать пояснения: почему, зачем и для кого это нужно.
    Данная тема получила большую популярность у коллег и не раз выручила Вашего покорного слугу, не дав разгореться стулу на котором он сидит.
    Но имеющегося функционала стало не хватать, требовалось не только слышать и иногда видеть, а еще получать удаленный доступ к оборудованию и лицезреть всю картину в целом.
    Задача поставлена, идем исполнять, но с начало забегу немного вперед и продемонстрирую текущий функционал.
    Общее окно программы переработано и теперь отображает список всех групп из Zabbix с их хостами. Список активных триггеров переехал в нижнюю часть окна и отображает дополнительную информацию об узлах с которыми не все гладко. Сам список можно увеличивать, если все совсем плохо, или уменьшать если выражение "Хьюстон у нас проблемы" Вы слышите только в фильмах. Также появились цветные маркеры важности триггера. По двойному клику по активному триггеру мы перемещаемся в соответствующую группу где находится проблемный узел.
    Не забыли и про то, ради чего вся начальная песня и писалась - трей с всплывающими оповещениями и звуковым сигналом. Основное окно сворачивается именно туда, чтобы не залеживаться на панели где ценится каждый свободный пиксель.
    Хосты в группах стали кликабельны, правда пока только ПКМ, и имеют всплывающее меню позволяющее выполнять банальные действия:
    Подключение к узлу:
    Telnet SSH RDP VNC Проверка соединения:
    Ping Traceroute Естественно его можно расширить, добавив всяких вкусностей по мере возрастания аппетита IT отдела.
    Программа по прежнему имеет серверную и клиентскую часть, что позволило организовать кэширование запросов и осуществлять оповещения в момент определения проблемы сервером, а не по таймеру обновления, как это организовано в dashboard zabbix. Раньше узнали о проблеме, раньше приступили к устранению. Естественно и устаревшие триггеры убираются также оперативно.
    Также это позволило избавить программу от информации о доступе к серверу, что мне кажется не приемлемым для оповещалки. Чем меньше дырок, тем крепче сон.
    Приступим к реализации.
    Ну и естественно, Ваш покорный слуга еще не научился писать на C++ ничего более сложного чем "Hello World", поэтому клиент и сервер будет написан на PHP. За исключением того момента, что клиентская часть (при помощи магии Гарри Поттера) станет бинарным файлом. Бог с ним, серверная часть не доступна обывателю, а это самое важное!!!
    Для начала, нужно придумать безопасный и понятный алгоритм не нагружающий сервер т.к клиентов может быть 100и или 1000и, всякое бывает. Все не безопасные команды обязаны выполняться на сервере без участия клиента. Дальнейшая работа клиента: обработка данных, выполнение действий с триггерами и т.п должно выполняться только у клиента, не затрагивая сервер.
    При обращении клиента к серверу по http происходит проверка его ip на наличие в списках разрешенных. В противном случае показываем фигу. Проверяем, наличие актуального кеша, и отдаём его. Если кеша нет, генерируем новый. Если запрос прилетел от zabbix: принудительно считаем кеш устаревшим, генерируем новый и после этого рассылаем всем клиентам оповещения по UDP протоколу. Это позволит свести расход ресурсов базы данных к нулю т.к все клиенты ринутся забирать новые данные, а все уже в кеше. Супер, все дешево и сердито.
    Серверная часть представляет из себя файл index.php где-то на Вашем web сервере. Актуально для Zabbix 2.4 (скорее всего будет актуальна и для последующих версий, будем проверять по мере возрастания аппетита).
    Для дополнительной безопасности рекомендую создать отдельную учетную запись в базе данных с правами только на чтение и только к базе zabbix. Это актуально в наши дни.
    Переходи в zabbix
    Первым делом переходим в Настройка -> Действия -> Источники события: Триггеры и создать новое действие. Назовем случайным образом, например Report problems to ZabbixTrigger.
    В условиях выставляем
    Значение триггера = ПРОБЛЕМА Значение триггера = OK Это все необходимо, чтобы проблемы в GUI появлялись и исчезали точно именно тогда, когда это происходит в Zabbix (не путать с dashboard).
    Вкладка "Операции" должна выглядеть следующим образом. Естественно что путь до php скрипта должен быть вашим.
    Вуаля! Если Вы все сделали правильно (без кардинальных изменений), то я рад приветствовать нового ездока моего велосипеда. Поедем тандемом!
    Сам клиент прикреплен в конце поста.
    Для тех, кто читает титры в кинотеатре
    При запуске будет создан файл config.ini в корне программы. При необходимости, измените его настройки, благо их не много.
    url="http://zabbix/zabbix-gui" update="60" showalarm="20" Параметр url отвечает за http путь до скрипта на сервере, update за интервал (в секундах) обновления данных с сервера, а showalarm вроде как должен влиять на время отображения всплывающей подсказки в трее.
    Теперь немного структуры.
    В каталоге sounds находится звук оповещения о новом триггере, формат ogg Каталог icons содержит маркеры триггеров. trigger00 - для нормального состояния, а все последующие соответствуют начальным настройкам zabbix во вкладке Администрирование -> Общие раздел Важность триггеров. Можете изменить на свои цвета, программа все подхватит при перезагрузки. Ну и на закуску каталог ext, это как говорится для меломанов, содержит фри программы для обработки внешних действий клиента. Вы можете заменить их на свои при условии, что стандартные имена параметров запуска и их последовательность совпадают. PS: На этом все, спасибо тем кого это заинтересовало. Предлагайте свои идеи или способы доработки велосипеда. А если найдется программист на C++ так милости просим. В любом случае, функционал будет в дальнейшем расширяться.
    zabbixTrigger.zip


    Всем доброе время суток.
    Сегодня пойдет речь об одном из вариантов сбора информации о лицензиях операционных системах Windows и некоторого сопутствующего программного обеспечения. Для сбора будет использована утилита ProduKey, это далеко не идеальный вариант, но вполне приемлемый, если нет иных средств мониторинга, и требуется что-то быстро слепить на коленке без траты денег.
    И так, имеется группа компьютеров находящихся в домене, подсеть 10.10.10.0/24, ProduKey запускается от учетной записи администратора домена или администратора той ветки, к которой принадлежит подсеть.
    Программой можно пользоваться как в графическом интерфейсе, так и в консольном режиме. Последний вариант, лично для меня, более предпочтителен.

    ВАЖНО: нам требуется программа только на Английском языке т.к имена ключей использующихся в отчетах должны соответствовать именам ключей в PHP скрипте далее.
    В корне с программой создаем.bat файл со следующим содержимым
    produkey.exe /iprange 10.10.10.2 10.10.10.254 /sjson 10.10.10.0.json /WindowsKeys 1 /OfficeKeys 1 /SQLKeys 1 /IEKeys 0 /ExchangeKeys 1 /ExtractEdition 0 Используемые параметры
    /iprange - указывает диапазон адресов для сканирования /sjson - файл отчета необходимо сохранить в формате json /WindowsKeys 1 - собирать ключи операционных систем /OfficeKeys 1 - собирать ключи Office /SQLKeys 1 - собирать ключи SQL сервера /IEKeys 0 - НЕ собирать ключи IE /ExchangeKeys 1 - собирать ключи Exchange /ExtractEdition 0 - НЕ собирать расширенную информацию об операционной системе Это один из вариантов запуска, большее количество параметров описано на сайте разработчика.
    После того, как утилита закончит свою работу, она сохранит отчет в формате json в указанный нами файл. Можно использовать и другие форматы отчетов, но явного представления о количестве и качестве мы не получим. Программа только собирает данные, все остальные манипуляции с ними ложатся на плечи рядовых администраторов.
    Но не беда, на помощь нам приходит, уже затертый до дыр, Apache + PHP.
    Все файлы отчета помещаем на машину, где установлены эти ребята, и обязательно за пределами Web сервера. Сам PHP скрипт будет выглядеть следующим образом.


    Рекомендуем почитать

    Наверх