WireGuard — это современная технология VPN (виртуальная частная сеть) с самой современной криптографией. По сравнению с другими аналогичными решениями, такими как IPsec и OpenVPN , WireGuard быстрее, проще в настройке и более производительно. Это кроссплатформенный и может работать практически где угодно, включая Linux, Windows, Android и macOS. Wireguard — это одноранговая VPN; он не использует модель клиент-сервер. В зависимости от конфигурации одноранговый узел может действовать как традиционный сервер или клиент. Читать
Архив метки: Ubuntu
Настраиваем qBittorrent + MiniDLNA на Ubuntu
Сегодня в статье поговорим о том, как установить и настроить совместную работу медиацентра MiniDLNA и клиента сети торрент – qBittorrent на ОС Ubuntu 18.0420.0422.04.
Устанавливать и настраивать будем на Ubuntu Server 20.04. Для Debian подобных систем инструкция будет тоже справедлива.
Для того, чтобы клиенты видели DLNA-сервер, они должны находились в одной подсети.
Подготовка системы:
Обновляемся систему до актуального состояния:
sudo apt update && sudo apt dist-upgrade
Создаем системного пользователя с отключенным шелом и одноименной группой.
sudo useradd qbittorrent -b /home/ -m -U -s /bin/false
Задаем пароль для нашего пользователя
sudo passwd qbittorrent
qBittorrent
Установка qBittorrent
Давайте теперь установим наш торрент клиент без GUI интерфейса. На Ubuntu Server 20.04 LTS команда будет выглядеть так:
sudo apt install qbittorrent-nox
Настройка qBittorrent
Настраиваем автостарт демона с помощью systemd
Создаём и открываем файл qbittorrent-nox.service
sudo nano /etc/systemd/system/qbittorrent-nox.service
Добавим следующее содержимое:
[Unit] Description=qBittorrent Command Line Client After=network.target [Service] #Do not change to "simple" Type=forking User=qbittorrent Group=qbittorrent UMask=007 ExecStart=/usr/bin/qbittorrent-nox -d --webui-port=8080 Restart=on-failure [Install] WantedBy=multi-user.target
Автостарт демона с помощью init.d
Если настраивали автостарт при помощиsystemd, то выполнять настройку с помощьюinit.dне надо.
Скачаем скрипт демона и оправим его в автозагрузку.
wget -O /etc/init.d/qbittorrent https://launchpadlibrarian.net/38905385/qbittorrent
sudo chmod 755 /etc/init.d/qbittorrent
sudo update-rc.d qbittorrent defaults
Для удаления набираем следующую команду:
sudo update-rc.d -f qbittorrent remove
Откроем содержимое скрипта:
sudo nano /etc/init.d/qbittorrent
Отредактируем в соответствии с листингом:
DAEMON_ARGS="--webui-port=8080"
USER=qbittorrent
Команды для управления демоном:
sudo service qbittorrent start
sudo service qbittorrent stop
sudo service qbittorrent restart
sudo service qbittorrent status
Для запуска наберите в терминале:
qbittorrent-nox
Конфигурационный файл qbittorrent-nox
Если необходимо изменить настройки qbittorrent через терминал, то откройте на редактирование следующий файл.
sudo nano /home/qbittorrent/.config/qBittorrent/qBittorrent.conf
Настройка сети и загружаемых файлов
BitTorrent]
SessionDefaultSavePath=/home/qbittorrent/video
SessionExcludedFileNames=
SessionInterface=ens18
SessionInterfaceAddress=10.5.1.100
SessionInterfaceName=ens18
SessionPort=54218
SessionQueueingSystemEnabled=false
SessionTempPath=/home/qbittorrent/video/temp
Установка разрешенных сетей
Установка разрешенных сетей для подключения к qbittorrent без ввода логина и пароля
WebUIAuthSubnetWhitelist=10.5.1.0/24, 10.1.1.0/24
Включаем поддержку HTTPS
Для включения протокола HTTPS c помощью самоподписанного сертификата.
sudo mkdir /home/qbittorrent/.config/qBittorrent/ssl
sudo openssl req -x509 -nodes -days 1095 -newkey rsa:2048 -keyout /home/qbittorrent/.config/qBittorrent/ssl/sert.key -out /home/qbittorrent/.config/qBittorrent/ssl/sert.crt
*.key и *.crt должны быть в одну строчку.
Также их можно прописать в настройках веб-интерфейса.
sudo nano /home/qbittorrent/.config/qBittorrent/qBittorrent.conf
WebUIHTTPSEnabled=true
WebUIHTTPSCertificate="@ByteArray(-----BEGIN CERTIFICATE-----n Cert n-----END CERTIFICATE-----n)"
WebUIHTTPSKey=@ByteArray(-----BEGIN PRIVATE KEY-----n Key n-----END PRIVATE KEY-----n)
MiniDLNA
Установка MiniDLNA
Давайте теперь установим наш медиацентр minidlna
sudo apt install minidlna
Настройка MiniDLNA
Автостарт сервиса с помощью init.d
Настроим демон minidlna на запуск от нашего пользователя qbittorrent
sudo nano /etc/init.d/minidlna
Находим строчки
USER=minidlna
GROUP=minidlna
Меняем их значение:
USER=qbittorrent
GROUP=qbittorrent
Автостарт с помощью systemd
На сегодня автоматом создается сервис в systemd. Для редактирования открываем следующий файл:
sudo nano /etc/systemd/system/multi-user.target.wants/minidlna.service
Также как и выше меняем User и Group с minidlna на qbittorrent.
[Unit]
Description=MiniDLNA lightweight DLNA/UPnP-AV server
Documentation=man:minidlnad(1) man:minidlna.conf(5)
After=local-fs.target remote-fs.target autofs.service
[Service]
User=qbittorrent
Group=qbittorrent
Environment=CONFIGFILE=/etc/minidlna.conf
Environment=DAEMON_OPTS=-r
EnvironmentFile=-/etc/default/minidlna
RuntimeDirectory=minidlna
LogsDirectory=minidlna
PIDFile=/run/minidlna/minidlna.pid
ExecStart=/usr/sbin/minidlnad -f $CONFIGFILE -P /run/minidlna/minidlna.pid -S $DAEMON_OPTS
[Install]
WantedBy=multi-user.target
Обновляем настройки сервисов
Пересчитываем настройки systemd
sudo systemctl daemon-reload
Меняем группу и владельца директории /var/cache/minidlna
sudo chown -R qbittorrent:qbittorrent /var/cache/minidlna/
Настроем конфигурационный файл minidlna:
sudo cp /etc/minidlna.conf{,.bkp} && sudo nano /etc/minidlna.conf
user=qbittorrent
media_dir=P,/home/qbittorrent/pictures
media_dir=V,/home/qbittorrent/video
media_dir=A,/home/qbittorrent/music
db_dir=/var/cache/minidlna
log_dir=/var/log/minidlna
log_level=general,artwork,database,inotify,scanner,metadata,http,ssdp,tivo=warn
root_container=B
#network_interface=eth0
port=8200
friendly_name=MiniDLNA
serial=1234567890
model_number=1234
inotify=yes
album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg
album_art_names=AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg
album_art_names=Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg
notify_interval=60
max_connections=10
Создадим наши каталоги:
sudo mkdir /home/qbittorrent/{music,pictures,video,torrent}
Устанавливаем права
sudo chown -R qbittorrent:qbittorrent /home/qbittorrent/
Перезагружаем демон если настраивали minidlna с помощью init.d
sudo /etc/init.d/minidlna restart
Перезагружаем демон если настраивали minidlna с помощью systemd
systemctl restart minidlna.service
Перечитываем кэш
minidlnad -R
Правим sysctl.conf иначе будет ругаться в логах на эту настройку.
sudo nano /etc/sysctl.conf
Добавим в конце файла.
# MiniDLNA
fs.inotify.max_user_watches = 100000
Применим настройку
sudo sysctl -p
Проверяем логи и смотрим статистику:
sudo cat /var/log/minidlna
Сброс кэша minidlna
Если возникает ситуация, когда необходимо сбросить кэш minidlna, можно воспользоваться командами:
sudo service minidlna stop
Удаляем кеш файл
sudo rm -rf /var/cache/minidlna/files.db
запускаем службу:
sudo service minidlna start
[endtxt]
. . . .
- Тест скорости дисков в Linux
- Как запустить команду в фоне в Linux
- Ошибка несоответствие размеров GPT PMBR
- nginx: [warn] protocol options redefined
- Как включить поддержку linux в windows 11
Как установить прокси-сервер 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",
Режим
Различные режимы определяют протокол передачи данных, используемый прокси. Для «режима» есть три допустимых значения :
- «tcp_and_udp»
- «tcp_only»
- «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
Эти оптимизации должны помочь устранить любые возможные проблемы с производительностью.
Как настроить WireGuard VPN в Ubuntu 20.04
WireGuard — это современная технология VPN (виртуальная частная сеть), в которой используется самая современная криптография. По сравнению с другими популярными решениями VPN, такими как IPsec и OpenVPN , WireGuard быстрее, проще в настройке и занимает меньше места. Он кроссплатформенный и может работать практически где угодно, включая Linux, Windows, Android и macOS.
🐧 Функция Bash для извлечения файловых архивов различных типов
Существует много приложений для извлечения различных типов архивных файлов.
Вам будет сложно запомнить все опции и параметры каждого инструмента архивирования.
Сегодня я наткнулся на простую функцию Bash для извлечения файловых архивов различных типов в Linux.
Эта функция Bash может извлекать наиболее часто используемые форматы архивов, такие как .tar.bz2, .tar.bz, .bz2, .rar, .zip и .7z.
Вам не нужно использовать фактическое приложение для архивирования, распаковки архива!
Просто добавьте эту функцию в свой файл ~/bashrc и вызовите ее для извлечения файлов архива.
Он автоматически найдет и использует соответствующий инструмент архивирования для извлечения файлов.
Не нужно запоминать флаги и опции.
Функция Bash для извлечения файловых архивов различных типов
Откройте ваш файл ~/.bashrc:
$ nano ~/.bashrc
Добавьте в конце следующий фрагмент:
# Bash Function To Extract File Archives Of Various Types
extract () {
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xjf $1 ;;
*.tar.gz) tar xzf $1 ;;
*.bz2) bunzip2 $1 ;;
*.rar) rar x $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tgz) tar xzf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1 ;;
*.7z) 7z x $1 ;;
*) echo "'$1' cannot be extracted via extract()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
$ source ~/.bashrc
С этого момента вы можете просто вызывать эту функцию для извлечения архивов различных типов.
Например, я собираюсь извлечь файл архива .7z с помощью команды:
$ extract archive.7z
Пример вывода:
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_IN,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz (206A7),ASM)
Scanning the drive for archives:
1 file, 16013693 bytes (16 MiB)
Extracting archive: archive.7z
--
Path = archive.7z
Type = 7z
Physical Size = 16013693
Headers Size = 1204
Method = LZMA:23
Solid = +
Blocks = 1
Everything is Ok
Folders: 21
Files: 37
Size: 16625007
Compressed: 16013693
$ extract archive.zip
$ extract archive.zip
bash: /usr/bin/unzip: No such file or directory
Этот скрит упоминается во многих местах в Интернете.
Автор – Игорь Павлов.
Вы используете какие-нибудь другие классные функции Bash?
Пожалуйста, поделитесь ими через раздел комментариев.
Это может быть полезно мне и всем читателям.
Спонсор статьи – обзор Logitech MX Keys
Что нового в Ubuntu 20.10
Следуя своим традициям, компания Canonical делит все релизы Ubuntu на долгосрочные и краткосрочные. Аббревиатура LTS (long-term support — долгий период поддержки) означает, что у данной редакции будет длительное время поддержки. Релиз LTS осуществляется раз в два года, поддержка — в среднем в течение пяти лет.
Обычные выпуски Ubuntu, поддерживаются в течение 9-ти месяцев. Ubuntu 20.10 с кодовым именем Groovy Gorilla как раз и будет двадцать третьей по счёту обычной редакцией Linux. Несмотря на короткий срок времени поддержки, его вполне хватит, чтобы оценить все нововведения и преимущества. Само имя ОС можно перевести как «Крутая (классная, замечательная, отличная) Горилла».
Читать