Эта статья покажет вам, как настроить прокси-сервер V2Ray на Ubuntu 22.04/20.04. V2Ray — это легкий, быстрый и безопасный прокси-сервер Socks5, предназначенный для обхода цензуры в Интернете. Мы узнаем, как настроить серверную часть и как настроить клиентскую часть на Ubuntu/Windows.
Содержание статьи
- 1 Особенности V2Ray
- 2 Требования
- 3 Шаг 1: Установка V2Ray на сервере Ubuntu 22.04/20.04
- 4 Шаг 2: Настройка синхронизации времени по NTP
- 5 Шаг 3: Настройка V2Ray на сервере
- 6 Шаг 4: Настройка обратного прокси
- 7 Шаг 5: Включение HTTPS
- 8 Шаг 6: Настройка брандмауэра
- 9 Шаг 7: Установка и настройка V2Ray на клиентском компьютере
- 10 Шаг 8: Настройка веб-браузера для использования прокси V2Ray
- 11 Шаг 9: Тест DNS утечки
- 12 Шаг 10: Включение TCP BBR
- 13 Устранение неполадок
- 14 Клиент iOS
- 15 Глобальный режим на Linux Desktop
- 16 Как обновить V2Ray
Особенности V2Ray
- Легкий и быстрый. На моем тесте я могу смотреть видео 4K на YouTube с использованием V2Ray. YouTube заблокирован в моей стране (Китай).
- Работает на серверах Linux и большинстве серверов BSD.
- Есть официальное программное обеспечение клиента V2Ray для Linux, macOS, Windows и BSD. Для Android и iOS также доступны сторонние приложения.
- Прост в настройке для системных администраторов
- V2Ray можно настроить на работу на TCP-порту 443 и использовать стандартный протокол TLS для шифрования сетевого трафика. Это выглядит как стандартный протокол HTTPS, что делает его сложным для блокировки.
- Поддерживает транспортный протокол KCP, который полезен в сетевых средах с высокой потерей пакетов.
- Поддержка маршрутизации. Вы можете настроить его так, чтобы маршрутизировать трафик только для веб-сайтов/доменов, заблокированных в вашей стране или регионе.
- Можно запустить его защищенным от Cloudflare CDN.
- V2Ray — это не просто инструмент для прокси. Это разработано как платформа, которую разработчики могут использовать для создания новых протоколов и инструментов.
Требования
Для выполнения этого учебника вам понадобится VPS (виртуальный частный сервер), который может свободно получать доступ к заблокированным веб-сайтам (за пределами вашей страны или системы фильтрации Интернета). Я рекомендую VPS от Kamatera, которая предлагает:
- 30-дневную бесплатную пробную версию.
- Начинается с $4/месяц (1 ГБ ОЗУ)
- Высокопроизводительный VPS на основе KVM
- 9 центров обработки данных по всему миру, включая Соединенные Штаты, Канаду, Великобританию, Германию, Нидерланды, Гонконг и Израиль.
Следуйте по ссылке ниже, чтобы создать свой VPS-сервер Linux на Kamatera.
Как только у вас будет работающий VPS на Ubuntu 22.04/20.04, следуйте инструкциям ниже.
Шаг 1: Установка V2Ray на сервере Ubuntu 22.04/20.04
Подключитесь к удаленному серверу Ubuntu по SSH. Если у вас установлена Ubuntu 22.04/20.04, то я рекомендую установить V2Ray вручную, потому что пакет v2ray в репозитории имеет проблему при запуске. Запустите следующую команду для установки зависимостей.
sudo apt install curl unzip
Загрузите официальный установочный скрипт V2Ray. (Обычно я не рекомендую устанавливать программное обеспечение с помощью сторонних скриптов, но это установочный скрипт, предоставленный официальными разработчиками V2Ray, поэтому я его использую.)
curl -O https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh
Запустите установочный скрипт.
sudo bash install-release.sh

sudo systemctl status v2ray

Если V2Ray не запущен, перезапустите его.
sudo systemctl restart v2ray
Включите автозапуск при загрузке системы.
sudo systemctl enable v2ray
Шаг 2: Настройка синхронизации времени по NTP
Очень важно, чтобы время на вашем сервере было точным, иначе V2Ray может сбоить. Это необходимо для обеспечения наилучшей безопасности для пользователей. Проверьте время на вашем сервере.
timedatectl
Как видите, время системных часов на моем сервере синхронизировано. Если это не так на вашем сервере, выполните учебник, ссылка на который указана ниже, чтобы настроить синхронизацию времени по NTP.
Шаг 3: Настройка V2Ray на сервере
Отредактируйте файл конфигурации V2Ray с помощью текстового редактора командной строки, такого как Nano.
sudo nano /usr/local/etc/v2ray/config.json
Удалите все из этого файла, затем добавьте следующие строки. Замените id случайными символами в формате UUID. Вы можете использовать онлайн-генератор UUID.
{"log":{"loglevel":"warning","access":"/var/log/v2ray/access.log","error":"/var/log/v2ray/error.log"},"inbounds":[{"port":10000,"listen":"127.0.0.1","protocol":"vmess","settings":{"clients":[{"id":"b831381d-6324-4d53-ad4f-8cda48b30811","alterId":64}]},"streamSettings":{"network":"ws","wsSettings":{"path":"/ray"}}}],"outbounds":[{"protocol":"freedom","settings":{}}]}
Сохраните и закройте файл. Сервер V2Ray будет слушать порт 10000. Затем перезапустите V2Ray, чтобы изменения вступили в силу.
sudo systemctl restart v2ray
Проверьте прослушиваемые порты.
sudo ss -lnpt | grep v2ray
LISTEN 0 4096 127.0.0.1:10000 *:* users:(("v2ray",pid=701205,fd=3))
Шаг 4: Настройка обратного прокси
Установите веб-сервер Nginx.
sudo apt install nginx
Создайте виртуальный хост для V2Ray.
sudo nano /etc/nginx/conf.d/v2ray.conf
Добавьте следующие строки в этот файл. Замените example.com на свое собственное доменное имя. Можно также использовать поддомен.
server { listen 80; server_name example.com; index index.html; root /usr/share/nginx/html/; access_log /var/log/nginx/v2ray.access; error_log /var/log/nginx/v2ray.error; location /ray { # Согласуется с путем конфигурации V2Ray if ($http_upgrade != "websocket") { # Вернуть ошибку 404, если не удалось согласование обновления WebSocket return 404; } proxy_redirect off; proxy_pass http://127.0.0.1:10000; # Предполагается, что WebSocket слушает на localhost на порту 10000 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; # Показывать реальный IP в v2ray access.log proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
Сохраните и закройте файл. Затем протестируйте конфигурацию Nginx.
sudo nginx -t
Если тест прошел успешно, перезагрузите Nginx.
sudo systemctl reload nginx
Шаг 5: Включение HTTPS
Включим HTTPS, чтобы ваша брандмауэр не знал, что вы используете прокси.
Установите последнюю версию клиента Let’s Encrypt certbot из Snap store.
sudo apt install snapd sudo snap install certbot --classic
Затем выполните следующую команду для получения бесплатного сертификата Let’s Encrypt.
sudo /snap/bin/certbot --webroot -i nginx --agree-tos --hsts --staple-ocsp -d example.com -e [email protected] -w /usr/share/nginx/html/
Как только он будет получен, он автоматически установится для вашего веб-сервера Nginx.
Шаг 6: Настройка брандмауэра
Если вы используете брандмауэр iptables на вашем сервере, выполните следующую команду, чтобы разрешить трафик на TCP-порт 443.
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT
Если вы используете брандмауэр UFW, выполните следующие команды:
sudo ufw allow 443/tcp
Шаг 7: Установка и настройка V2Ray на клиентском компьютере
Linux Desktop
Пожалуйста, выполните ту же процедуру, что и в шаге 1, чтобы установить V2Ray на Linux-рабочем столе. После этого отредактируйте файл конфигурации.
sudo nano /usr/local/etc/v2ray/config.json
Удалите все из этого файла, затем добавьте следующие строки.
{"inbounds":[{"port":1090,"listen":"127.0.0.1","protocol":"socks","sniffing":{"enabled":true,"destOverride":["http","tls"]},"settings":{"auth":"noauth","udp":false}}],"outbounds":[{"protocol":"vmess","settings":{"vnext":[{"address":"example.com","port":443,"users":[{"id":"b831381d-6324-4d53-ad4f-8cda48b30811","alterId":0}]}}],"streamSettings":{"network":"ws","security":"tls","wsSettings":{"path":"/ray"}}}
Параметр id на клиенте V2Ray должен совпадать с параметром id на сервере V2Ray. Это как предварительно согласованный пароль. Параметр alterId должен быть установлен в 0, чтобы клиент V2Ray включил алгоритм шифрования AEAD.
Сохраните и закройте файл. Затем перезапустите V2Ray, чтобы изменения вступили в силу.
sudo systemctl restart v2ray
Проверьте прослушиваемые порты.
sudo ss -lnpt | grep v2ray
LISTEN 0 4096 127.0.0.1:1090 0.0.0.0:* users:(("v2ray",pid=495211,fd=3))
Клиент V2Ray слушает порт 1090 (для веб-браузеров) и будет перенаправлять запросы на сервер V2Ray, который слушает порт 10086.
Windows
Пользователи Windows могут загрузить клиент V2Ray со страницы его релизов на GitHub. Щелкните ссылку Show all assets, затем вы найдете ZIP-файл V2Ray для Windows.
Распакуйте файл. Вы найдете файл config.json. Используйте NotePad или ваш редактор текста по умолчанию для открытия этого файла. Удалите все из этого файла, затем добавьте следующие строки.
{"inbounds":[{"port":1090,"listen":"127.0.0.1","protocol":"socks","sniffing":{"enabled":true,"destOverride":["http","tls"]},"settings":{"auth":"noauth","udp":false}}],"outbounds":[{"protocol":"vmess","settings":{"vnext":[{"address":"example.com","port":443,"users":[{"id":"b831381d-6324-4d53-ad4f-8cda48b30811","alterId":0}]}}],"streamSettings":{"network":"ws","security":"tls","wsSettings":{"path":"/ray"}}}
Замените server_ip_address на ваш реальный IP-адрес сервера. Параметр id на клиенте V2Ray должен совпадать с параметром id на сервере V2Ray. Это как предварительно согласованный пароль.
Сохраните и закройте файл. Затем откройте PowerShell и выполните следующую команду для запуска v2ray, предполагая, что папка v2ray-windows-64 извлечена в ваш рабочий стол.
.\\Desktop\\v2ray-windows-64\\v2ray run
Шаг 8: Настройка веб-браузера для использования прокси V2Ray
Для того чтобы ваша программа использовала прокси V2Ray, программа должна поддерживать SOCKS-прокси. Программы, такие как Firefox, Google Chrome и Dropbox, позволяют пользователям использовать прокси. Я покажу вам, как настроить Firefox и Google Chrome.
Firefox
В Firefox перейдите в Edit > Preferences > General (или Tools -> Options -> General). Затем прокрутите вниз до конца и нажмите Settings в Network Setting.
В окне Connection Settings выберите manual proxy configuration. Затем выберите SOCKS v5, потому что V2Ray — это SOCKS5-прокси. Введите 127.0.0.1 в поле SOCKS Host и 1090 в поле порта. Убедитесь, что включена опция Proxy DNS when using SOCKS v5. Нажмите OK, чтобы применить эти изменения.

Google Chrome
Рекомендую установить расширение Proxy SwitchyOmega для управления прокси в Google Chrome.

После установки расширения в Google Chrome, настройте прокси-сервер следующим образом:
- Выберите протокол SOCKS5.
- Установите адрес сервера как 127.0.0.1.
- Установите номер порта как 1090.

Примените изменения. Затем щелкните значок расширений в правом верхнем углу и выберите Proxy SwitchyOmega.

По умолчанию SwithyOmega использует настройки прокси операционной системы. Нам нужно изменить это с системного прокси на прокси.

Теперь ваш прокси должен работать.
Шаг 9: Тест DNS утечки
Перейдите на dnsleaktest. com. Вы увидите IP-адрес вашего сервера V2Ray, что указывает на то, что ваш прокси V2Ray работает.

Щелкните «Стандартный тест». Убедитесь, что ваш провайдер интернет-услуг не отображается в результатах теста.
Шаг 10: Включение TCP BBR
TCP BBR — это алгоритм управления перегрузкой TCP, который может существенно улучшить скорость соединения. Запустите следующие две команды для включения алгоритма TCP BBR.
echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.d/60-custom.conf echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.d/60-custom.conf
Затем примените изменения с помощью следующей команды. Опция -p загрузит настройки sysctl из файла /etc/sysctl.d/60-custom.conf. Эта команда сохранит наши изменения после перезагрузок системы.
sudo sysctl -p /etc/sysctl.d/60-custom.conf
Устранение неполадок
Если V2Ray не работает, проверьте журналы в каталоге /var/log/v2ray/ (access.log и error.log).
Если вы видите следующую ошибку, вероятно, потому что время клиента неверное. Пожалуйста, настройте синхронизацию времени.
rejected proxy/vmess/encoding: failed to read request header > websocket: close 1000 (normal)
Если вы столкнулись с следующей ошибкой, установите alterId в 0 в файле конфигурации клиента V2Ray, чтобы включить AEAD.
invalid user: VMessAEAD is enforced and a non VMessAEAD connection is received.
Клиент iOS
OneClick — бесплатный клиент V2Ray для пользователей iOS.
После установки OneClick откройте приложение, выберите add configuration -> VMESS, затем используйте следующие параметры.
- Remarks: Введите что угодно в это текстовое поле.
- Address/IP: Введите ваш домен, как указано в файле конфигурации Nginx. (example.com)
- Port: 443
- ID/UUID: Введите UUID, как указано в файле конфигурации сервера V2Ray.
- Alert ID: 0
- Включите Enable TLS.
- Выберите ws в настройках потока.
- Host: Введите ваш домен, как указано в файле конфигурации Nginx. (example.com)
- Path: /ray
- Оставьте другие поля пустыми.
Примечание: Похоже, что OneClick не поддерживает VMESS-AEAD. Вам нужно отключить его на сервере V2Ray.
sudo systemctl edit v2ray.service
Введите следующие строки.
[Service] Environment=V2RAY_VMESS_AEAD_FORCED=false
Сохраните и закройте файл. Затем перезапустите V2Ray.
sudo systemctl restart v2ray
Глобальный режим на Linux Desktop
Если вы используете Desktop Linux, вы можете использовать прокси V2Ray для всего вашего интернет-трафика (не только для трафика веб-браузера). Перейдите в System settings -> Network -> Network Proxy.

Затем выберите Manual -> Sock Host (127.0.0.1: 1090). Он автоматически определит протокол SOCK (SOCKS4 или SOCKS5).

Как обновить V2Ray
Просто выполните скрипт установки снова.
sudo bash install-release.sh

