Настройка прокси mtproto для Telegram

Буквально вчера выкатили официальный прокси для Telegram под названием mtproto-proxy, там же есть руководство настройки, но все равно продублирую у себя, может кому пригодится.


Где взять прокси написано ТУТ

Так же оказываю платные консультации по настройке mtproto proxy, обращаться в Telegram @cloudsv

Купить дешевый VDS можно у них:

https://vdsina.ru/?partner=fxd93y4vw1 от 60₽ в месяц
https://firstbyte.ru/?from=30261 от 99₽ в месяц

А теперь сама заметка:

Нам понадобятся средства для сборки mtproxy из исходников, команда для debian
apt-get install git build-essential libssl-dev zlib1g-dev curl
Если у вас ubuntu 16.04 или в системе OpenSSL версии ниже 1.1.0h, то нужно его установить, или собрать ручками.
Проверить текущую версию openssl можно командой openssl version
Для сборки openssl1.1.0h выполним следующие команды
wget https://www.openssl.org/source/openssl-1.1.0h.tar.gz
tar -zxf openssl-1.1.0h.tar.gz
cd openssl-1.1.0h
./config
make
make install
ldconfing /usr/local/lib
echo '/usr/local/lib' > /etc/ld.so.conf.d/local.conf
Теперь собираем mtproxy
Вытащим к себе исходники
git clone https://github.com/TelegramMessenger/MTProxy
cd MTProxy
make
Если все прошло без ошибок, то в каталоге MTProxy/objs/bin/ должен быть бинарник mtproto-proxy, копируем его в /usr/local/bin
cp objs/bin/mtproto-proxy /usr/local/bin
Теперь создадим пользователя, каталог для конфигов и логов(логи почему то у меня не писались, может баг)
adduser --system --no-create-home --disabled-login --group mtproxy
mkdir /etc/mtproxy
mkdir /var/log/mtproxy
chown mtproxy:mtproxy /var/log/mtproxy/
Получим необходимые файлы для функционирования mtproxy
cd /etc/mtproxy
Используйте одну из утилит для получения файлов:

curl
curl -s https://core.telegram.org/getProxySecret -o proxy-secret
curl -s https://core.telegram.org/getProxyConfig -o proxy-multi.conf
wget
wget https://core.telegram.org/getProxySecret -O proxy-secret
wget https://core.telegram.org/getProxyConfig -O proxy-multi.conf
Сгенерируем 16-ричный secret-key
head -c 16 /dev/urandom | xxd -ps
Создадим сервис systemd
/etc/systemd/system/mtproxy.service:
[Unit]
Description=mtproto-proxy
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/mtproto-proxy -u mtproxy -p 8888 -6 -H 443 -l /var/log/mtproxy/mtproxy.log -S <secret-key> --aes-pwd /etc/mtproxy/proxy-secret /etc/mtproxy/proxy-multi.conf -M 1
Restart=on-failure

[Install]
WantedBy=multi-user.target
Расшифровка параметров:
-u mtproxy — процесс запускается от пользователя mtproxy
-p 8888 — локальный порт, можно использовать для получения статистики
-6 — включает ipv6
-H 443 — на каком порту ожидать подключение клиентов, 443 подходит идеально, провайдеры и прочие будут думать что это обычный https траффик
-l /var/log/mtproxy/mtproxy.log — лог файл, но как я писал выше, логи почему то не пишутся, может нужно включить verbose или еще чего, разберусь потом
-S <secret-key> — секретный ключ который мы сгенерировали(надеюсь вы поняли что <secret-key>, нужно заменить на сгенерированную строку, например на 575b04f4b28f72263965d1d371707c06)
--aes-pwd /etc/mtproxy/proxy-secret — конфиг с секретом, что там в нем, черт его знает
/etc/mtproxy/proxy-multi.conf — конфиг файл с ip адресами серверов
-M 1 — количество главных процессов, пишут что хватает одного, если у вас там не супер-пупер нагруженный сервер.

UPD: 12.09.2019
В официальном mtproxy запилили fake-tls, все описано здесь
Что бы этим воспользоваться нужно добавить в команду запуск -D и указать домен, пример такой
ExecStart=/usr/local/bin/mtproto-proxy -u mtproxy -p 8888 -6 -H 443 -D www.facebook.com -S <secret-key> --aes-pwd /etc/mtproxy/proxy-secret /etc/mtproxy/proxy-multi.conf -M 1
Но помните у вас отлетит обычное подключение которое с ключом DD и без DD, <secret-key> тоже станет особенный, сгенерировать его можно вот на этом сайте http://seriyps.ru/mtpgen.html в Fake-TLS domain нужно указать тот же домен который вы указали в -D, в нашем случае www.facebook.com

Активируем сервис и пробуем его запустить systemctl enable mtproxy && systemctl start mtproxy
Посмотреть состояние можно командой systemctl status mtproxy

Если у вас нет systemd, используйте следующий init.d
/etc/init.d/mtproxy:
#!/bin/sh
### BEGIN INIT INFO
# Provides: mtproto-proxy
# Required-Start:       $remote_fs $syslog
# Required-Stop:        $remote_fs $syslog
# Default-Start:        2 3 4 5
# Default-Stop:
# Short-Description:    MTProxy service
### END INIT INFO

set -e

# Must be a valid filename
NAME=mtproto-proxy
PIDFILE=/var/run/$NAME.pid
#This is the command to be run, give the full pathname
DAEMON=/usr/local/bin/mtproto-proxy
DIR=/etc/mtproxy
DAEMON_OPTS="-u mtproxy -p 8888 -6 -H 443 -l /var/log/mtproxy/mtproxy.log -d -S <secret> -P <proxy-tag> --aes-pwd /etc/mtproxy/proxy-secret /etc/mtproxy/proxy-multi.conf -M 1"
USER=mtproxy

export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"

case "$1" in
  start)
        echo -n "Starting daemon: "$NAME
        start-stop-daemon --start --background --pidfile $PIDFILE -d $DIR -m --exec $DAEMON -- $DAEMON_OPTS
        echo "."
        ;;
  stop)
        echo -n "Stopping daemon: "$NAME
        start-stop-daemon --stop --signal TERM --quiet --oknodo --pidfile $PIDFILE
        echo "."
        sleep 3
        ;;
  restart)
        echo -n "Restarting daemon: "$NAME
        start-stop-daemon --stop --signal TERM --quiet --oknodo --retry 30 --pidfile $PIDFILE
        start-stop-daemon --start --background --pidfile $PIDFILE -d $DIR -m --exec $DAEMON -- $DAEMON_OPTS
        echo "."
        ;;

  *)
        echo "Usage: "$1" {start|stop|restart}"
        exit 1
esac

exit 0
Даем права на запуск скрипта chmod +x /etc/init.d/mtproxy
Активируем автозапуск update-rc.d mtproxy defaults
Запускаем службу /etc/init.d/mtproxy start

Теперь настраивайте ваш телеграм клиент.


UPD 24.02.2019
Что бы прокси было сложнее обнаружить, в клиенте есть возможность динамически изменять размер пакета, добавьте в начале ключа две буквы dd
Должно получится так dd575b04f4b28f72263965d1d371707c06
Если примут коммит то в самом прокси mtproto можно будет запретить подключение без dd флагом "-R"

Если у вас есть канал, то вы можете его продвинуть благодаря прокси, для этого нужно зарегистрировать ваш прокси у бота @MTProxybot, бот вам даст proxy-tag, его нужно будет добавить в запуск сервиса, ExecStart изменить на
ExecStart=/usr/local/bin/mtproto-proxy -u mtproxy -p 8888 -6 -H 443 -l /var/log/mtproxy/mtproxy.log -S <secret-key> -P <proxy-tag> --aes-pwd /etc/mtproxy/proxy-secret /etc/mtproxy/proxy-multi.conf -M 1
-P <proxy-tag> — <proxy-tag> заменить на то, что вам дал бот

1. Пишем @MTProxybot /start1.1 Он запросит адрес нашего прокси в формате host:port
1.2 Потом запросит secret, отправляем ему
1.3 Если все окей выведет сообщение об успехе Success и proxy tag его надо прописать в ExecStart сервиса -P <proxy-tag>, описывал выше.


2. Добавим канал, пользователи которые будут пользоваться вашим прокси автоматически будут «подписаны» на Promoted канал.
2.1 Командой /myproxies запросим список наших прокси(их может быть несколько)
2.2 Выберем необходимый


2.3 И нажмем кнопку Set promotion
2.4 Введем название канала в формате @имя_канала
2.5 Все, примерно через час данные promotion применяться и у пользователей использующих ваши прокси появится ваш канал.



Безопасного общения друзья :-)

Написал тут один человек по поводу защиты от примитивных DDos атак, да еще и ссылку кинул, https://javapipe.com/ddos/blog/iptables-ddos-protection/, полистал и решил почему бы и не добавить в статью, в принципе такая защита должна быть на любом публичном сервере, кто его знает, вдруг поможет.
Свод правил из статьи:
### 1: Drop invalid packets ### 
/sbin/iptables -t mangle -A PREROUTING -m conntrack --ctstate INVALID -j DROP  

### 2: Drop TCP packets that are new and are not SYN ### 
/sbin/iptables -t mangle -A PREROUTING -p tcp ! --syn -m conntrack --ctstate NEW -j DROP 
 
### 3: Drop SYN packets with suspicious MSS value ### 
/sbin/iptables -t mangle -A PREROUTING -p tcp -m conntrack --ctstate NEW -m tcpmss ! --mss 536:65535 -j DROP  

### 4: Block packets with bogus TCP flags ### 
/sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP 
/sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,SYN FIN,SYN -j DROP 
/sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags SYN,RST SYN,RST -j DROP 
/sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,RST FIN,RST -j DROP 
/sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,ACK FIN -j DROP 
/sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,URG URG -j DROP 
/sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,FIN FIN -j DROP 
/sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,PSH PSH -j DROP 
/sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL ALL -j DROP 
/sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL NONE -j DROP 
/sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL FIN,PSH,URG -j DROP 
/sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL SYN,FIN,PSH,URG -j DROP 
/sbin/iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP  

### 5: Block spoofed packets ### 
/sbin/iptables -t mangle -A PREROUTING -s 224.0.0.0/3 -j DROP 
/sbin/iptables -t mangle -A PREROUTING -s 169.254.0.0/16 -j DROP 
/sbin/iptables -t mangle -A PREROUTING -s 172.16.0.0/12 -j DROP 
/sbin/iptables -t mangle -A PREROUTING -s 192.0.2.0/24 -j DROP 
/sbin/iptables -t mangle -A PREROUTING -s 192.168.0.0/16 -j DROP 
/sbin/iptables -t mangle -A PREROUTING -s 10.0.0.0/8 -j DROP 
/sbin/iptables -t mangle -A PREROUTING -s 0.0.0.0/8 -j DROP 
/sbin/iptables -t mangle -A PREROUTING -s 240.0.0.0/5 -j DROP 
/sbin/iptables -t mangle -A PREROUTING -s 127.0.0.0/8 ! -i lo -j DROP  

### 6: Drop ICMP (you usually don't need this protocol) ### 
#/sbin/iptables -t mangle -A PREROUTING -p icmp -j DROP  

### 7: Drop fragments in all chains ### 
/sbin/iptables -t mangle -A PREROUTING -f -j DROP  

### 8: Limit connections per source IP ### 
/sbin/iptables -A INPUT -p tcp -m connlimit --connlimit-above 111 -j REJECT --reject-with tcp-reset  

### 9: Limit RST packets ### 
/sbin/iptables -A INPUT -p tcp --tcp-flags RST RST -m limit --limit 2/s --limit-burst 2 -j ACCEPT 
/sbin/iptables -A INPUT -p tcp --tcp-flags RST RST -j DROP  

### 10: Limit new TCP connections per second per source IP ### 
/sbin/iptables -A INPUT -p tcp -m conntrack --ctstate NEW -m limit --limit 60/s --limit-burst 20 -j ACCEPT 
/sbin/iptables -A INPUT -p tcp -m conntrack --ctstate NEW -j DROP  

### 11: Use SYNPROXY on all ports (disables connection limiting rule) ### 
# Hidden - unlock content above in "Mitigating SYN Floods With SYNPROXY" section
Закоментировал только правило запрещающающее icmp, иногда все же нужно кого нибудь пингануть.

Комментарии ()

  1. Тимми 04 июня 2018, 20:29 # 0
    Что то не запускается systemctl enable mtproxy && systemctl start mtproxy
    нет файла или директории
    1. cloudsv 04 июня 2018, 21:18 # 0
      А что за система?
      Точно создал сервис файл?
      ls -la /etc/systemd/system/mtproxy.service
      
    2. Ruslanus 05 июня 2018, 09:20(Комментарий был изменён) # 0
      Отличная статья, все получилось, спасибки!
      1. Alex 05 июня 2018, 11:29 # 0
        У меня Debian, что в этом случае меняется? все сделал как описали но вот команды systemctl в нем нет
        1. cloudsv 05 июня 2018, 11:46 # 0
          Значит у тебя древний debian, надо писать скрипт запуска init.d… чуть позже добавлю.
          1. cloudsv 05 июня 2018, 12:10 # 0
            добавил в заметку скрипт init.d
          2. Alex 06 июня 2018, 10:34 # 0
            Спасибо ) но я уже обновил дебиан 9 )
            почему процесс убивается через несколько минут, непонятно почему:
            Jun 06 10:12:09 sb572f058 mtproto-proxy[21340]: [21342][2018-06-06 10:12:09.085625 local] main loop
            Jun 06 10:20:04 sb572f058 systemd[1]: mtproxy.service: Main process exited, code=killed, status=9/KILL
            Jun 06 10:20:04 sb572f058 mtproto-proxy[21340]: [pid 21342] [time 1528269604] SIGTERM handled.
            Jun 06 10:20:04 sb572f058 mtproto-proxy[21340]: [21342][2018-06-06 10:20:04.096907 local] Terminated by SIGTERM.
            Jun 06 10:20:04 sb572f058 systemd[1]: mtproxy.service: Unit entered failed state.
            Jun 06 10:20:04 sb572f058 systemd[1]: mtproxy.service: Failed with result 'signal'.

            1. cloudsv 06 июня 2018, 10:36 # 0
              Можешь показать свой ExecStart, убери оттуда только secret.
            2. Alex 06 июня 2018, 11:27 # 0
              падате он на debian 9 каждые 5 -6 минут, вот человек тоже писал об этом:
              github.com/dotcypress/mtproxy/issues/3
              но походу проблема так и нерешена
              1. cloudsv 06 июня 2018, 11:34(Комментарий был изменён) # 0
                Но у меня тоже debian 9x64 и все работает стабильно.
                lsb_release -a
                No LSB modules are available.
                Distributor ID:	Debian
                Description:	Debian GNU/Linux 9.4 (stretch)
                Release:	9.4
                Codename:	stretch
                
                systemctl status mtproxy
                ● mtproxy.service - mtproto-proxy
                   Loaded: loaded (/etc/systemd/system/mtproxy.service; enabled; vendor preset: enabled)
                   Active: active (running) since Sun 2018-06-03 22:26:05 MSK; 2 days ago
                 Main PID: 363 (mtproto-proxy)
                    Tasks: 50 (limit: 4915)
                
                1. cloudsv 06 июня 2018, 11:49 # 0
                  Пиши в телегу @cloudsv так будет проще
                2. Umnepu9 08 июня 2018, 09:31(Комментарий был изменён) # 0
                  Автозапуск для Centos.

                  Проверяем версию openssl, должна быть не ниже OpenSSL 1.1.0h 27 Mar 2017 иначе работать не будет и будет вылезать вот такая ошибка.

                  openssl version

                  Создаем пользователя:

                  useradd mtproxy

                  Создадим сервис systemd:

                  nano /lib/systemd/system/mtproxy.service
                  Остальное все делаем в точности как написано в этом гайде. (=

                  З.ы Спасибо большое за годный гайд!
                  1. cloudsv 08 июня 2018, 09:35(Комментарий был изменён) # 0
                    Пожалуйста, сейчас подправлю статью уточнив версию openssl.
                    Вопрос только чем mtproxy.service в /etc/systemd/system не угодил?
                    1. Umnepu9 15 июня 2018, 08:55 # 0
                      Дурная привычка (=
                  2. Александр 07 июля 2018, 14:54 # 0
                    Приветствую! Подскажи, как через Putty, подвязать канал к мтпрокси в телеге? какую команду вводить, все сделал а канал не могу подвязать.
                    1. cloudsv 07 июля 2018, 14:57 # 0
                      Нужно у бота получить proxy-tag и указать его в строке запуска mtproto-proxy, ты опиши подробней в чем именно проблема, получилось запустить mtproto?
                      Просто канал привязывается примерно через час.
                      1. Александр 07 июля 2018, 15:02 # 0
                        Через бота я все сделал, мне написали что ваш канал через час появится, мне моя девушка) толдычит что он не появится пока ты не пропишешь этот код, я вот и не пойму. В Путти я все прописал что надо было, разве нужно еще тег из бота туда писать? я кстати туда пробовал писать, но ничего не получилось.Ничего там не испортил? переустановка не нужна?
                        1. cloudsv 07 июля 2018, 15:05 # 0
                          строка запуска у тебя должна выглядеть примерно так
                          /usr/local/bin/mtproto-proxy -u mtproxy -p 8888 -6 -H 443 -l /var/log/mtproxy/mtproxy.log -S 5cbcf5c8535349733ed9c1681b599034 -P 287d86ad5711c60a952f7a73f0ca4dd3 --aes-pwd /etc/mtproxy/proxy-secret /etc/mtproxy/proxy-multi.conf -M 1
                    2. Александр 07 июля 2018, 15:08 # 0
                      Тег этот который бот выдал, его надо прописывать? Где находится строка запуска мтпрокси? в путти?
                      1. cloudsv 07 июля 2018, 15:10 # 0
                        Ты понимаешь что путти это всего лишь программа для подключение к компьютеру через ssh, поэтому я не знаю как ответить на твой вопрос, пиши в телеграмм, постараюсь тебе помочь @cloudsv
                      2. Игорь 16 августа 2018, 12:11 # 0
                        Rsocks.net — профессиональные решения для обеспечения приватности в сети.

                        Rsocks предоставляет бесплатную прокси для работы с Telegram, которая обеспечит быструю и стабильную работу

                        ⚠️Ссылка на прокси: tg://proxy?server=37.1.192.213&port=443&secret=fe1616435624d4431774386e1e680ede⚠️
                        Сервер: 37.1.192.213
                        Порт: 443
                        1. cloudsv 16 августа 2018, 14:11(Комментарий был изменён) # 0
                          ну ок, пускай будет релкамка)
                        2. Nobody 22 сентября 2018, 01:12 # 0
                          Приветствую, а что делать, если вот такая ошибка вылетает -bash: /etc/init.d/mtproxy: Permission denied после /etc/init.d/mtproxy startCentOS 6.x
                          1. cloudsv 22 сентября 2018, 11:01 # 0
                            Мне кажется я упустил в заметке chmod +x /etc/init.d/mtproxy должно помочь
                          2. efvk 02 ноября 2018, 01:01 # 0
                            А с логами кто нибудь разобрался? пишутся ли у кого-то?
                            1. cloudsv 04 ноября 2018, 00:49(Комментарий был изменён) # 0
                              Если добавить параметр --daemonize/-d тогда логи пишутся
                              1. efvk 16 ноября 2018, 13:05 # 0
                                А подскажите, точнее куда нужно внести этот параметр. Если можно приведите пример и с каком файле
                                1. cloudsv 21 ноября 2018, 00:06 # 0
                                  Все забывал ответить, извиняй.
                                  В общем проблема этого флага в том что systemd не сможет управлять службой(запускать/останавливать), поэтому этот флаг лучше не ставить ибо процесс будет уходить в background. А так если запускаешь из командной строки просто добавь -d
                            2. Dao Sheridan 17 октября 2019, 06:11 # 0
                              Кто нибудь сталкивался с тем что не работает? Стартует, а потом висит и все, клиент не цепляется?
                              1. cloudsv 17 октября 2019, 08:05 # 0
                                Можно побольше подробностей, с какими флагами запускаете, как подключаетесь, точно ли у сервера есть доступ к серверам телеграма, есть ли какая нибудь инфа в логах?
                              2. Tmks 11 января 2020, 02:19(Комментарий был изменён) # 0
                                Hi!
                                Ставил официальный mtproxy, без докера на centos7. Настройки все стандартные, сам прокси работает, но статистику по ссылке: curl localhost:8888/stats не отдаёт. Ошибка: Failed connect to localhost:8888; Connection refused. Смена порта 8888 на др. не помогает. Это проблемы прокси или в системе что посмотреть можно? В сети нашёл много упоминаний про докерную версию, там что-то правят, добавляя потом http-stats. Может кто сталкивался с обычной версией, можно или нет как-то починить вывод статистики?
                                1. cloudsv 11 января 2020, 15:55 # 0
                                  Есть баг или фича не знаю, если у вас включена поддержка ipv6(--ipv6/-6) то он не отдает статистику, если же отключить то все ок
                                  1. Tmks 11 января 2020, 17:25 # 0
                                    ipv6 отключена через sysctl.conf. Чёрт знает — может этого не достаточно… В конфиге самого mtproxy всё по дефолту.
                                    Как считаете — если сделать получение статистики через оф. бота, предварительно его там зарегистрировав, но ключ не указывать который даст бот — промо канал появится или нет? (не хотелось бы, т.к. это личный сервис, реклама там не нужна). Может ещё какие то костыли есть?
                                    1. cloudsv 11 января 2020, 17:27 # 0
                                      Если вы через официального бота не привяжете канал никакой рекламы не будет.
                                      Не должно быть ipv6 в самых параметрах запуска mtproto прокси.
                                      1. Tmks 11 января 2020, 21:58(Комментарий был изменён) # 0
                                        Ок. Спасибо, попробую через оф. бота сделать. Ещё один момент только уточню сразу — после того, как он выдаст proxy-tag, для отдачи статистики нужно его прописывать к себе в конфиг или всё заработает так?
                                        1. cloudsv 12 января 2020, 11:45 # 0
                                          Да конечно, иначе как бот узнает об этом прокси.
                                2. Tmks 20 января 2020, 22:01 # 0
                                  cloudsv, Вы не пробовали случаем поставить из оф. исходников одну из последних версий прокси (с fake tls)? Я попробовал на днях — не работает. Юнит даже не стартует. В конфиге делал всё по шаблону, добавил нужные ключи, домен, секрет в спец.формате (по вашей ссылочке из статьи сгенерил). Интересно, только у меня так или общее?
                                  Заменил конфиг на обычный, где без fake tls — после рестарта службы — сразу взлетело. (Т.е. прежний вариант работает). Может что поменяли в командах/ключах.., искал, особо нет инфы в паблике — везде старые версии.
                                  1. cloudsv 20 января 2020, 22:04 # 0
                                    Вы прописываете существующий домен, не давно я там в коде видел что идет проверка на существование домена
                                    1. Tmks 20 января 2020, 23:50 # 0
                                      Да, перепробовал и личный, и google.com, и пр. публичные
                                      1. cloudsv 20 января 2020, 23:59(Комментарий был изменён) # 0
                                        11 января собирал, все работает, строка запуска
                                        mtproto-proxy -u mtproxy -p 8888 --http-stats -H 443 -D www.facebook.com -S 00000000000011111100000000000000 --aes-pwd /etc/mtproxy/proxy-secret /etc/mtproxy/proxy-multi.conf 
                                        
                                        Секретный ключ указываем в обычном формате, без dd, не в hex и не base64 формате
                                  2. Tmks 21 января 2020, 18:48(Комментарий был изменён) # 0
                                    Спасибо! Я понял свою ошибку. Конструкцию вида:
                                    ee+<SECRET>+<адрес сайта в HEX>
                                    я пытался размещать в конфиге, а надо было в клиенте. Сделал как нужно, сразу всё взлетело.
                                    Единсвенный момент — пока экспериментировал, обратил внимание что домен может быть любой, даже http, без s. Работает в любом виде. Так и должно быть?
                                    1. cloudsv 21 января 2020, 22:15 # 0
                                      рад что помог разобраться
                                    2. Tmks 21 января 2020, 19:22(Комментарий был изменён) # 0
                                      В логах запуска есть записи, если что-то не то с проверяемым доменом:
                                      Failed to parse upstream TLS response: TLS <= 1.2: expected x25519 as a chosen cipher...
                                      или вообще ошибка на не соответствие.
                                      Или когда всё хорошо:
                                      Successfully checked domain www.google.com in 0.010 seconds: is_reversed_extension_or...
                                      Так что лучше, когда домен соответствует стандарту TLS 1.3 (а так, да, работает в любом виде)
                                      1. cloudsv 21 января 2020, 22:15 # 0
                                        ну да, они в последнем коммите запилили какую то проверку на наличие сертификата у домена
                                      2. Tmks 21 января 2020, 23:44(Комментарий был изменён) # 0
                                        Ещё, кстати, может кому будет полезно — после добавления ключа: --http-stats — стала нормально отдаваться статистика в консоль по curl, wget локалхосту на последних сборках mtproxy.
                                        1. Tmks 22 января 2020, 23:24(Комментарий был изменён) # 0
                                          cloudsv, ещё можно вопрос:)
                                          А как быть с режимом DD — выходит он больше «не нужен» (или придётся выбирать между ним и fake-tls)?
                                          1. cloudsv 22 января 2020, 23:35 # 0
                                            fake-tls надежней в разы чем режим dd, и главная беда если включаем fake-tls все остальные режимы отваливаются
                                          2. Tmks 23 января 2020, 23:57(Комментарий был изменён) # 0
                                            Спасибо за советы, Вы мне очень помогли! Ещё хочу поинтересоваться: на VPS вместе с mtproxy установлен wireguard, он создаёт виртуальный интерфейс, допустим wg0, с локальным ip адресом (наподобие как tun0 у openvpn). Вот. При рестарте mtproxy, потом если ввести команду systemctl status mtproxy, он показывает что якобы «прицепился» к внутреннему ip адресу wg0, например 10.9.х.х, а нормальный «белый» ip у сервера 185.90.х.х.
                                            Если остановить wireguard и отключить локальный интерфейс wg0 и снова рестартануть mtproxy, он «выберет» нормальный адрес сервера, тот самый 185.х.х.х который «висит» на основном интерфейсе (у меня это eth0).
                                            Почему так происходит, это нормально вообще? В любом случае всё работает — и так, и так (через wg0 и через eth). Может есть способ явно указать интерфейс или ip адрес в mtproxy который следует использовать по умолчанию.
                                            Вопрос конечно ни о чём — просто интересно понять:)
                                            Скрин для наглядности: ibb.co/W6jWQn3
                                            1. cloudsv 24 января 2020, 00:50 # 0
                                              Есть опция
                                              --address <arg> tries to bind socket only to specified address
                                              
                                              Пытается повесить прокси на указанный в аргументах адрес
                                            2. Tmks 24 января 2020, 01:05 # 0
                                              При запуске в логах пишет, если прописать в аргументы ip VPS-ки:
                                              Bad binded IP address 185.x.x.x, search in ifconfig
                                              Есть вопрос или предложение пиши в Telegram @cloudsv

                                              MTProto прokси для Telegram

                                              Прямой эфир

                                              cloudsv 01 октября 2019, 11:00
                                              Arch Linux Локальный редирект порта в Linux 0
                                              cloudsv 25 августа 2019, 19:14
                                              О жизни Социальная сеть от Яндекса Aura 0
                                              cloudsv 31 июля 2019, 00:34
                                              О жизни 33 year old 0
                                              cloudsv 25 июня 2019, 21:29
                                              Telegram Полезные боты в Telegram 0
                                              cloudsv 24 октября 2018, 00:27
                                              О жизни Обновление Scala Rider G4 11