Архив рубрики: Публикации

Общие сведения о IEEE 802.3bt High Power PoE (Hi-PoE)

Power over Ethernet, также называемый PoE, является важной технологией, которая упрощает развертывание сети, позволяя кабелям Ethernet передавать электроэнергию по действующему соединению для передачи данных без необходимости в резервных линиях питания или розетках. С момента ратификации первого стандарта PoE в 2003 году технология PoE была модернизирована для поддержки более высокой мощности. На данный момент последним стандартом PoE является IEEE 802.3bt High Power PoE, который также упрощен как Hi-PoE.

Появление PoE высокой мощности

Спрос на новые технологии растет с расширением новых разнообразных приложений. В последние дни только те традиционные устройства с питанием (PD), как IP-телефоны, простые IP-камеры или внутренние точки беспроводного доступа, которые совместимы с предыдущими стандартами 802.11af/at, нуждались в добавлении PoE в сеть. Однако появление современных новых приложений, таких как светодиодное освещение, интеллектуальные здания и Интернет вещей (IoT), а также увеличение количества и типов конечных устройств предъявляют новые требования к более высокой пропускной способности и источникам питания, которые необходимы для источников питания. оборудование (PSE) может предоставить, с чем предыдущие стандарты не могли справиться.

Фактически, существуют также нестандартизированные методы, призванные выяснить проблемы, возникшие в последующие годы с момента появления стандарта 802.3af, но, к сожалению, эти методы несовместимы со стандартизированным оборудованием. К счастью, согласно большим ожиданиям, IEEE 802.3bt — стандарт высокой мощности PoE типа 4 мощностью до 100 Вт был поднят и, наконец, утвержден в качестве стандарта после нововведений, основанных на предыдущем PoE (802.3af), PoE + (802.3at) и типе 3 PoE ++ (802.3bt) до 60 Вт. Конкретная информация о высокомощном PoE 802.3bt типа 4 показана в следующей таблице:





названиеОписаниеГодЭлектроэнергия от PSEМощность, доступная для PDМин. Рейтинг кабеля для PoEПары Ethernet
PoE высокой мощности (Hi-PoE)802.3bt Тип 42018 г.От 90 Вт до 100 Вт71,3 ВтCat5e или выше4 пары

 

PoE высокой мощности для интеллектуальных зданий и Интернета вещей

Сама PoE уже некоторое время используется для типичных домашних и офисных приложений. Новая технология PoE, стандарт высокой мощности PoE ратифицированы в идеальное время для поддержки интеллектуальных зданий и Интернета вещей (IoT). Есть много новых приложений, которые используют преимущества PoE высокой мощности, например, инфраструктура здания со светодиодным освещением, сетевые камеры PTZ, системы контроля доступа в здания, информационные киоски, терминалы точек продаж и другие устройства с высоким энергопотреблением в интеллектуальном здании. или установки Интернета вещей. Обратите внимание, что это лишь некоторые из вариантов использования, которые поддерживает IEEE 802.3bt. Поскольку в офисных помещениях, на производственных предприятиях и в университетских городках будет появляться все больше новых устройств, будет процветать больше вариантов использования.

Основные преимущества PoE высокой мощности для перспективных приложений:

Гибкость и масштабируемость

Сетевое решение PoE мощностью 90–100 Вт позволяет пользователям легко расширить зону покрытия сети и мощность. Устройства Hi-PoE, такие как коммутаторы PoE высокой мощности, обратно совместимы со стандартами 802.3af/at PoE, что позволяет устройствам с питанием, совместимым со стандартами 802/3af/at/bt, гибко подключаться к коммутаторам. Кроме того, стандартная технология PoE гарантирует совместимость между поставщиками, что означает, что можно настроить PoE с различными сетевыми приложениями, если стандарты PoE, поддерживаемые устройствами, совместимы.

Экономия времени и средств

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

Надежность

Многие инфраструктуры PoE высокой мощности корпоративного уровня имеют возможности удаленного управления питанием, которые поддерживают адресацию IPv4 и IPv4/6, что обеспечивает простой и эффективный мониторинг и контроль устройств с питанием. Эта функция обеспечивает надежность сетей, особенно для интеллектуальных зданий или развертывания Интернета вещей по мере увеличения масштаба и сложности сети.

Коммутатор высокой мощности PoE в новую эру

Коммутаторы PoE, как метод конечного участка для добавления PoE в сеть, стали наиболее распространенным устройством, которое объединяет как часть сети, так и питание, и обеспечивает как Ethernet, так и питание для устройств с питанием. По мере популяризации нового стандарта PoE на рынке появляется все больше и больше коммутаторов PoE высокой мощности, таких как коммутатор PoE FS S5860-24XB-U, поддерживающий автоматическое определение мощности IEEE 802.3af/at/bt до 8 × 90 Вт на порт. Дальновидные приверженцы рассматривают инфраструктуры PoE высокой мощности как ключевые активы для создания интеллектуальных зданий и Интернета вещей. Устройства PoE PSE высокой мощности, в частности коммутаторы PoE высокой мощности, готовы оптимизировать интеллектуальные здания и устройства IoT и перепрофилировать их для удовлетворения будущих потребностей.



2020-11-17T20:28:17
Сети

Установить и настроить KVM в ArchLinux

KVM означает виртуальную машину на основе ядра. Это программное обеспечение позволяет пользователям запускать несколько виртуальных машин с разными операционными системами, избегая, таким образом, необходимости использовать более традиционные способы использования Virtualbox. KVM — это бесплатная программа с открытым исходным кодом, которая дорабатывалась и улучшалась за последние десять лет.

В этой статье показано, как установить и настроить KVM в вашей системе ArchLinux.

 

Часть 1: Установка KVM

Процедура установки KVM немного сложна, так как сначала необходимо проверить систему на наличие необходимых предпосылок.

 

Шаг 1. Проверьте поддержку виртуализации

Чтобы проверить, включена ли виртуализация на вашем ПК, введите следующую команду:

$ LC_ALL=C lscpu | grep Virtualization

 

Технические характеристики оборудования для запуска KVM: VT-x для процессоров Intel и AMD-V для процессоров AMD. Таким образом, если в вашей системе есть оборудование для создания виртуальных машин, вы увидите следующее в отображаемом тексте:

Virtualization: VT-x

или

Virtualization: AMD-V

 

Если ни один из них не отображается, это означает, что либо ваша система не может поддерживать виртуализацию, либо она отключена на компьютере разработчиками. В этом случае вы можете включить виртуализацию после перезапуска системы и входа в BIOS.

 

Шаг 2. Найдите модуль ядра

Чтобы узнать, есть ли в вашей системе модуль ядра для запуска KVM, введите следующую команду:

$ zgrep CONFIG_KVM /proc/config.gz

 

Если вы используете процессор AMD, вы должны увидеть CONFIG_KVM_AMD (или CONFIG_KVM_INTEL, если вы используете Intel), за которым следует = y или = m, тогда все готово.

 

Шаг 3: Установите KVM для ArchLinux

Запустите терминал и запустите следующий код для прямой установки KVM:

$ sudo pacman -S virt-manager qemu vde2 ebtables dnsmasq bridge-utils openbsd-netcat

 

Это должно установить KVM в вашей системе.

 

Шаг 4: активируйте и запустите KVM

Выполните следующую команду, чтобы активировать KVM:

$ sudo systemctl enable libvirtd.service

 

Далее введите следующее:

$ sudo systemctl start libvirtd.service

 

Затем перейдите в /applications и запустите диспетчер виртуальных машин.

 

Часть 2: Настройка KVM

Чтобы продолжить использование KVM со стандартной учетной записью Linux, вы можете сделать это, изменив файл libvirtd.conf. Чтобы получить доступ к файлу, введите следующее:

$ sudo pacman -S vim

$ sudo vim/etc/libvirt/libvirtd.conf

 

Между строками 80-90 должен быть термин «lineabout unix_sock_group». Вы измените это на libvirt.

# unix_sock_group = "libvirt"

 

Перейдите к строкам между 100-110 и измените unix_sock_rw_perms на = 0770

# unix_sock_rw_perms = "0770"

 

Затем введите следующий код, чтобы включить вашу стандартную учетную запись Linux в libvirt.

$ sudo usermod -a -G libvirt $ ( whoami )

 

$ newgrp libvirt

 

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

$ sudo systemctl restart libvirtd.service

 

Теперь вы можете использовать свою учетную запись Linux для использования KVM.

Чтобы создать виртуальные машины внутри виртуальной машины, включите вложенную виртуализацию, введя следующее:

$ sudo modprobe -r kvm_intel

$ sudo modprobe kvm_intel nested=1

 

Чтобы применить эти изменения, введите:

$ echo "options kvm-intel nested = 1" | sudo /etc/modprobe.d/kvm-intel.conf

 

Вывод

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



2020-11-17T13:33:55
ArchLinux

Могу ли я создать службу Windows и как это сделать?

Иногда вам нужно приложение или скрипт, чтобы продолжать работать вне зависимости от того, авторизованы вы на своем компьютере или нет. Может быть, это сценарий PowerShell для мониторинга портов или веб-сервер, на котором размещена страница в вашей домашней сети.

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

Что мне нужно для создания службы Windows?

Чтобы создать службу Windows в Windows 10, необходимо выполнить несколько предварительных условий:

  • Доступ администратора на компьютере
  • Что-то для запуска в качестве службы (сценарий PowerShell, программа и т.д.)
  • Установлен Non-Sucking Service Manager (NSSM)

Что такое менеджер службы без присасывания?

Да, вы не можете отказаться от такого имени, не объяснив его. Конечно, название неудачное, но оно точное. Диспетчер служб Non-Sucking (NSSM), пожалуй, самый простой способ создать службу Windows, которая будет одновременно высоконадежной и настраиваемой. Кроме того, это бесплатное программное обеспечение с открытым исходным кодом (OSS).

NSSM можно использовать через командную строку Windows или графический интерфейс пользователя (GUI). Это означает, что им может пользоваться каждый. NSSM можно использовать в любой версии Windows, начиная с Windows 2000 включительно. Существуют 32-битные и 64-битные версии. Если вы используете 64-битный компьютер, сначала попробуйте эту версию. Если это не сработает, вернитесь к 32-битной версии.

Вы можете скачать NSSM с веб-сайта, клонировать NSSM из Git или установить NSSM с помощью Chocolatey. Chocolatey — это менеджер пакетов для Windows. Способы установки будут зависеть от выбранного вами маршрута. См. Инструкции NSSM. В нашем примере мы загружаем с веб-сайта NSSM и устанавливаем его в C:WINDOWSsystem32.

Создание службы Windows с помощью NSSM

В этом примере мы создадим службу из сценария PowerShell для регистрации среднего процента загрузки ЦП.

  1. Скопируйте и сохраните этот сценарий как log-CPULoadPercentage.ps1 в месте, которое вряд ли будет доступно для кого-либо еще. Попробуйте создать каталог C:/Scripts и сохранить его там. Кроме того, создайте папку в скриптах под названием Logs. Обратите внимание, что путь к сценарию — C:/Scripts/log-CPULoadPercentage.ps1. Это понадобится вам позже.

Примечание. Все строки ниже, за которыми следует символ #, являются комментариями и не влияют на сценарий.

CLS #Необязательно. Мне нравится использовать это для очистки терминала при тестировании.



#Убедитесь, что у вас есть папка Logs в том же каталоге, что и этот скрипт

#Журнал - это место, где будут храниться записи.

Start-Transcript -Path "$PSScriptRootLogslog-CPULoadPercentage-$(get-date -f yyyy-MM-dd).txt" -Append



#Пока цикл продолжает работать, пока не будет остановлен вручную

While ($True){

     #Создает временную метку, чтобы узнать, когда было выполнено измерение

     $timeStamp = get-date -f yyyy-MM-h:mm:ss



     #Получает средний процент загрузки в это время, затем ждет 5 секунд, чтобы сделать это снова.

     $cpuLoadPercent = Get-CimInstance win32_processor | Measure-Object -Property LoadPercentage -Average | Select-Object Average;Start-Sleep -Seconds 5



     #Изолирует только среднее значение, чтобы не было странной строки @ {Average = 13}

     $cpuLoadPercent = $cpuLoadPercent.Average



     #записывает результаты на экран или, в данном случае, в журнал

     Write-Host "$timeStamp CPU Load Percentage $cpuLoadPercent"

}



Stop-Transcript

  1. Это можно сделать либо в командной строке Windows, либо в PowerShell. Откройте его как администратор.
  2. Введите команду nssm install logCPUAvg и запустите ее. Откроется окно установщика службы NSSM.

  3. Нажмите кнопку с многоточием рядом с полем «Путь:» и перейдите к файлу powershell.exe, который обычно находится в папке C:WindowsSystem32. Выберите powershell.exe. Путь: и каталог запуска: поля будут автоматически заполнены.

  4. Введите следующее в Arguments: поле: -ExecutionPolicy Bypass -NoProfile -File "C:PathToScriptget-Script.ps1", где последняя часть является путь к PowerShell сценария и имени сценария.

  5. Выберите вкладку Details. Введите то, что вы хотите, чтобы служба отображалась, как в диспетчере служб Windows, в поле Отображаемое имя:. Затем введите, что он делает, в поле Описание:. Тип запуска: может быть установлен как автоматический, автоматический (отложенный запуск), ручной или отключенный. Для этого упражнения подходит автоматический режим.

  6. Выберите вкладку Вход в систему. Установите переключатель «Эта учетная запись:» и введите учетную запись и пароль, от имени которых будет работать служба. Вам нужно будет выбрать учетную запись, под которой будет работать служба. В идеале у вас должна быть учетная запись Windows, созданная только для запуска этой службы. Разрешения этой учетной записи должны быть ограничены только тем, что нужно делать службе. Вы можете выбрать локальную системную учетную запись , но это не рекомендуется по соображениям безопасности.

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

  1. Когда служба будет установлена, вы увидите, что служба «logCPUAvg» успешно установлена! окно. Выберите ОК, чтобы закрыть его. На этом установка завершена.

  2. Откройте диспетчер служб Windows и убедитесь, что служба существует.

  3. Запустите службу, чтобы убедиться, что она будет работать.

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

Удаление службы Windows с помощью NSSM

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

  1. В диспетчере служб Windows остановите службу. Сделайте это, выбрав службу «Журнал средней загрузки ЦП», а затем либо нажав квадратную кнопку остановки на панели инструментов, либо ссылку «Остановить службу» слева.

  2. Откройте командную строку Windows или PowerShell от имени администратора.
  3. Введите команду nssm remove logCPUAvg и выполните команду.

  4. NSSM попросит вас подтвердить. Выберите Да .

  5. Когда служба будет удалена, вы увидите, что служба «logCPUAvg» успешно удалена! Подтверждение. Выберите ОК, и все готово.

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

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



2020-11-16T10:28:45
Вопросы читателей

Можно ли увеличить время работы ноутбука от аккумулятора?

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

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

Узнайте о возможностях увеличения времени автономной работы ноутбука.

Как увеличить время автономной работы ноутбука

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

Быстрые советы

  • Отрегулируйте яркость экрана, так как экран потребляет много энергии от аккумулятора, чтобы дисплей оставался ярким и четким.
  • Выключайте Bluetooth и WiFi, пока они вам не понадобятся. Они разряжают аккумулятор при поиске ближайших беспроводных сетей и подключений, даже когда вы подключены.
  • Включите режим полета, если вашей задаче не требуется доступ в Интернет. Это устраняет разрядку батареи за счет отключения беспроводных радиомодулей, фоновых приложений и других программ, когда вы выполняете одну задачу.
  • Отключите или выключите периферийные устройства, такие как USB-накопители, веб-камеры или мыши, которые могут разрядить ваш ноутбук, потому что материнская плата должна их питать. Например, вместо USB-мыши вы можете использовать трекпад вашего ноутбука.
  • Отключите звук динамиков ноутбука, если вам не нужен звук, так как он также может разряжать аккумулятор ноутбука при каждой загрузке Windows или при получении электронного письма и других уведомлений.
  • Если в вашем ноутбуке был установлен дисковод, перед переключением на питание от батареи убедитесь, что он пустой. Вращение дисков в вашем ноутбуке истощает жизненно важные дополнительные минуты, которые вам требуются от аккумулятора ноутбука во время работы.
  • Подключите ноутбук до того, как батарея разрядится, чтобы не перегружать батарею и не уменьшать ее зарядную емкость. Точно так же, если у вашего ноутбука нет режима интеллектуальной зарядки, в котором приоритет отдается работоспособности аккумулятора, вам не нужно постоянно держать его подключенным, поскольку это может уменьшить количество циклов зарядки.
  • Используйте ноутбук в местах с температурой окружающей среды, так как чрезмерное воздействие экстремальных температур заставляет компьютер работать тяжелее и в конечном итоге приводит к повреждению или сокращению срока службы аккумулятора.
  • Если у вас старый ноутбук Mac, убедитесь, что батарея откалибрована, чтобы было легче предсказать оставшийся заряд или время его использования.

Убедитесь, что на вашем ноутбуке достаточно оперативной памяти

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

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

Закройте приложения Power Hogging

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

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

Если вы используете ноутбук Mac, выполните поиск «Пользователи и группы», выберите вкладку «Элементы для входа» и просмотрите приложения, которые в настоящее время работают в фоновом режиме при запуске портативного компьютера.

Держите Windows в актуальном состоянии

Обновления Windows могут раздражать, но они — хороший способ улучшить программы, потребляющие энергию на вашем ноутбуке. Исправление операционной системы или исправление ошибки может помочь вашему ноутбуку потреблять меньше энергии батареи и увеличить срок ее службы.

Купите внешний аккумулятор для ноутбука

Еще один способ увеличить время автономной работы ноутбуков — это держать под рукой дополнительную батарею или приобрести блок питания для ноутбука.

Блок питания для ноутбука — это компактный аккумулятор, который достаточно портативен, чтобы его можно было положить в рюкзак или сумку для ноутбука, и он может увеличить продолжительность вашего заряда. Кроме того, резервный аккумулятор подключается к ноутбуку так же, как зарядное устройство, и поставляется с адаптером, который можно использовать с различными моделями ноутбуков.

Некоторые хорошие модели включают  Anker PowerCore + 26800, Omni 20+ Wireless Power Bank и аккумулятор MAXOAK 185 Вт/50000 мАч.

Отрегулируйте настройки мощности

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

  1. Для этого введите «Электропитание» в поле поиска и выберите «Настройки электропитания и сна».

  2. Проверьте настройки питания и выберите параметры, которые позволят вам сэкономить больше энергии.

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

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

Отрегулируйте настройки графики и дисплея

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

Для ноутбуков Mac установите флажок «Автоматическое переключение графики» в настройках энергосбережения. Таким образом, ваш Mac определит, какое приложение использует какой графический ускоритель для экономии заряда батареи.

Увеличьте время автономной работы вашего ноутбука

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

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

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



2020-11-16T10:04:27
Вопросы читателей

Как проверить, существует ли файл или каталог в Python

При написании скриптов Python вы можете захотеть выполнить определенное действие, только если файл или каталог существует или нет. Например, вы можете захотеть прочитать или записать данные в файл конфигурации или создать файл, только если он уже не существует.

В Python есть много разных способов проверить, существует ли файл, и определить его тип.

В этом руководстве показаны три различных метода проверки существования файла.

Проверьте, существует ли файл

Самый простой способ проверить, существует ли файл, — это попытаться открыть файл. Этот подход не требует импорта какого-либо модуля и работает как с Python 2, так и с Python 3. Используйте этот метод, если вы хотите открыть файл и выполнить какое-либо действие.

В следующем фрагменте кода используется простой блок try-except. Мы пытаемся открыть файл filename.txt , и если файл не существует, возникает исключение IOError и IOError сообщение «Файл недоступен»:

try:
    f = open("filename.txt")
    # Do something with the file
except IOError:
    print("File not accessible")
finally:
    f.close()

Если вы используете Python 3, вы также можете использовать FileNotFoundError вместо исключения IOError .

При открытии файлов рекомендуется использовать ключевое слово with , которое обеспечивает правильное закрытие файла после завершения файловых операций, даже если во время операции возникает исключение. Это также делает ваш код короче, потому что вам не нужно закрывать файл с помощью функции close .

Следующий код эквивалентен предыдущему примеру:

try:
    with open('/etc/hosts') as f:
        print(f.readlines())
        # Do something with the file
except IOError:
    print("File not accessible")

В приведенных выше примерах мы использовали блок try-except и открывали файл, чтобы избежать состояния гонки. Условия состязания возникают, когда к одному файлу обращается более одного процесса.

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

Проверьте, существует ли файл с помощью модуля os.path

Модуль os.path предоставляет несколько полезных функций для работы с os.path путей. Модуль доступен как для Python 2, так и для 3.

В контексте этого руководства наиболее важными функциями являются:

  • os.path.exists(path) — возвращает true, если path — это файл, каталог или допустимая символическая ссылка.
  • os.path.isfile(path) — возвращает истину, если path является обычным файлом или символической ссылкой на файл.
  • os.path.isdir(path) — возвращает true, если path является каталогом или символической ссылкой на каталог.

Следующий оператор if проверяет, существует ли файл filename.txt :

import os.path

if os.path.isfile('filename.txt'):
    print ("File exist")
else:
    print ("File not exist")

Используйте этот метод, когда вам нужно проверить, существует ли файл или нет, прежде чем выполнять действие с файлом. Например, копирование или удаление файла .

Если вы хотите открыть и изменить файл, используйте предыдущий метод.

Проверьте, существует ли файл, используя модуль pathlib

Модуль pathlib доступен в Python 3.4 и выше. Этот модуль предоставляет объектно-ориентированный интерфейс для работы с путями файловой системы для различных операционных систем.

Как и в предыдущем примере, следующий код проверяет, существует ли файл filename.txt :

from pathlib import Path

if Path('filename.txt').is_file():
    print ("File exist")
else:
    print ("File not exist")

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

Основное различие между pathlib и os.path заключается в том, что pathlib позволяет вам работать с путями как с объектами Path с соответствующими методами и атрибутами вместо обычных объектов str .

Если вы хотите использовать этот модуль в Python 2, вы можете установить его с помощью pip :

pip install pathlib2

Выводы

В этом руководстве мы показали вам, как с помощью Python проверить, существует ли файл или каталог.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.



2020-11-14T12:22:14
Python

Как установить прокси-сервер Shadowsocks-libev SOCKS5

Shadowsocks — это бесплатный прокси-сервер SOCKS5 с открытым исходным кодом, широко используемый для защиты конфиденциальности в Интернете. Shadowsocks-libev, написанный на C, портирует Shadowsocks для создания регулярно поддерживаемой, более легкой и быстрой версии оригинальной Shadowsocks. Данные, проходящие через Shadowsocks-server и Shadowsocks-client, зашифрованы и могут быть неотличимы от любого другого веб-трафика, чтобы избежать стороннего мониторинга.

В этом руководстве мы покажем шаги по установке Shadowsocks-libev на облачном сервере, настройке прокси-сервера и использованию клиента для подключения к прокси. Здесь приведены инструкции для CentOS 8, Debian 10 и Ubuntu 20.04, но процесс должен быть примерно таким же для любой операционной системы, поддерживаемой Snap.

Если у вас нет времени и желания разбираться в настройке, можно приобрести готовый прокси https://youproxy.ru/. Это быстро и несложно. Далее следует инструкция для желающих разобраться.

Установка Shadowsocks-libev

Shadowsocks-libev рекомендует использовать их выпуски Snap, чтобы упростить установку последних двоичных файлов.

На серверах CentOS 8 вам понадобится репозиторий EPEL, прежде чем вы сможете установить Snap. Добавьте его, используя следующие команды:

sudo dnf install -y epel-release

sudo dnf update -y

Затем установите и включите Snap, выполнив следующие две команды:

sudo dnf install -y snapd

sudo systemctl enable --now snapd.socket

Для систем Debian 10 и Ubuntu 20.04 сначала обновите программное обеспечение сервера, а затем установите Snap с помощью приведенных ниже команд.

sudo apt update && apt upgrade -y

sudo apt install -y snapd

Перед установкой Shadowsocks-libev вы можете установить hasged для улучшения случайности, но это необязательно.

# CentOS 8

sudo dnf install -y haveged

# Debian 10 и Ubuntu 20.04

sudo apt install -y haveged

После установки Snap и дополнительного hasged перезагрузите сервер, прежде чем продолжить.

sudo reboot

Когда ваш облачный сервер снова заработает, войдите в систему через SSH. Затем установите прокси Shadowsocks-libev через Snap, используя следующую команду:

sudo snap install shadowsocks-libev

После установки Shadowsocks-libev переходите к следующему разделу о настройке прокси-сервера.

Настройка прокси-сервера

Snap установит для вас Shadowsocks-libev, но при настройке потребуется небольшая помощь. Создайте каталог для хранения файлов конфигурации.

sudo mkdir -p /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev

Затем создайте файл JSON для конфигурации Shadowsocks-libev. Его можно назвать как угодно. Здесь мы используем config в качестве имени.

sudo touch /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev/config.json

Затем отредактируйте файл и добавьте в него следующую конфигурацию.

sudo nano /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev/config.json

{

 "server":["[::0]", "0.0.0.0"],

 "mode":"tcp_and_udp",

 "server_port":443,

 "password":"your-secure-password",

 "timeout":60,

 "method":"chacha20-ietf-poly1305",

 "nameserver":"1.1.1.1"

}

Давайте рассмотрим каждый из параметров конфигурации и их назначение.

Сервер

В примере конфигурации используются значения определения сервера, которые принимают любой IP-адрес, как IPv6, так и IPv4:

"server":["::0", "0.0.0.0"],

Отсутствие привязки к конкретному адресу может быть полезно, если вы хотите создать шаблон конфигурации или собственный образ вашего сервера Shadowsock. Таким образом, конфигурация будет работать независимо от публичного IP-адреса.

Вы также можете использовать свои общедоступные адреса IPv6 и IPv4, например:

"server":["2a04:3543:1000:2312:4631:c1ff:feb5:01f0", "95.123.198.234"],

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

"server":"shadow.example.com",

Режим

Различные режимы определяют протокол передачи данных, используемый прокси. Для «режима» есть три допустимых значения :

  1. «tcp_and_udp»
  2. «tcp_only»
  3. «udp_only»

Использование как TCP, так и UDP позволяет прокси-серверу согласовывать лучшее соединение, доступное в данный момент, и должно быть нормально. Если ваша сеть имеет особые требования или ограничения, вам может потребоваться выбрать tcp_only.

Порт сервера

В нашем примере конфигурации Shadowsocks используется порт 443, но он может быть установлен на любой свободный порт. Если вы не используете порты HTTP (80) или HTTPS (443), размещая веб-сайт на том же сервере, вам следует использовать любой из этих портов. Обратите внимание, что использование общего порта, такого как 80 или 443, может привести к попыткам несанкционированного подключения, поэтому убедитесь, что ваш пароль безопасен.

Пароль

Пароль сервера используется для аутентификации подключений к прокси. Убедитесь, что вы выбрали надежный пароль соответствующей сложности и длины.

Тайм-аут

Это время ожидания сокета в секундах. Примерное значение 60 должно подойти. Однако, если вы установили Shadowsocks из бэкпортов, вам может потребоваться увеличить его, но рекомендуется держать его менее 5 минут, то есть 300 секунд.

Метод

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

"method":"chacha20-ietf-poly1305"

Если хотите, можете выбрать другие шифры. Еще одна популярная альтернатива:

"method":"aes-256-gcm"

Сервер имен

Наш пример также включает сервер доменных имен, который не является строго необходимым. Без этого параметра прокси будет использовать DNS, используемый вашим облачным сервером. Вы можете настроить Shadowsocks на использование предпочитаемого вами DNS, установив сервер имен в вашем файле конфигурации.

Например, чтобы использовать DNS Google, введите следующее:

"nameserver":"8.8.8.8"

Или, если вы предпочитаете DNS Cloudflare, используйте вместо этого их IP-адрес:

"nameserver":"1.1.1.1"

По завершении редактирования конфигурации сохраните файл ctrl + o и выйдите из редактора ctrl + x.

Создание служебного модуля systemd

Shadowsocks-libev можно запускать вручную в терминале, но в долгосрочной перспективе это не очень практично. Вместо этого создайте файл служебной единицы systemd, используя следующую команду:

sudo touch /etc/systemd/system/shadowsocks-libev-server@.service

Затем откройте вновь созданный файл для редактирования:

sudo nano /etc/systemd/system/shadowsocks-libev-server@.service

Затем скопируйте и вставьте в файл следующее содержимое:

[Unit]

Description=Shadowsocks-Libev Custom Server Service for %I

Documentation=man:ss-server(1)

After=network-online.target



[Service]

Type=simple

ExecStart=/usr/bin/snap run shadowsocks-libev.ss-server -c /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev/%i.json



[Install]

WantedBy=multi-user.target

После этого сохраните файл и выйдите из редактора.

Затем вы можете включить служебный модуль systemd для своего файла конфигурации, выполнив следующую команду. Обратите внимание, что @config используется для выбора файла конфигурации, в данном случае config.json, но без обозначения формата файла.

sudo systemctl enable --now shadowsocks-libev-server@config

Убедитесь, что сервер успешно запустился, используя команду status :

sudo systemctl status shadowsocks-libev-server@config

Вы должны увидеть, как Shadowsocks прослушивает IP-адреса, порты и протоколы, определенные вами в конфигурации. В приведенном ниже примере выходных данных вы можете увидеть, как TCP и UDP работают на адресах IPv4 и IPv6, как установлено на этапе настройки.

● shadowsocks-libev-server@config.service - Shadowsocks-Libev Custom Server Service for config

     Loaded: loaded (/etc/systemd/system/shadowsocks-libev-server@.service; enabled; vendor preset: enabled)

     Active: active (running) since Sun 2020-08-30 10:37:06 UTC; 3s ago

       Docs: man:ss-server(1)

   Main PID: 1229 (ss-server)

      Tasks: 1 (limit: 1074)

     Memory: 18.0M

     CGroup: /system.slice/system-shadowsocksx2dlibevx2dserver.slice/shadowsocks-libev-server@config.service

             └─1229 /snap/shadowsocks-libev/508/bin/ss-server -c /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev/config.json



Aug 30 10:37:06 shadowsocks.example.com systemd[1]: Started Shadowsocks-Libev Custom Server Service for config.

Aug 30 10:37:07 shadowsocks.example.com snap[1229]:  2020-08-30 10:37:07 INFO: UDP relay enabled

Aug 30 10:37:07 shadowsocks.example.com snap[1229]:  2020-08-30 10:37:07 INFO: initializing ciphers... chacha20-ietf-poly1305

Aug 30 10:37:07 shadowsocks.example.com snap[1229]:  2020-08-30 10:37:07 INFO: using nameserver: 1.1.1.1

Aug 30 10:37:07 shadowsocks.example.com snap[1229]:  2020-08-30 10:37:07 INFO: tcp server listening at [::0]:443

Aug 30 10:37:07 shadowsocks.example.com snap[1229]:  2020-08-30 10:37:07 INFO: tcp server listening at 0.0.0.0:443

Aug 30 10:37:07 shadowsocks.example.com snap[1229]:  2020-08-30 10:37:07 INFO: udp server listening at [::0]:443

Aug 30 10:37:07 shadowsocks.example.com snap[1229]:  2020-08-30 10:37:07 INFO: udp server listening at 0.0.0.0:443

Aug 30 10:37:07 shadowsocks.example.com snap[1229]:  2020-08-30 10:37:07 INFO: running from root user

После того, как прокси-сервер Shadowsocks-libev запущен, мы почти готовы начать тестирование соединения. Перед этим проверьте следующую часть руководства, чтобы настроить брандмауэр для разрешения соединения.

Разрешение подключения через брандмауэр

Если вы используете брандмауэр, такой как UFW или firewalld, убедитесь, что вы открыли порт, используемый server_port,  как установлено в файле конфигурации, порт 443 в этом примере.

# Ubuntu

sudo ufw allow 443

# CentOS

sudo firewall-cmd --add-service=https --permanent

sudo firewall-cmd --reload

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

Подключение через прокси-клиент

Shadowsocks-libev теперь готов для прокси-соединений. Чтобы иметь возможность подключиться к вашему прокси-серверу Shadowsocks, вам понадобится клиент.

Клиентское программное обеспечение

Shadowsocks поддерживается рядом различных клиентов и устройств. Вы можете найти список доступных клиентов для ваших устройств на странице загрузки Shadowsocks.

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

Например, вы можете использовать то же программное обеспечение Shadowsocks-libev в клиентском режиме, установив его в своей локальной системе. Следуйте инструкциям по установке, например, при установке сервера Shadowsocks-libev, а затем продолжите шаг настройки клиента Linux ниже.

Настройка мобильных устройств

В качестве легкого прокси Shadowsocks-libev отлично работает с мобильными устройствами. Если вам нужен быстрый способ подключения с помощью смартфона, перейдите к генератору QR-кодов Shadowsocks  и заполните данные конфигурации в следующем формате:

ss://method:password@hostname:port

Замените имя хоста общедоступным IP-адресом вашего сервера, если вы используете IP-адреса вместо имени домена. Например:

ss://chacha20-ietf-poly1305:your-secure-password@95.123.198.234:443

Затем импортируйте сгенерированный URI или QR-код на свое устройство с помощью клиентского программного обеспечения. Выберите импортированный профиль и активируйте соединение. И, наконец, настройте свою систему на использование прокси.

На мобильных устройствах, таких как iOS и Android, соединение может использоваться как полноценная VPN.

Настройка другого хоста Linux

Подключение с использованием Shadowsock-libev в качестве клиента можно выполнить, настроив прокси в режиме localhost. После установки создайте файл local-config.json, как показано ниже.

Настройте файл, чтобы включить IP-адрес и порт сервера, как вы настроили на прокси-сервере. Также укажите локальный адрес и порт, как показано ниже. Наконец, установите пароль и метод шифрования в соответствии с вашим прокси-сервером Shadowsocks.

sudo nano /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev/local-config.json

{

 "server":"95.123.198.234",

 "server_port":443,

 "local_address":"127.0.0.1",

 "local_port":1080,

 "password":"your-secure-password",

 "timeout":60,

 "method":"chacha20-ietf-poly1305"

}

Затем создайте файл модуля systemd для клиента Shadowsocks и отредактируйте его, чтобы он имел следующий контент.

sudo nano /etc/systemd/system/shadowsocks-libev-local@.service

[Unit]

Description=Shadowsocks-Libev Local Service for %I

Documentation=man:ss-local(1)

After=network-online.target



[Service]

Type=simple

ExecStart=/usr/bin/snap run shadowsocks-libev.ss-local -c /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev/%i.json



[Install]

WantedBy=multi-user.target

После этого сохраните файл и выйдите из редактора.

Затем запустите клиентский прокси с помощью следующей команды. Обратите внимание, что @config используется для выбора файла конфигурации, например config.json, но без формата файла.

sudo systemctl start shadowsocks-libev-local@local-config

Локальный прокси-сервер создает соединение с вашим облачным сервером и позволяет данным проходить через них. Чтобы действительно иметь данные приложения для использования прокси, вам необходимо настроить свой веб-браузер или операционную систему на использование локального прокси. Фактический процесс зависит от вашего варианта использования, но в нашей конфигурации прокси-сервер работает на IP 127.0.0.1 и порту 1080.

Тестирование соединения

После подключения убедитесь, что ваш трафик проходит через прокси. Например, откройте следующий URL-адрес, чтобы проверить IP-адрес, с которого вы подключаетесь, с точки зрения других пользователей в Интернете.

https://ifconfig.me

Кроме того, вы можете протестировать его напрямую, используя curl в терминале:

curl --proxy socks5://127.0.0.1:1080 https://ifconfig.me

Или запустив Google Chrome со следующей опцией командной строки:

google-chrome --proxy-server="socks5://127.0.0.1:1080"

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

Обратите внимание, что использование VPN-подключения к вашему облачному серверу не гарантирует анонимности, и любой сетевой трафик должен соответствовать Условиям обслуживания и Политике допустимого использования UpCloud .

Дальнейшая оптимизация

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

Увеличение дескрипторов открытых файлов

Проверьте текущие значения, запустив:

ulimit -aH

Если параметр открытых файлов показывает меньше 51200 , выполните следующие действия:

Откройте файл limits.conf в текстовом редакторе.

sudo nano /etc/security/limits.conf

Затем добавьте следующие строки непосредственно перед #End of file:

* soft nofile 51200

* hard nofile 51200

В качестве альтернативы используйте следующее, если прокси-сервер работает как root:

root soft nofile 51200

root hard nofile 51200

После этого сохраните файл и выйдите из редактора.

Настройка параметров ядра

В зависимости от производительности вашего прокси-сервера вы можете внести следующие изменения в конфигурацию вашей системы:

sudo nano /etc/sysctl.conf

Добавьте в конец файла следующие строки:

fs.file-max = 51200

net.core.netdev_max_backlog = 250000

net.core.somaxconn = 4096

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 0

net.ipv4.tcp_fin_timeout = 30

net.ipv4.tcp_keepalive_time = 1200

net.ipv4.ip_local_port_range = 10000 65000

net.core.netdev_max_backlog = 4096

net.ipv4.tcp_max_syn_backlog = 8192

net.ipv4.tcp_max_tw_buckets = 5000

net.ipv4.tcp_fastopen = 3

net.ipv4.tcp_mtu_probing = 1

net.core.rmem_max = 67108864

net.core.wmem_max = 67108864

net.ipv4.tcp_mem = 25600 51200 102400

net.ipv4.tcp_rmem = 4096 87380 67108864

net.ipv4.tcp_wmem = 4096 65536 67108864

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

sudo sysctl -p

Использование TCP BBR

TCP BBR — это алгоритм контроля перегрузки TCP, разработанный Google и, как сообщается, для повышения производительности в определенных сетях. Вы можете включить его, добавив следующие строки в файл конфигурации вашей системы.

sudo nano /etc/sysctl.conf

net.core.default_qdisc=fq

net.ipv4.tcp_congestion_control=bbr

Затем сохраните файл и перезагрузите настройки.

sudo sysctl -p

Проверьте изменения, выполнив следующую команду.

sudo sysctl net.ipv4.tcp_congestion_control

Если вывод выглядит следующим образом, настройка была применена успешно.

net.ipv4.tcp_congestion_control = bbr

Эти оптимизации должны помочь устранить любые возможные проблемы с производительностью.



2020-11-13T19:28:10
Вопросы читателей