Архив метки: Ubuntu

Выборочная маршрутизация сети или разделенное туннелирование через VPN

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

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

ps.: В конце этого блога вы сможете выбрать, какой веб-сайт или IP-адреса вы хотите маршрутизировать через VPN.

Требования:

 

  • Ubuntu (должен работать и на других дистрибутивах Linux)
  • Если вы используете windows, Этот метод работает с подсистемой Windows для Linux. Убедитесь, что у вас есть WSL2, прежде чем продолжить.
  • Openfortivpn
  • Убедитесь, что вы можете подключиться к VPN, используя его.

Шаги для выборочной маршрутизации

1. конфигурационный файл VPN

Этот файл сообщает нашему VPN-клиенту конфигурацию нашего VPN.

Сохраните приведенный ниже конфигурационный файл как vpn-config. conf в любом месте вашего компьютера

host = vpn.iiitd.edu.in

port = 10443

username = <your username>

password = <your pass>

set-routes = 0

set-dns = 0

pppd-use-peerdns = 0

set-routes = 0 указывает, чтобы не делать никаких маршрутов через VPN, теперь мы будем белый список веб-сайтов, чтобы использовать через VPN.

2. Настройка скрипта PPP

Что такое ППС?: PPP-это протокол точка-точка. Linux использует этот протокол для связи по протоколу TCP/IP с вашим интернет-провайдером.

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

Для создания сценария используйте следующие команды

sudo touch /etc/ppp/ip-up.d/fortivpn

sudo chmod a+x /etc/ppp/ip-up.d/fortivpn

Что такое pppd? Демон PPP (pppd) — это свободно доступная реализация протокола Point-to-Point Protocol (PPP), который работает во многих системах Unix. читайте дальше

Что такое ip-up? /etc/ppp/ip-up-это shell — скрипт, выполняемый pppd при появлении ссылки/интернета. Читать далее

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

#!/bin/bash

#

# Whitelist here all domains that need to go through openfortivpn

# Domains and IPs are separated by a space

#

ips='192.168.2.217 192.168.29.151'

domains='example.com example.fr'



let resolved

for domain in $domains; do

  resolved=`dig +short $domain | tail -n1`

  ips="$ips $resolved"

done



for ip in $ips; do

  route add $ip dev ppp0

done

Теперь добавьте IP-адреса и домены, к которым вы хотите получить доступ через VPN.

3. запустите VPN

Следующая команда должна подключить вас к вашему VPN прямо сейчас.

sudo openfortivpn -c vpn-config.conf

Ниже вы можете увидеть маршруты, добавленные для ip-адресов. ppp0-это vpn-интерфейс, а enp2s0-ethernet.

andreyex@andreyex ~> route                                                                  (base)

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

default         _gateway        0.0.0.0         UG    100    0        0 enp2s0

one.one.one.one 0.0.0.0         255.255.255.255 UH    0      0        0 ppp0

103.25.231.4    0.0.0.0         255.255.255.255 UH    0      0        0 ppp0

link-local      0.0.0.0         255.255.0.0     U     1000   0        0 enp2s0

192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 enp2s0

192.168.2.217   0.0.0.0         255.255.255.255 UH    0      0        0 ppp0

192.168.29.151  0.0.0.0         255.255.255.255 UH    0      0        0 ppp0

Вот и все! Теперь вы можете работать на своем сервере и наслаждаться быстрым интернетом вместе с ним 🙂

Бонус: автоматический запуск VPN при загрузке

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

Выполните эти команды для настройки службы

sudo touch /etc/systemd/system/openfortivpn.service

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

[Unit]

Description = OpenFortiVPN

After=network-online.target

Documentation=man:openfortivpn(1)



[Service]

Type=idle

ExecStart = /usr/bin/openfortivpn -c <path to your config file>

StandardOutput=file:<any-place-where you want to save your logs>

Restart=always

RestartSec=10



[Install]

WantedBy=multi-user.target

 

Чтобы запустить эту службу, просто запустите ее

sudo systemctl enable openfortivpn

sudo systemctl start openfortivpn

Чтобы проверить, работает ли он

andreyex@andreyex ~> sudo systemctl status openfortivpn

● openfortivpn.service - OpenFortiVPN

   Loaded: loaded (/etc/systemd/system/openfortivpn.service; enabled; vendor preset: enabled)

   Active: active (running) since Sat 2020-04-25 13:22:26 IST; 3h 43min ago

     Docs: man:openfortivpn(1)

 Main PID: 1851 (openfortivpn)

    Tasks: 6 (limit: 4915)

   CGroup: /system.slice/openfortivpn.service

           ├─1851 /usr/bin/openfortivpn -c /home/andreyex/Documents/vpn-configs/iiitd.conf

           └─1852 /usr/sbin/pppd 38400 :1.1.1.1 noipdefault noaccomp noauth default-asyncmap nopcomp



Apr 25 13:22:26 andreyex systemd[1]: Started OpenFortiVPN.

Apr 25 13:22:26 andreyex pppd[1852]: pppd 2.4.7 started by root, uid 0

Apr 25 13:22:26 andreyex pppd[1852]: Using interface ppp0

Apr 25 13:22:26 andreyex pppd[1852]: Connect: ppp0 <--> /dev/pts/0

Apr 25 13:22:27 andreyex pppd[1852]: local  IP address 10.212.134.101

Apr 25 13:22:27 andreyex pppd[1852]: remote IP address 1.1.1.1

 

Спасибо за чтение 🙂 Если это действительно помогло вам, не стесняйтесь ставить лайки, комментировать и делиться этим блогом.

Можно ли изменить имя компьютера в Linux?

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

Hostname в Linux

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

Для изменения имени хоста в Linux можно использовать несколько методов, и эти методы можно разделить на две категории: методы интерфейса командной строки (CLI) и методы графического интерфейса пользователя (GUI).

Методы CLI

Чтобы изменить имя хоста устройства в Linux, мы рекомендуем использовать инструменты командной строки. Эти методы универсальны и работают практически в любом дистрибутиве Linux. Кроме того, нет необходимости устанавливать какие-либо дополнительные пакеты.

Проверить имя хоста

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

$ hostname

$ hostnamectl

Изменить имя хоста с помощью hostname

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

$ sudo hostname

Наконец, проверьте изменение.

$ hostname

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

Измените имя хоста с помощью hostnamectl

Инструмент hostnamectl контролирует имя хоста системы. Этот инструмент может выполнять широкий спектр действий; например, его можно использовать для отображения текущего имени хоста, для изменения имени хоста, для настройки описания среды и для управления системной строкой LOCATION.

Чтобы использовать hostnamectl для изменения имени хоста, выполните следующую команду.

$ sudo hostnamectl set-hostname

Затем проверьте изменение.

$ hostname

Затем нам нужно вручную обновить файл хоста. Для этого откройте файл в текстовом редакторе.

$ sudo vim /etc/hosts

Измените старое имя хоста на новое имя хоста.

$ 127.0.1.1 localhost

$ 127.0.1.1

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

$ /etc/init.d/hostname restart

Изменить имя хоста (для системы инициализации)

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

$ sudo vim /etc/hostname

На изображении ниже показано старое имя хоста.

Отредактируйте содержимое, чтобы обновить имя хоста.

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

$ hostname

GUI методы

В этом разделе мы будем использовать GNOME для изменения имени хоста устройства. Однако вы можете использовать YaST для изменения имени хоста в openSUSE.

Изменить имя хоста в GNOME

GNOME — мощная среда рабочего стола. Если вы используете GNOME, вы можете изменить имя хоста без выполнения каких-либо команд, открыв приложение «Настройки».

На левой панели прокрутите вниз и выберите «О программе». В этом примере имя хоста системы находится в поле «Имя устройства».

Щелкните «Имя устройства», чтобы открыть запрос на изменение имени хоста.

Введите новое имя хоста и нажмите «Переименовать», чтобы сохранить изменения.

Последние мысли

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



2020-12-15T12:09:37
Вопросы читателей

Как настроить WireGuard VPN в Ubuntu 18.04

WireGuard — это современная технология VPN (виртуальная частная сеть) с самой современной криптографией. По сравнению с другими аналогичными решениями, такими как IPsec и OpenVPN , WireGuard быстрее, проще в настройке и более производительно. Это кроссплатформенный и может работать практически где угодно, включая Linux, Windows, Android и macOS. Wireguard — это одноранговая VPN; он не использует модель клиент-сервер. В зависимости от конфигурации одноранговый узел может действовать как традиционный сервер или клиент. Читать

Как установить браузер Tor на Ubuntu 20.04

Браузер Tor — это настроенная версия Firefox, которая направляет веб-трафик через сеть Tor, делая его приватным и анонимным. Читать

Как установить прокси-сервер 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
Вопросы читателей