Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kyzima-spb/antizapret
Пользовательская сборка АнтиЗапрет
https://github.com/kyzima-spb/antizapret
Last synced: about 2 months ago
JSON representation
Пользовательская сборка АнтиЗапрет
- Host: GitHub
- URL: https://github.com/kyzima-spb/antizapret
- Owner: kyzima-spb
- Created: 2023-10-07T21:34:16.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-11-01T16:20:49.000Z (about 2 months ago)
- Last Synced: 2024-11-01T17:23:45.582Z (about 2 months ago)
- Language: Shell
- Homepage:
- Size: 85.9 KB
- Stars: 15
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
AntiZapret VPN Container
========================- [Введение](#введение)
- [Какой VPS выбрать?](#какой-vps-выбрать)
- [Минимальные системные требования при выборе VPS](#минимальные-системные-требования-при-выборе-vps)
- [Чем пользовался я и что могу посоветовать](#чем-пользовался-я-и-что-могу-посоветовать)
- [Рекомендуемые и протестированные авторами АнтиЗапрет](#рекомендуемые-и-протестированные-авторами-антизапрет)
- [Установка](#установка)
- [Автоматическая установка](#автоматическая-установка)
- [Установка на Vultr и Scaleway с помощью cloud-init](#установка-на-vultr-и-scaleway-с-помощью-cloud-init)
- [После установки](#после-установки)
- [Удаление](#удаление)
- [Полезные команды](#полезные-команды)
- [Особенности VPN](#особенности-vpn)
- [Нестандартный способ маршрутизации](#нестандартный-способ-маршрутизации)
- [Намеренное удаление IPv6-адресов](#намеренное-удаление-ipv6-адресов)
- [Работа со сторонними DNS-зонами](#работа-со-сторонними-dns-зонами)
- [Техническая поддержка](#техническая-поддержка)## Введение
**Что это?** Это полный аналог сервиса для получения доступа к заблокированным сайтам в Российской Федерации [АнтиЗапрет VPN](https://antizapret.prostovpn.org/), пригодный для установки на личный сервер в интернете.
**Какие преимущества перед обычным VPN?** Обычные VPN направляют трафик ко всем сайтам и сервисам через свои серверы, что понижает общую скорость работы интернета. АнтиЗапрет направляет трафик на свои серверы только к сайтам и сервисам, заблокированным на территории Российской Федерации, и не снижает скорость открытия других сайтов.
**Зачем нужен этот контейнер?** Он нужен в случаях, если вы не доверяете администратору сервиса АнтиЗапрет, недовольны скоростью работы или просто хотите запустить аналог сервиса для себя на собственном оборудовании.
## Какой VPS выбрать?
При выборе VPS для VPN стоит ориентироваться на физическое расположение сервера и пинг.
Ниже приведены минимальные необходимые системные требования, все что отсутствует в списке - большой роли не играет.### Минимальные системные требования при выборе VPS
* Личный сервер или VPS с виртуализацией XEN или KVM (OpenVZ не подойдёт)
* Выделенный IPv4-адрес
* Минимум 1Gb оперативной памяти
* Минимум 5Gb дискового пространства
* Дистрибутив Linux, где доступен systemd-machined (рекомендуется Debian 11, в Debian 12 есть проблемы с доступом в консоль контейнера)
* Безлимитный трафик, либо как можно больше =)### Чем пользовался я и что могу посоветовать
*Все ссылки реферальные!!! Оплата в рублях с российских карт и ЮМани, другие способы уточняйте.*
* [RoboVPS](https://www.robovps.biz/?ref=39155)
* период использования: 17.04.2022 - 17.10.2023
* очень хороший и стабильный хостинг, ТП отвечает быстро,
был оптимальный вариант по соотношению цена/качество, пока не повысили цены
* ChatGPT открывается, но не выдает токен (на момент использования, сейчас не знаю)* [HOSTING RUSSIA](https://hosting-russia.ru/?p=37512)
* период использования: 17.10.2023 - по сегодня
* ChatGPT выдал токен в локации Германия* [аéза](https://aeza.net/?ref=451381)
* тестировал 21.02.2024 локации США, Лондон и Нидерланды для выдачи токена ChatGPT
* почасовая оплата
* ChatGPT выдал токен в локации Лондон и Нидерланды, в США - отказался### Рекомендуемые и протестированные авторами АнтиЗапрет
*Часть ссылок — реферальные. При покупке сервера по реферальным ссылкам, часть оплаченной суммы пойдёт на содержание серверов АнтиЗапрета.*
* [ITLDC](https://itldc.com/?from=51099) (сервер SSD VDS 1G за €3.99)
* [Vultr](https://www.vultr.com/?ref=8592407-6G) (серверы за $5, при регистрации по ссылке даётся бонус на первый месяц)
* [Scaleway](https://www.scaleway.com/en/)## Установка
### Автоматическая установка
Входим в систему используя SSH: IP-адрес хоста, логин и пароль обычно выдает хостер.
Все команды выполняем от пользователя `root` или используя `sudo`.Установщику можно задать следующие переменные окружения:
* `COMMAND` - имя команды, по-умолчанию `install`
* `NAME` - имя контейнера, по-умолчанию `antizapret-vpn`
* `IMAGE` - URL-адрес или путь к файлу с образом
* `BACKUP_FILE` - путь к файлу с бекапом OpenVPN для сохранения или восстановления1. Установка официального контейнера:
```shell
wget -qO- https://kyzima-spb.github.io/antizapret/installer.sh | bash
```
2. Установка моей версии контейнера с улучшениями:
```shell
wget -qO- https://kyzima-spb.github.io/antizapret/installer.sh | \
IMAGE=https://kyzima-spb.github.io/antizapret/rootfs.tar.xz \
bash
```
3. Установка контейнера с указанием имени:
```shell
wget -qO- https://kyzima-spb.github.io/antizapret/installer.sh | \
NAME=antizapret \
bash
```### Установка на Vultr и Scaleway с помощью cloud-init
**Scaleway**: при создании нового сервера (instance) выберите ОС Ubuntu 20.04,
после пункта #5 (Enter a Name and Optional Tags) нажмите на кнопку "Advanced Options",
активируйте "Cloud-init", скопируйте и вставьте скрипт ниже.**Vultr**: при создании нового сервера выберите ОС Ubuntu 20.04,
в пункте Startup Script создайте новый скрипт кнопкой Add New убедитесь,
что тип скрипта - Boot, скопируйте и вставьте скрипт ниже.```bash
#!/bin/bash
export DEBIAN_FRONTEND=noninteractive
export APT_LISTCHANGES_FRONTEND=none
apt update
apt -y install systemd-container dirmngr
mkdir -p /root/.gnupg/
gpg --no-default-keyring --keyring /etc/systemd/import-pubring.gpg --keyserver hkps://keyserver.ubuntu.com --receive-keys 0xEF2E2223D08B38D4B51FFB9E7135A006B28E1285machinectl pull-tar https://antizapret.prostovpn.org/container-images/az-vpn/rootfs.tar.xz antizapret-vpn
mkdir -p /etc/systemd/nspawn/
echo -e "[Network]\nVirtualEthernet=yes\nPort=tcp:1194:1194\nPort=udp:1194:1194" > /etc/systemd/nspawn/antizapret-vpn.nspawnsystemctl enable --now systemd-networkd.service
machinectl enable antizapret-vpn
machinectl start antizapret-vpn
sleep 20
machinectl copy-from antizapret-vpn /root/easy-rsa-ipsec/CLIENT_KEY/antizapret-client-tcp.ovpn /root/antizapret-client-tcp.ovpn
```По завершении создания сервера у вас уже будет установлен АнтиЗапрет.
### После установки
После успешной установки должен появиться файл `antizapret-client-tcp.ovpn`.
Это ваш конфигурационный файл OpenVPN, который нужно импортировать в программу OpenVPN на компьютере
и OpenVPN Connect на Android и iOS.Если установка выполнялась скриптом, то файл появится в директории, из которой был запущен скрипт.
Если вы не меняли директорию, то по-умолчанию это домашняя директория пользователя.
Для пользователя `root`, то это `/root`, иначе `/home/`.Скопируйте файл `antizapret-client-tcp.ovpn` с сервера на ваш компьютер,
с помощью программы FileZilla (Windows, macOS, Linux) или WinSCP (только для Windows), по протоколу **SFTP**.В Linux данный файл можно скачать с сервера командой:
```shell
scp @:
```## Удаление
1. Чтобы удалить контейнер, образ и все связанные файлы выполните:
```shell
wget -qO- https://kyzima-spb.github.io/antizapret/installer.sh | \
COMMAND=uninstall bash
```
2. Если при установке было задано другое имя, то выполните:
```shell
wget -qO- https://kyzima-spb.github.io/antizapret/installer.sh | \
COMMAND=uninstall NAME=antizapret bash
```## Полезные команды
Для входа в контейнер воспользуйтесь командой:
```shell
machinectl shell
```Команды, которые можно выполнить внутри контейнера АнтиЗапрет.
1. Обновить сопоставление хостов для проксирования
```shell
LANG=C.UTF-8 /root/antizapret/doall.sh
```
2. Очистить кеш Knot Resolver
```shell
echo "cache.clear()" | socat - /run/knot-resolver/control/1
```## Особенности VPN
### Нестандартный способ маршрутизации
В отличие от обычных VPN, осуществляющих перенаправление отдельных IP-адресов или диапазонов средствами маршрутизации ОС, VPN АнтиЗапрета использует маршрутизацию на основе доменных имен, с помощью специального DNS-сервера, созданного для этой цели.
На VPN-сервере запущен специальный DNS-резолвер, устанавливающий отображение (соответствие, маппинг) настоящего IP-адреса домена в свободный IP-адрес большой внутренней подсети, и отдающий запрашиваемому клиенту адрес из внутренней подсети.
У такого подхода есть множество преимуществ:
* Клиенту устанавливается только один или несколько маршрутов, вместо десятков тысяч маршрутов;
* Маршрутизируются только заблокированные **домены**, а не все сайты на заблокированном IP-адресе;
* Возможность обновления списка заблокированных сайтов без переподключения клиента;
* Корректная работа с доменами, постоянно меняющими IP-адреса, и с CDN-сервисами;
* Корректная работа с провайдерами, блокирующими все поддомены заблокированного домена (блокировка всей DNS-зоны). Пример такого провайдера — Yota.Но есть и минусы:
* Необходимо использовать только DNS-сервер внутри VPN. С другими DNS-серверами работать не будет.
* Работает только для заблокированных доменов и программ, использующих доменные имена. Для заблокированных IP-адресов необходимо использовать обычную маршрутизацию.Схематичное представление:
```
📱 — Клиент
🖥 — VPN и DNS-сервер
🖧 — Интернет📱 → rutracker.org? → 🖥
🖥 → rutracker.org? → 🖧
🖥 ← 195.82.146.214 ← 🖧
10.224.0.1 → 195.82.146.214
📱 ← 10.224.0.1 ← 🖥
```Обычная способ маршрутизации также применяется, но только для больших диапазонов заблокированных адресов (всего несколько маршрутов).
### Намеренное удаление IPv6-адресов
Текущая версия специального DNS-сервера не работает с IPv6 и намеренно удаляет IPv6-адреса (AAAA-записи) из DNS-ответов, чтобы у пользователей, провайдеры которых предоставляют IPv6-связность, работал обход блокировок.
Это не является серьёзным недостатком, так как сайтов, доступных только по IPv6, но не по IPv4, практически не существует.
Корректная поддержка IPv6 запланирована в следующих версиях специального DNS-сервера.
### Работа со сторонними DNS-зонами
Контейнер настроен на работу с дополнительными доменными зонами, которые используются некоторыми заблокированными сайтами:
* OpenNIC (`.bbs, .chan, .cyb, .geek, .pirate` и другие);
* EmerDNS (`.lib, .emc, .coin, .bazar`);
* Namecoin (`.bit`).## Техническая поддержка
Техническая поддержка осуществляется на форуме NTC Community: https://ntc.party/c/antizapret-prostovpn-org