MTProxy+fakeTLS搭建 作者: morningp 时间: 2023-04-19 分类: shell相关 MTProxy是telegram软件中内置的代理协议,可以用来突破政府(如伊朗和俄罗斯政府)对于互联网的审查以及增加匿名性。 MTPproxy从发布至今,历经了三个版本的更迭:首先是第一个版本,也就是原版,由于只有加密功能,所以对于政府的封锁没有作用,第二个版本添加了TLS功能,虽然可以做到一定的突破封锁功能,但由于协议实现问题导致还是容易被探测,于是为了堵住漏洞,发展到了如今的fakeTLS,配合设置是可以突破政府对于互联网的封锁的。 需要注意的是,由于是模拟TLS,所以最好使用标准TLS端口,如443,8443之类的。 1. 首先,我们需要安装依赖,官方没有提供打包好的release。Debian、Ubuntu执行: `apt install git curl build-essential libssl-dev zlib1g-dev;` 等待安装完成即可。 1. 第二步我们需要拉取官方仓库的源码来进行构建: `git clone https://github.com/TelegramMessenger/MTProxy;` 然后cd到MTProxy目录,执行make即可。如果出现报错,官方和大部分抄来抄去的blog会告诉你执行make clean之后重新make,但是这个方法并不能解决错误。 其实早在去年就有人在[issue](https://github.com/TelegramMessenger/MTProxy/issues/459 "issue")中反映过这个问题,解决方法很简答,就是在Makefile文件中的CFLAGS行最后添加 -fcommon 即可,如图:  保存退出后执行make clean后重新make即可成功。 1. 构建完成之后进入objs/bin,首先获取TELEGRAM通信密匙 `curl -s https://core.telegram.org/getProxySecret -o proxy-secret` 然后获取当前TELEGRAM代理配置(官方建议每天更新此文件,所以你可以写个cron任务每天更新) `curl -s https://core.telegram.org/getProxyConfig -o proxy-multi.conf` 之后执行命令 `./mtproto-proxy -u nobody -p 8888 -H 443 -S your secret --aes-pwd proxy-secret proxy-multi.conf -M 1 -D "www.microsoft.com"` 即可。 ps.如果启动失败报错init_common_PID,可以依照这个[issue](https://github.com/TelegramMessenger/MTProxy/issues/41 "issue")给出的临时解决办法编辑 /etc/sysctl.conf 文件,加入 kernel.pid_max=65535 选项或者重启机器。 1. 参数调整: u是启动用户,没啥用; p是本地端口,可以从这个端口中查看统计信息,也没啥用; H是客户端连接端口,需要设置成443之类的标准TLS端口; S是密码,16位,可以使用`head -c 16 /dev/urandom | xxd -ps`来获取,可以设置多个密码,每个密码之前都要使用-S来指定; proxy-secret和proxy-multi.conf就是之前获取的telegram代理设置,没什么好说的; M是指定工人数量,实际上来说就是用户数量,个人使用1就好; D是fake TLS的域名,比如你用Aurze的服务器就可以使用MS的域名,这样可以减少被墙的几率。 1. 启动后就可以使用客户端连接了,hostname填IP,port填设置的端口,secret填写ee+secret+domain的十六进制,可以使用python来生成: `>>>print ("ee"+"your secret"+"your domain".encode().hex())` 将输入填入就可以连接了。 1. 最后将其写成服务开机自启就可以了。 `vim /etc/systemd/system/MTProxy.service` 填入以下内容: ``` [Unit] Description=MTProxy After=network.target [Service] Type=simple WorkingDirectory=/path/MTProxy ExecStart=/path/mtproto-proxy -u nobody -p 8888 -H 443 -S your secret --aes-pwd proxy-secret proxy-multi.conf -M 1 -D "www.microsoft.com"` Restart=on-failure [Install] WantedBy=multi-user.target ``` 执行:`systemctl daemon-reload`刷新服务,最后执行`systemctl enable MTProxy.service`开机启动即可。 至此MTProxy+fakeTLS搭建完成,享受自由的互联网吧! 标签: none