2021手动编译安装Mtproxy踩坑记录

apt install git curl build-essential libssl-dev zlib1g-dev
报错:
Failed to fetch http://security.debian.org/debian-security/pool/updates/main/l/linux/linux-libc-dev_4.9.258-1_amd64.deb 404 Not Found [IP: 2a04:4e42:6a::644 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
解决方式:
apt-get update

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

make && cd objs/bin
注意,第一步的报错不解决,这里会提示make not found

1、curl -s https://core.telegram.org/getProxySecret -o proxy-secret

2、curl -s https://core.telegram.org/getProxyConfig -o proxy-multi.conf

3、head -c 16 /dev/urandom | xxd -ps

./mtproto-proxy -u <用户名,比如root> -p 8888 -H <端口号,比如443,如果443没了,就随便找个不重复到端口> -S <第三步生成的秘钥> --aes-pwd proxy-secret proxy-multi.conf -M 1

解释:所有尖括号里的内容都要自行修改

这里执行完后,会提示main loop表示已经可用了。

tg://proxy?server=<你的域名或者IP>&port=<刚刚设置的端口号,443或者其他>&secret=<刚刚第三步生成的秘钥>

进阶:将程序服务化,重启后自动启动

nano /etc/systemd/system/MTProxy.service
官方推荐
我推荐:
vim /etc/systemd/system/MTProxy.service

然后将下面的值修改后拷贝进去:
[Unit]
Description=MTProxy
After=network.target

[Service]
Type=simple
WorkingDirectory=<你放mtproto-proxy程序的目录,要是按照步骤一步步来,应该就是在当前目录,pwd命令执行下,就显示了>
ExecStart=<补全程序所在目录>/mtproto-proxy -u <用户名,比如root> -p 8888 -H <端口号,比如443,如果443没了,就随便找个不重复到端口> -S <第三步生成的秘钥> --aes-pwd proxy-secret proxy-multi.conf -M 1
Restart=on-failure

[Install]
WantedBy=multi-user.target

systemctl daemon-reload

systemctl restart MTProxy.service

systemctl status MTProxy.service

systemctl enable MTProxy.service

一般会在systemctl status MTProxy.service这里出现问题:
Active: active (running) 成功
Active: failed 失败

排查问题顺序:
先把MTProxy.service文件中的ExecStart这一行拷贝出来单独执行,看看能不能执行
一般有3种问题:
端口被占用
使用到用户名不存在
配置里到文件夹没配置对,导致找不到命令。

推荐阅读更多精彩内容