SSR to MTP

发布于 2020-03-06  48 次阅读


1.安装SSR客户端

首先安装git等常用工具,使用XShell或其他ssh终端登陆服务器,用 sudo su 命令切换到root用户方便接下来的操作,然后输入下面的代码:

# Debian/Ubuntu 执行
apt-get install -y wget ca-certificates openssl sudo vim git curl gcc unzip
# CentOS 执行
yum install -y wget ca-certificates openssl sudo vim git curl gcc unzip

如果SSR用到了 chacha20 类的加密方式,请先安装 libsodium 加密库 。

# Debian/Ubuntu 执行
apt-get install build-essential
wget https://github.com/jedisct1/libsodium/releases/download/1.0.15/libsodium-1.0.15.tar.gz
#脚本国内备份
wget https://dl.asuka.video/git/libsodium-1.0.15.tar.gz
tar xf libsodium-1.0.15.tar.gz && cd libsodium-1.0.15
./configure && make -j2 && make install
ldconfig
# CentOS 执行
yum install epel-release
yum install libsodium
# CentOS 编译安装
yum -y groupinstall "Development Tools"
wget https://github.com/jedisct1/libsodium/releases/download/1.0.15/libsodium-1.0.15.tar.gz
tar xf libsodium-1.0.15.tar.gz && cd libsodium-1.0.15
./configure && make -j2 && make install
echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf
ldconfig

然后安装SSR

wget -O ssr https://raw.githubusercontent.com/the0demiurge/CharlesScripts/master/charles/bin/ssr
#脚本国内备份
wget -O ssr https://dl.asuka.video/git/ssr
mv ssr /usr/local/bin && chmod +x /usr/local/bin/ssr
ssr install

ssr install 这一步可能会进行比较缓慢,完整执行后如下所示:

[root@localhost ~]# ssr install
Cloning into '/usr/local/share/shadowsocksr'...
remote: Counting objects: 5490, done.
remote: Total 5490 (delta 0), reused 0 (delta 0), pack-reused 5490
Receiving objects: 100% (5490/5490), 1.71 MiB | 410.00 KiB/s, done.
Resolving deltas: 100% (3799/3799), done.

紧接着就可以配置SSR客户端啦,使用 ssr config 来修改配置文件,然后使用 ssr start 启动SSR,配置文件路径 ~/.local/share/shadowsocksr/config.json
#注意: 如果不会使用vim,建议先把下面的命令全部复制到你本地的文本编辑器里面,替换掉上面的配置信息(SSR服务器的IP端口和密码等),然后将全部内容复制到剪切板一起执行。

# 以下全部内容是一个整体,是一个命令,修改后全部复制粘贴到SSH软件中并一起执行!
echo '{
"server": "13.233.233.233", //SSR服务器IP
"server_ipv6": "::",
"server_port": 8080, //SSR服务器端口
"local_address": "127.0.0.1",
"local_port": 1080,
"password": "123456", //对应password,即SSR的密码
"method": "aes-128-ctr", //对应method,加密方式,即SSR的加密
"protocol": "auth_aes128_md5", //对应protocl,即SSR的协议
"protocol_param": "", //对应protocol_param,即SSR的协议参数
"obfs": "http_simple", //对应obfs,即SSR的混淆
"obfs_param": "hello.world", //对应obfs_param,即SSR的混淆参数
"speed_limit_per_con": 0,
"speed_limit_per_user": 0,
"additional_ports" : {},
"additional_ports_only" : false,
"timeout": 120,
"udp_timeout": 60,
"dns_ipv6": false,
"connect_verbose_info": 0,
"redirect": "",
"fast_open": false
}' > ~/.local/share/shadowsocksr/config.json

Tips:启动 ssr start停止 ssr stop卸载 ssr uninstall(这里操作会删除/usr/local/share/shadowsocksr)帮助及更多命令 ssr help

2.V2Ray/MTP搭建

本教程使用的是V2Ray自带的MTProto模块搭建MTP

mkdir mtp && cd mtp
wget https://github.com/v2ray/v2ray-core/releases/download/v4.18.0/v2ray-linux-64.zip
#脚本国内备份
wget https://dl.asuka.video/git/v2ray-linux-64.zip
unzip v2ray-linux-64.zip

1.替换掉原来的配置文件 config.json。把下面命令复制到本地的文本编辑器里。
2.在服务器上执行 openssl rand -hex 16 来获取到一串由阿拉伯数字和字母abcdef组成的32位的字符作为MTP代理密码。
3.将MTP代理的密码填入如下文本中 mySecret 处,更改MTP代理的端口为想要的端口,将全部内容复制到剪切板一起执行。

# 以下全部内容是一个整体,是一个命令,修改后全部复制粘贴到SSH软件中并一起执行!
echo '{
"policy":{
"levels":{
"0":{
"uplinkOnly":0
}
}
},
"dns":{
"servers":[
"208.67.222.222"
]
},
"outboundDetour":[
{
"tag":"tg-out",
"protocol":"mtproto",
"settings":{

},
"proxySettings":{
"tag":"socks-out"
}
}
],
"inbound":{
"tag":"tg-in",
"port":3389, //这个是MTP代理的端口
"protocol":"mtproto",
"settings":{
"users":[
{
"secret":"mySecret" //这个是MTP代理的密码,生成方式见上方说明
}
]
}
},
"log":{
"loglevel":"warning"
},
"routing":{
"strategy":"rules",
"settings":{
"domainStrategy":"IPIfNonMatch",
"rules":[
{
"type":"field",
"inboundTag":[
"tg-in"
],
"outboundTag":"tg-out"
}
]
}
},
"outbound":{
"tag":"socks-out",
"sendThrough":"0.0.0.0",
"protocol":"socks",
"settings":{
"servers":[
{
"address":"127.0.0.1",
"port":1080
}
]
},
"streamSettings":{
"network":"tcp",
"security":""
}
}
}' > config.json

配置好过后,运行以下代码:

chmod +x v2ray && chmod +x v2ctl
./v2ray

如果没有发现什么报错,配置就是成功了。
为了让他在后台执行,我们可以先按ctrl+c,退出当前程序,执行下面的代码:

nohup ./v2ray >> /dev/null 2>&1 &

最后放行对应的MTP代理端口:

# CentOS 执行
service iptables save
service ip6tables save
chkconfig --level 2345 iptables on
chkconfig --level 2345 ip6tables on
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 3389 -j ACCEPT
ip6tables -I INPUT -m state --state NEW -m tcp -p tcp --dport 3389 -j ACCEPT
service iptables save
service ip6tables save

# Debian/Ubuntu 执行
iptables-save > /etc/iptables.up.rules
ip6tables-save > /etc/ip6tables.up.rules
echo -e '#!/bin/bash\n/sbin/iptables-restore < /etc/iptables.up.rules\n/sbin/ip6tables-restore < /etc/ip6tables.up.rules' > /etc/network/if-pre-up.d/iptables
chmod +x /etc/network/if-pre-up.d/iptables
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 51020 -j ACCEPT
ip6tables -I INPUT -m state --state NEW -m tcp -p tcp --dport 51020 -j ACCEPT
iptables-save > /etc/iptables.up.rules
ip6tables-save > /etc/ip6tables.up.rules

到此,就可以在设备上连接MTP测试。
之后每次开机运行如下命令即可:

ssr start
cd /root/mtp
nohup ./v2ray >> /dev/null 2>&1 &