How to run MTProto Proxy

How to run MTProto Proxy

by Sasan // @MrLTE // t.me/MrLTE

In Linux :

Building

Install dependencies, you would need common set of tools for building from source, and development packages for openssland zlib.

On Debian/Ubuntu:

apt install git curl build-essential libssl-dev zlib1g-dev


On CentOS/RHEL:

yum install openssl-devel zlib-devel
yum groupinstall "Development Tools"


Clone the repo:

git clone https://github.com/TelegramMessenger/MTProxy
cd MTProxy


To build, simply run make, the binary will be in objs/bin/mtproto-proxy:

make && cd objs/bin


If the build has failed, you should run make clean before building it again.


Running

  1. Obtain a secret, used to connect to telegram servers.
curl -s https://core.telegram.org/getProxySecret -o proxy-secret


  1. Obtain current telegram configuration. It can change (occasionally), so we encourage you to update it once per day.
curl -s https://core.telegram.org/getProxyConfig -o proxy-multi.conf


  1. Generate a secret to be used by users to connect to your proxy.
head -c 16 /dev/urandom | xxd -ps


  1. Run mtproto-proxy:
./mtproto-proxy -u nobody -p 8888 -H 443 -S <secret> --aes-pwd proxy-secret proxy-multi.conf -M 1


... where:

  • nobody is the username. mtproto-proxy calls setuid() to drop privilegies.
  • 443 is the port, used by clients to connect to the proxy.
  • 8888 is the local port. You can use it to get statistics from mtproto-proxy. Like wget localhost:8888/stats. You can only get this stat via loopback.
  • <secret> is the secret generated at step 3. Also you can set multiple secrets: -S <secret1> -S <secret2>.
  • proxy-secret and proxy-multi.conf are obtained at steps 1 and 2.
  • 1 is the number of workers. You can increase the number of workers, if you have a powerful server.

Also feel free to check out other options using mtproto-proxy --help.

  1. Generate the link with following schema: tg://proxy?server=SERVER_NAME&port=PORT&secret=SECRET (or let the official bot generate it for you).
  2. Register your proxy with @MTProxybot on Telegram.
  3. Set received tag with arguments: -P <proxy tag>
  4. Enjoy.


Systemd example configuration

  1. Create systemd service file (it's standart path for the most Linux distros, but you should check it before):
nano /etc/systemd/system/MTProxy.service


  1. Edit this basic service (especially paths and params):
[Unit]
Description=MTProxy
After=network.target

[Service]
Type=simple
WorkingDirectory=/opt/MTProxy
ExecStart=/opt/MTProxy/mtproto-proxy -u nobody -p 8888 -H 443 -S <secret> -P <proxy tag> <other params>
Restart=on-failure

[Install]
WantedBy=multi-user.target


  1. Reload daemons:
systemctl daemon-reload


  1. Test fresh MTProxy service:
systemctl restart MTProxy.service
# Check status, it should be active
systemctl status MTProxy.service


  1. Enable it, to autostart service after reboot:
systemctl enable MTProxy.service


In Windows :

Download and install NodeJS for Windows using this link: https://goo.gl/bb654A 

After installation is complete, enter "Command Prompt" and install PM2 by following command:

nmp install pm2 -g

and Download JSMTProxy using this link: https://goo.gl/NHCBKT 

Extract the zip file into C Drive. and enter the command in CMD:

cd C:\JSMTProxy-master

Start the proxy server from "Command Prompt" by following command:

pm2 start mtproxy.js -i max

Default port and secret:

Port: 6969

Secret: b0cbcef5a486d9636472ac27f8e11a9d

You can change these both on file config.json


Note: You may need to open the proxy port number in your Windows firewall in order for it to accept connections.

Provided on the channel :

@Source_Search | T.me/Source_Search

By :

========÷=

Good Luck ;)

Report Page