Skip to content

Instantly share code, notes, and snippets.

@dimqua
Forked from ihciah/README.MD
Created November 22, 2019 15:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dimqua/48dd54674d508ab44f812860f2796814 to your computer and use it in GitHub Desktop.
Save dimqua/48dd54674d508ab44f812860f2796814 to your computer and use it in GitHub Desktop.
V2ray MTProto through Shadowsocks

V2ray MTProto through Shadowsocks

Why use it

The MTProto is easy to block; shadowsocks is hard to identify but cannot work without a client.

You can deylop this docker image to run a relay inside the firewall (China/Russia etc.), it provide a MTProto and all the packets will be sent through shadowsocks protocol.

How to run

Modify the v2ray.conf, change the port, secret, and the other 4 settings in servers for shadowsocks configure.

Then put these 2 files in a folder and run docker-compose up -d.

Other info

It is based on V2ray. Also, I wrote some similar programs: inner-shadowsocks, shadowsocks-with-socks-auth to provide a Socks5 through shadowsocks. But for telegram, they are not recommended, because the Socks5 credential is transported in plain.

UPDATE: I add a pre-connection pool to the original v2ray in a ugly way, but it works. It can reduce a lot of "Connecting" time.

version: "3"
services:
v2ray:
image: ihciah/v2ray
container_name: v2ray
restart: always
command: v2ray -config=/etc/v2ray/config.json
network_mode: "host"
volumes:
- ./v2ray.conf:/etc/v2ray/config.json
{
"inbounds": [
{
"port": 12345,
"protocol": "mtproto",
"settings": {
"users": [
{
"secret": "YOURTGMTPROTOSECRET"
}
]
},
"tag": "tg-in"
}
],
"outbounds": [
{
"protocol": "shadowsocks",
"settings": {
"servers": [
{
"address": "SSSERVER",
"method": "SSMETHOD",
"password": "SSPASSWORD",
"port": SSPORT
}
]
},
"tag": "OUTSIDE"
},
{
"protocol": "mtproto",
"proxySettings": {
"tag": "OUTSIDE"
},
"settings": {},
"tag": "tg-out"
}
],
"routing": {
"rules": [
{
"inboundTag": [
"tg-in"
],
"outboundTag": "tg-out",
"type": "field"
}
]
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment