小熊の小站

Try my best.

在OpenWRT软路由上部署Telegram的MTProxy

Littlebear0729's Avatar 2021-12-27 折腾记

  1. 1. 方案一:使用PassWall插件的V2Ray服务器
  2. 2. 方案二:使用单独的MTProxy服务器
  3. 3. 目前存在的问题

在OpenWRT软路由上部署Telegram的MTProxy,可以在外不用连接家里的VPN即可顺利收发Telegram消息。

本文中介绍的OpenWRT路由器操作系统的进程守护、开机自启和防火墙配置对其他服务的配置也具有指导意义。

家里的的NanoPi R2S软路由跑的是OpenWRT的系统,已经使用PassWall插件配置好了透明代理并搭建了一个Shadowsocks服务器。这样我可以在外面连接到家里的内网之中。但是,一直挂着Shadowsocks对手机耗电量是一大考验。突发奇想,搭建一个MTProxy的服务器就不用手机一直挂着回家的VPN了。

方案一:使用PassWall插件的V2Ray服务器

按照和配置Shadowsocks服务器一样的方式,配置V2Ray服务器。但是不知道什么原因,PassWall配置完V2Ray服务器后都无法正常工作。具体表现在可以连接V2Ray,但是outbound不知为何连不出去。有知道怎么解决的朋友可以在文章下方留言,但是这不失为一种搭建MTProxy服务器的方法。

方案二:使用单独的MTProxy服务器

我使用的是 https://github.com/9seconds/mtg 这个第三方的MTProxy服务器。

  1. mtg这个可执行文件下载到软路由主机上
  2. 参照repo提示,进行初步的密码生成和配置
  3. 进行进程守护

主要对于进程守护与防火墙配置进行说明。

/etc/init.d/下建立mtg文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/sh /etc/rc.common

START=99
STOP=15

start() {
echo start
iptables -A PSW-SERVER -p tcp -m tcp --dport 7777 -m comment --comment mtg -j ACCEPT
iptables -A PSW-SERVER -p udp -m udp --dport 7777 -m comment --comment mtg -j ACCEPT
nohup /usr/bin/mtg run /etc/mtg.toml > /dev/null 2>&1 &
}

stop() {
killall mtg
echo stop
}

使用/etc/init.d/mtg {start|stop|enable|disable}即可控制mtg开启、关闭和开机自启等功能。

目前存在的问题

可能因为Telegram在DNS解析方面比较缓慢,导致Telegram连接家里的MTProxy服务器比较慢。

同时也可能因为流量通过家里的网络进行多次转发,导致Telegram中图片等文件加载速度较慢。

搭建好这样的MTProxy服务器也只是聊胜于无,本文的重点其实在于OpenWRT路由器操作系统的进程守护、开机自启和防火墙配置。

本文作者 : Littlebear0729
本文使用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议
本文链接 : https://blog.bearxiong.xyz/2021/12/%E5%9C%A8OpenWRT%E8%BD%AF%E8%B7%AF%E7%94%B1%E4%B8%8A%E9%83%A8%E7%BD%B2Telegram%E7%9A%84MTProxy/

本文最后更新于 天前,文中所描述的信息可能已发生改变