Прокси сервис из VPN на Python + FastAPI

ZennoCat

Client
Регистрация
06.01.2020
Сообщения
61
Благодарностей
32
Баллы
18
Всем привет!
Я никогда раньше не писал подобные статьи, но всегда хотел что-то опубликовать на ZennoLab, так как очень люблю ZennoPoster и реализовал на нём достаточно много проектов. Считаю его одним из лучших инструментов для автоматизации самых разных задач, а сам форум — очень ценным источником информации для каждого автоматизатора, независимо от того, создаёт он проекты на ZennoPoster, Python или чём-то ещё.

На создание данного проекта меня вдохновила статья из прошлых конкурсов:
«В ZennoPoster VPN у нас, а у Вас? Или использование VPN в многопотоке».

Какую же проблему решает мой проект? Я думаю что у многих автоматизаторов возникала потребность парсить какие-то данные откуда либо и часто мы получаем блокировки по IP и по итогу не можем получить необходимые нам данные. Я сделал этот API так как мне показалось что это хорошее решение для обхода блокировок и мне хотелось бы сделать это доступным из коробки любому автоматизатору. Уже сейчас мне удалось парсить Google и еще некоторые более простые веб-сайты.
Честно говоря я считаю VPN имеет ряд своих преимуществ перед простыми прокси, к примеру тариф на ProtonVPN обойдется намного дешевле чем аренда прокси (особенно если взять его по скидке) и VPN имеет очень не плохой траст так как много живых людей используют эти IP.
Также прикладываю небольшую гифку, в которой можно увидеть, как всё это работает.
131691


Проект написан на Python. Хочу подчеркнуть, что не являюсь «сильным» программистом, и программирование — это скорее моё хобби, поэтому, если в теме будут опытные коллеги, прошу отнестись с пониманием к моему коду. Он, конечно, не без багов. И в этом проекте я впервые использовал FastAPI по рекомендации своих коллег автоматизаторов.
Кому интересен код самого проекта, вы можете посмотреть его здесь: https://github.com/tyshchenko-dev/proxy_api

Сейчас я кратко опишу алгоритм работы данного проекта.
Для правильной работы API нам нужны 2 программы:
1. OpenVPN
2. 3proxy

Далее я буду часто использовать понятие OVPN-конфиг. Потому наверное было бы лучше написать что имеется ввиду.
OVPN-конфиг — это обычный текстовый файл с инструкциями для программы OpenVPN о том, как подключаться к VPN-серверу. В нём указаны все необходимые параметры: адрес сервера, способы шифрования, пути к сертификатам, логин/пароль и т.д. Когда вы запускаете OpenVPN и указываете ему этот файл, программа читает настройки и устанавливает зашифрованное VPN-соединение согласно всем прописанным параметрам.

Внутри API я создал класс которые отвечает за работу с OpenVPN и назвал его OpenVPNManager давайте посмотрим как работают некоторые его методы.
Метод который используется для запуска конфига:
Python:
def start_openvpn(self, config_path: str):
        try:
            process = subprocess.Popen([
                "sudo",
                "openvpn",
                "--config",
                config_path,
                "--daemon"
            ])
            return process.pid
        except Exception as e:
            raise OpenVPNStartError("Failed to start OpenVPN") from e
на самом деле этот метод выполняет простую команду для linux которая запускает OVPN с необходимым нам конфигом, а в переменной config_path мы просто передаем путь к файлу ovpn конфига который мы выбрали для запуска.
Но для того чтобы конфиг работал правильно в него необходимо добавить определенные строки с этим нам помогает метод ниже
Python:
    def prepare_ovpn_config(self, folder_name: str, file_name: str, tunnel: str) -> str:
        config_text = self.config.OVPN_CONFIG_TEMPLATE.replace('{{adapter_name}}', tunnel)

        logging.info(f"Copy config file to {self.config.TEMP_FOLDER}")
        config_full_path = os.path.join(self.config.CONFIGS_FOLDER, folder_name, file_name)
        shutil.copy(config_full_path, self.config.TEMP_FOLDER)
        ovpn_temp_path = os.path.join(self.config.TEMP_FOLDER, file_name)
        logging.info(f"Append ovpn config to {ovpn_temp_path}")
        with open(ovpn_temp_path, 'a') as f:
            f.write(config_text)

        return ovpn_temp_path
данный метод подменяет {{adapter_name}} на tun1 либо любой другой свободный туннель и добавляет строки в ovpn конфиг:
Python:
auth-user-pass userpass.txt
dev {{adapter_name}}
route 0.0.0.0 192.0.0.0 net_gateway
route 64.0.0.0 192.0.0.0 net_gateway
route 128.0.0.0 192.0.0.0 net_gateway
route 192.0.0.0 192.0.0.0 net_gateway
auth-user-pass userpass.txt
Говорит клиенту OpenVPN использовать файл userpass.txt для ввода учётных данных (логин и пароль от нашего ovpn конфига, дальше в статье и в видео вы сможете увидеть откуда его взять).
dev {{adapter_name}}
Определяет, на каком сетевом интерфейсе (адаптере) будет работать VPN-туннель. Переменная {{adapter_name}} сделана для удобства динамической подстановки имени адаптера так как мы будем поднимать много впн одновременно.
route проще говоря
Если убрать эти строки, весь интернет-трафик сервера пойдёт через VPN-туннель.
Благодаря этим строкам трафик сервера продолжит ходить через обычное интернет-соединение, а VPN будет запущен отдельно, и через него будет идти только тот трафик, для которого явно настроен маршрут или который нужен внутри самой VPN-сети.
После того как мы подняли конфиг, скрипт автоматически сохраняет PID этого процесса чтобы в дальнейшем его можно было остановить при потребности.

Теперь нам необходимо получить IP нашего туннеля, для этого есть отдельный метод который выполняет эту задачу
Python:
def get_vpn_ip(self, tunnel: str):
        try:
            output = subprocess.check_output(['ip', '-4', 'addr', 'show', 'dev', tunnel]).decode()
            for line in output.splitlines():
                if 'inet ' in line:
                    return line.strip().split()[1].split('/')[0]
        except Exception as e:
            raise FindIPError(f"Failed to get IP from {tunnel}: {e}")
данный метод выполняет команду в linux, а именно ip -4 addr show dev tunnel вместо tunnel подставляется название туннеля на котором запущен OVPN конфиг к примеру tun1 либо tun10
Этот IP мы будем использовать для запуска 3proxy.

Теперь я немного опишу как мой скрипт работает с 3proxy, после того как мы подняли OVPN-конфиг, нам необходимо сделать из него прокси и в этом нам как раз и поможет 3proxy.
Также почитать документацию по 3proxy и по доступным настройкам можно на Github: https://github.com/3proxy/3proxy
В config.py моего проекта вы можете увидеть такой код:
Python:
PROXY_CONFIG_TEMPLATE = """
daemon
nscache 65536
log /var/log/3proxy/3proxy.log
logformat "L%Y-%m-%d %H:%M:%S %N.%p %E %U %C:%c %R:%r %O %I %h %T"
rotate 7

auth strong

users {{proxy_login}}:CL:{{proxy_pass}}

allow {{proxy_login}}

"""

OPEN_PROXY_TEMPLATE = """
{{proxy_type}} -p{{proxy_port}} -i0.0.0.0 -e{{adapter_ip}}
"""
Эти две переменные содержат шаблоны которые дальше подставляются в файл proxy.cfg. Который и устанавливает правила запуска наших прокси.

Переменная PROXY_CONFIG_TEMPLATE содержит настройки для наших будующих прокси.
daemon запускает 3proxy в фоновом режиме (демон).
nscache 65536 Устанавливает размер DNS-кэша в 65536 записей.
rotate это какая-то доп. настройка для лог файла
log задает файл с логами (в этом файле можно видеть трафик который идет через прокси)
logformat здесь задан формат сохранения данных в лог
auth strong говорит о том что прокси будут использовать авторизацию
users {{proxy_login}}:CL:{{proxy_pass}}
задает логин и пароль для нашей прокси {{proxy_login}} и {{proxy_pass}}.

Переменная OPEN_PROXY_TEMPLATE содержит шаблон который динамически подменяется и добавлятся в файл proxy.cfg
{{proxy_type}} это протокол прокси (мой скрипт поднимает прокси сразу на двух протоколах http, socks5)
-p{{proxy_port}} это порт на котором доступна наша прокся
-i0.0.0.0 говори что наши прокси будут доступны внешнему миру.
-e{{adapter_ip}} это и есть тот самый IP нашего OVPN-конфига который мы получили после его запуска.

Логику которая отвечает за работу с 3proxy я сохранил в proxy_manager.py.

Теперь я опишу краткий алгоритм поднятия прокси через API:
На наш сервер приходит POST запрос который хранит в body несколько значений: folder_name и config_name
folder_name
это папка в которой хранится наш конфиг, так как у нас может быть много разных стран для конфигов я решил что будет удобно их разделить на подпапки.
и config_name это полное имя ovpn-конфига который мы хотим запустить, пример запроса который запускает наш прокси:
url запроса: http://{{server_ip}}:{{server_port}}/proxy/start
body запроса: {
"folder_name": "austria"
"config_name": "au-1-protonvpn.ovpn"
}
апи принимает данный запрос и пытается найти свободный туннель для запуска нашего ovpn конфига.
Если мы уже подняли 10 прокси тогда скрипт автоматически выключит самый старый прокси из списка и поднимет новый.
Потом скрипт готовит ovpn-config перед запуском, а именно подставляет в этот шаблон данные необходимые для запуска конфига.
Python:
auth-user-pass userpass.txt
dev {{adapter_name}}
route 0.0.0.0 192.0.0.0 net_gateway
route 64.0.0.0 192.0.0.0 net_gateway
route 128.0.0.0 192.0.0.0 net_gateway
route 192.0.0.0 192.0.0.0 net_gateway
Потом запускается подготовленный ovpn конфиг и сохраняется его IP.
После этого скрипт добавляет в proxy.cfg прокси которые будут доступны на двух протоколах на http, socks5.
И последнее это замер скорости прокси, это делается достаточно просто, а именно скрипт использует поднятый прокси для GET запроса к главной странице Google и общую скорость всего запроса в мс и сохраняет ее как ping данной прокси.

Несмотря на некоторые недочёты (а именно проблему с DNS, сейчас данная реализация не закрывает настоящий DNS сервера и к сожалению мне пока что не удалось решить ее), уже сейчас этот апи помогает мне парсить Google и некоторые другие интересующие меня сайты, обходя блокировки IP-адресов. Сам я использую премиум-версию ProtonVPN (там доступно более 9000 конфигов, причём многие IP-адреса у них уникальные, важно учитывать что сам ProtonVPN разрешает только 10 одновременно поднятых VPN, учитывайте что поднять сразу 100 IP не получится, только 10, но благодаря API вы сможете выполнять ротацию IP в процессе выполнения ваших скриптов).

Что нам нужно, чтобы развернуть этот небольшой прокси-сервис?

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

Установка на Linux (Ubuntu) и запуск через PM2

Нам понадобится:
Сервер на Linux + Ubuntu;
Базовые навыки работы через SSH-клиент.
(Лично я использую MobaXterm, в котором есть и терминал, и удобный файловый менеджер.)

Все действия я выполнял в корневой директории (/root), но вы можете использовать другую — просто не забудьте менять пути в командах.
  • Подключитесь к серверу по SSH.
  • Выполните команду:
    Код:
    sudo apt-get update
  • Установите OpenVPN:
    Код:
    sudo apt-get install openvpn
  • Установите необходимые утилиты для компиляции проекта:
    Код:
    sudo apt install -y git build-essential
  • Скачиваем репозиторий 3proxy с GitHub:
    Код:
    sudo git clone https://github.com/z3APA3A/3proxy.git
  • Переходим в папку репозитория:
    Код:
    cd 3proxy
  • Выполняем команду сборки:
    Код:
    sudo make -f Makefile.Linux
  • Устанавливаем 3proxy:
    Код:
    sudo make -f Makefile.Linux install
  • Проверяем, где находится бинарник 3proxy:
    Код:
    which 3proxy
    (должен показать путь к исполняемому файлу).
  • Открываем порты на сервере. Сначала устанавливаем ufw:
    Код:
    sudo apt install ufw
  • Проверяем статус ufw:
    Код:
    ufw status
    (должно отобразиться Status: inactive).
  • Разрешаем доступ по SSH (иначе может «отрубить» при включении ufw):
    Код:
    sudo ufw allow ssh
  • Открываем порт для нашего веб-приложения:
    Код:
    sudo ufw allow 3000/tcp
  • Открываем порты для прокси:
    Код:
    sudo ufw allow 8000:8020/tcp
  • Запускаем ufw с добавленными правилами:
    Код:
    sudo ufw enable
  • Устанавливаем Python 3 и необходимые инструменты:
    Код:
    sudo apt install python3 python3-venv python3-pip
  • Возвращаемся в /root:
    Код:
    cd /root/
  • Скачиваем репозиторий с моим проектом:
    Код:
    git clone https://github.com/tyshchenko-dev/proxy_api.git
  • Переходим в папку проекта:
    Код:
    cd /root/proxy_api
  • Создаём виртуальное окружение:
    Код:
    python3 -m venv venv
  • Активируем его:
    Код:
    source venv/bin/activate
  • Устанавливаем зависимости:
    Код:
    pip install -r requirements.txt
  • Затем можем деактивировать окружение:
    Код:
    deactivate
  • Устанавливаем PM2 для удобного контроля работы проекта (это не обязательно, но я привык к PM2). Сначала ставим Node.js:
    Код:
    sudo apt install nodejs npm
  • Устанавливаем pm2:
    Код:
    npm install pm2 -g
  • В проекте найдите папку static, в ней — файл index.js.
    Внутри файла нужно вписать IP вашего сервера в переменную и указать порт (по умолчанию там 3000).
  • Тоже самое сделайте в файле .env, добавьте адрес своего сервера.
  • В файл userpass.txt в перенесите логин и пароль от protonvpn. https://account.protonvpn.com/account-password131692131693
  • И в папку vpn_configs добавьте свои протон конфиги (старые конфиги которые загружаются из гитхаба думаю будет лучше удалить). Важно все конфиги нужно хранить в подпапке, к примеру я храню конфиги примерно так /root/proxy_api/vpn_configs/netherlands/и сюда добавляем все конфиги для netherlands, если у нас есть конфиги другой страны то для нее делаем отдельную папку и в нее сохраняем конфиги, пример /root/proxy_api/vpn_configs/united_states/
    Конфиги можно найти по ссылке https://account.protonvpn.com/downloads
    (Для того чтобы скачать конфиги вы должны быть зарегистрированы на сайте ProtonVPN, после регистрации на сайте будет доступно небольшое количество фришных конфигов, установите все настройки как на скрине ниже и скачайте их)
    131703
  • Запускаем проект через pm2:
    Код:
    pm2 start /root/proxy_api/main.py --interpreter /root/proxy_api/venv/bin/python
  • В будующем если вы захотите посмотреть больше различных команд для pm2, посмотрите их на этой страничке https://pm2.keymetrics.io/docs/usage/quick-start/
  • Теперь приложение должно начать работать.
  • Можно перейти по адресу: http://<IP_сервера>:3000/login
  • По умолчанию в БД (SQLITE) добавлен юзер с логином root и паролем 12345. Используйте эти данные для входа в панель управления.

После авторизации в дашборде вы можете выбрать страну (прокси) в выпадающем меню и нажать Proxy Search, а затем выбрать любой из доступных конфигов и нажать Turn On.
131726


После этого прокси запустится. По умолчанию он доступен в двух протоколах: socks5 и http. В списке прокси вы можете выбрать нужный протокол через выпадающее меню, скопировать адрес и добавить его в ZennoPoster. Затем протестировать, например, на whoer.net.

На этом процесс установки и запуска проекта завершён!

Пример проекта для ZennoPoster
131724


Я также прикрепляю пример Zennoposter-проекта для взаимодействия с API. В настройках этого проекта укажите IP вашего сервера, чтобы всё корректно работало. Документация доступна по адресу (конечно в данный момент ее необходимо сделать более информативной) - http://<IP_сервера>:3000/docs
131725


Еще хотел бы добавить, если вы захотите создать свой аккаунт вместо root,12345 тогда вам необходимо удалить файл proxy.db в главной директории проекта.
И на вашем сервере необходимо расскоментировать код который показан на скриншоте ниже он находится по пути /routes/user.py и перезапустить апишку командой
Код:
pm2 restart main
131762

далее перейдите в документацию, как это сделать я рассказывал выше, там вы сможете найти новый endpoint /user/signup он и поможет вам зарегистрировать нового пользователя. Если вы хотите закрыть регистрацию обратно, просто закоментируйте данный код и еще раз перезапустите апи.

Логин и пароль прокси, JWT ключ для шифрования и другие настройки находятся в файле .env вы можете их заменить так как вам удобно :-)

Вот и всё. Надеюсь, данная статья и мой скрипт будут вам полезны! Если возникнут вопросы или пожелания по улучшению проекта, буду рад услышать ваши комментарии либо же вы можете самостоятельно улучшить код проекта и отправить ваши улучшения в гит репозиторий. Спасибо за внимание!:az:

 

Вложения

Последнее редактирование:

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 860
Благодарностей
2 573
Баллы
113
Статья однозначно очень полезная!

Можно настройку сервера сделать например в Зеннопостере, после чего продавать настройку как услугу через какой-то Кворк - думаю спрос должен был бы быть (изучать тонкости всех команд людям сложно - проще $10 заплатить и получить готовый настроенный сервис).

Закладку себе на эту инструкцию сохраню!
 
  • Спасибо
Реакции: spbalexpiter и ZennoCat

ZennoCat

Client
Регистрация
06.01.2020
Сообщения
61
Благодарностей
32
Баллы
18
Статья однозначно очень полезная!

Можно настройку сервера сделать например в Зеннопостере, после чего продавать настройку как услугу через какой-то Кворк - думаю спрос должен был бы быть (изучать тонкости всех команд людям сложно - проще $10 заплатить и получить готовый настроенный сервис).

Закладку себе на эту инструкцию сохраню!
Большое спасибо за оценку), очень старался).
 
  • Спасибо
Реакции: BAZAg

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 860
Благодарностей
2 573
Баллы
113
Большое спасибо за оценку), очень старался).
Даже описать весь процесс, не говоря уже вникнуть, оттестировать и запустить чтобы работало - это нужно было потратить огромное количество времени - и по Вашей статье это видно с первого взгляда.
 
  • Спасибо
Реакции: ZennoCat

spbalexpiter

Client
Регистрация
24.11.2013
Сообщения
430
Благодарностей
115
Баллы
43
Спасибо за статью.
Есть ли ограничения в данном методе на количество потоков? Т.е. могу ли я использовать сразу 100 проксей одновременно скажем?
 
  • Спасибо
Реакции: seodamage и ZennoCat

ZennoCat

Client
Регистрация
06.01.2020
Сообщения
61
Благодарностей
32
Баллы
18
Спасибо за статью.
Есть ли ограничения в данном методе на количество потоков? Т.е. могу ли я использовать сразу 100 проксей одновременно скажем?
Конкретно в данном скрипте который я написал можно поднять одновременно только 10 прокси. И сам ProtonVPN разрешает только 10 одновременно поднятых VPN, но количество подключений к прокси неограниченно, к примеру можно подключаться к одной проксе сразу с нескольких устройств, главное чтобы VPN выдерживал нагрузку.
Рад что статья понравилась), возможно я не все смог описать правильно, так как этой первый опыт написания статьи и тема достаточно сложная. В следующий раз постараюсь лучше:-)
 
Последнее редактирование:

ZennoCat

Client
Регистрация
06.01.2020
Сообщения
61
Благодарностей
32
Баллы
18
Друзья, отпишите кто-то, кто пытался повторить инструкцию, получилось ли у вас что то?) просто фидбек на будущее. Спасибо;-)
 
Последнее редактирование:

zlodey

Client
Регистрация
24.04.2011
Сообщения
139
Благодарностей
12
Баллы
18
Спасибо, то что искал! Осталось сделать список впн провайдеров кто предоставляет много конфигов
 
  • Спасибо
Реакции: ZennoCat

ZennoCat

Client
Регистрация
06.01.2020
Сообщения
61
Благодарностей
32
Баллы
18

zlodey

Client
Регистрация
24.04.2011
Сообщения
139
Благодарностей
12
Баллы
18
Хотелось бы иметь возможно подключать одновременно разные сервисы, каким образом можно указать в userpass.txt доступы к разным сервисам и есть ли вообще такая возможность?
 

ZennoCat

Client
Регистрация
06.01.2020
Сообщения
61
Благодарностей
32
Баллы
18
Хотелось бы иметь возможно подключать одновременно разные сервисы, каким образом можно указать в userpass.txt доступы к разным сервисам и есть ли вообще такая возможность?
К сожалению нет(, я планировал это доработать в будущем но для конкурса успел сделать только базовую версию
 

zlodey

Client
Регистрация
24.04.2011
Сообщения
139
Благодарностей
12
Баллы
18
К сожалению нет(, я планировал это доработать в будущем но для конкурса успел сделать только базовую версию
Ну тогда ждем по возможности обновления, у проекта огромный потенциал
 
  • Спасибо
Реакции: ZennoCat

ZennoCat

Client
Регистрация
06.01.2020
Сообщения
61
Благодарностей
32
Баллы
18
Ну тогда ждем по возможности обновления, у проекта огромный потенциал
Рад что вы это поняли, я тоже думал об этом, почему и поделился своими наработками. Мне хотелось чтобы этот проект мог использовать каждый автоматизатор и также чтобы все могли внести свой вклад при желании, потому для всех открыт доступ на гитхабе :-)
 

Darvel

Client
Регистрация
17.11.2013
Сообщения
115
Благодарностей
7
Баллы
18
Надо потестить, как раз то, что надо будет через пару дней, хотел как раз писать сам, немного другой вариант без панели и с shadowsocks, что как раз решило бы проблему с анонимностью, но, в целом, думаю, меня устроит и такой вариант, может получится потом поменять 3proxy на shadowsocks. Если все окей, то однозначно знаю за какую статью голосовать)
 
  • Спасибо
Реакции: ZennoCat

ZennoCat

Client
Регистрация
06.01.2020
Сообщения
61
Благодарностей
32
Баллы
18
Надо потестить, как раз то, что надо будет через пару дней, хотел как раз писать сам, немного другой вариант без панели и с shadowsocks, что как раз решило бы проблему с анонимностью, но, в целом, думаю, меня устроит и такой вариант, может получится потом поменять 3proxy на shadowsocks. Если все окей, то однозначно знаю за какую статью голосовать)
Большое спасибо, очень рад что решение понравилось). Надеюсь получится настроить под ваши нужды)
 

volody00

Client
Регистрация
06.09.2016
Сообщения
970
Благодарностей
1 065
Баллы
93
а могу ли я на бесплатном аккаунте от proton vpn это проделать? И подскажите, какой именно тариф вы брали на proton vpn (VPN Plus, Proton Unlimited, Proton Duo). И сервер подойдет такой htk.ge (или посоветуйте где сами берете с оплатой для ру пользователей). я просто никогда не делал ничего подобного, сорри за глупые вопросы
 
  • Спасибо
Реакции: ZennoCat

ZennoCat

Client
Регистрация
06.01.2020
Сообщения
61
Благодарностей
32
Баллы
18
а могу ли я на бесплатном аккаунте от proton vpn это проделать? И подскажите, какой именно тариф вы брали на proton vpn (VPN Plus, Proton Unlimited, Proton Duo). И сервер подойдет такой htk.ge (или посоветуйте где сами берете с оплатой для ру пользователей). я просто никогда не делал ничего подобного, сорри за глупые вопросы
Вы можете сделать на бесплатном аккаунте но там будет меньшее количество ovpn конфигов доступно. У меня VPN Plus.
По поводу оплаты к сожалению не смогу помочь так как я не из РФ, я покупал сервер здесь - https://www.mvps.net/
В целом я купил базовый сервер linux + ubuntu 1 ядро 2гб RAM. Вы можете задавать любые вопросы, глупых вопросов не бывает).
Прикладываю скрин с конфигами сервера который я использовал для статьи).
132174
 
  • Спасибо
Реакции: volody00

pagan3d

Client
Регистрация
13.11.2017
Сообщения
199
Благодарностей
80
Баллы
28
Протон ВПН вроде можно купить на барахолках готовый акк задешево.
Кстати а там есть впнки в РФ? Чтоб на ру прокси сделать?
 
  • Спасибо
Реакции: ZennoCat

ZennoCat

Client
Регистрация
06.01.2020
Сообщения
61
Благодарностей
32
Баллы
18
Протон ВПН вроде можно купить на барахолках готовый акк задешево.
Кстати а там есть впнки в РФ? Чтоб на ру прокси сделать?
Да,там есть локация РФ.
Если можно купить таким образом как вы говорите то это прям круто), спасибо за подсказку
 

Darvel

Client
Регистрация
17.11.2013
Сообщения
115
Благодарностей
7
Баллы
18
Сделал все по инструкции, кроме того, что у меня установлено на виртуалке на насе, т.е. локальный ip. К панели подключился, все вроде работает, но при выборе прокси и нажатии на Turn on крутится кружок, но прокси не хочет активироваться. И еще момент, что у меня не протон, а сурфшарк, но по идее не должно быть проблемы, я в ручную через консоль уже активировал конфиг и все работало, без панели и 3proxy, я через шэдоусокс руками запускал. Он же по идее просто загружает конфиг и при запросе отдает данные для авторизации, не может же тут быть как-то жестко настроено чисто под протон?) Естественно, логин и пароль я прописал нужные.
А, еще я устанавливал не в root, а в /home/srv, а то он на права сильно ругался, я решил, что не буду все от рута ставить, но везде, при запуске и установке в командах я поменял пути. Может где-то в файлах жестко прописан путь на root?
 
Последнее редактирование:

ZennoCat

Client
Регистрация
06.01.2020
Сообщения
61
Благодарностей
32
Баллы
18
Сделал все по инструкции, кроме того, что у меня установлено на виртуалке на насе, т.е. локальный ip. К панели подключился, все вроде работает, но при выборе прокси и нажатии на Turn on крутится кружок, но прокси не хочет активироваться. И еще момент, что у меня не протон, а сурфшарк, но по идее не должно быть проблемы, я в ручную через консоль уже активировал конфиг и все работало, без панели и 3proxy, я через шэдоусокс руками запускал. Он же по идее просто загружает конфиг и при запросе отдает данные для авторизации, не может же тут быть как-то жестко настроено чисто под протон?) Естественно, логин и пароль я прописал нужные.
А, еще я устанавливал не в root, а в /home/srv, а то он на права сильно ругался, я решил, что не буду все от рута ставить, но везде, при запуске и установке в командах я поменял пути. Может где-то в файлах жестко прописан путь на root?
я обязательно пересмотрю сейчас пути, может действительно где-то оставил хардкод. А вы пробовали фришные конфиги протона, очень интересно как они себя будут вести. А в .env файле заменяли путь? этот - PROXY_FOLDER="/root/3proxy/"
 

Darvel

Client
Регистрация
17.11.2013
Сообщения
115
Благодарностей
7
Баллы
18
я обязательно пересмотрю сейчас пути, может действительно где-то оставил хардкод. А вы пробовали фришные конфиги протона, очень интересно как они себя будут вести. А в .env файле заменяли путь? этот - PROXY_FOLDER="/root/3proxy/"
Тут забыл поменять. Стопнул, поменял, запустил заново, но все равно крутится кружок и все.
 

Вложения

  • Спасибо
Реакции: ZennoCat

ZennoCat

Client
Регистрация
06.01.2020
Сообщения
61
Благодарностей
32
Баллы
18
Тут забыл поменять. Стопнул, поменял, запустил заново, но все равно крутится кружок и все.
кажется нам удалось найти решение), проблема была в том что скрипт не мог выполнять команды в терминале так как сервер обязательно запрашивал пароль после каждой команды, решилось тем что удалось отключить запрос пароля и прокси начали работать. Также можно использовать конфиги не только protonvpn но и других впн провайдеров)
 
Последнее редактирование:

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)