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.