TelegramMessenger / MTProxy

5.01k stars 830 forks source link

Cant upload media with some ISP's #300

Open masoudelete opened 5 years ago

masoudelete commented 5 years ago

Hello and thanks for fast replies.

I run the proxy and everything works fine with all devices and different telegram apps but when using certain ISP's I can't upload pictures and videos.

my server is digital ocean in Germany, my clients are in Iran. and the ISP's that blocking images are (Irancell and Mobinnet)

I used random padding but it's not solving the issue

lucidyan commented 5 years ago

@masoudelete I have the same problem and it looks very similar to this: https://github.com/TelegramMessenger/MTProxy/issues/105

masoudelete commented 5 years ago

@lucidyan I don't have a problem with VPS like #105 mine works fine, my problem is that somehow some ISP's in Iran blocking media or something like this

lucidyan commented 5 years ago

Do you have a problem with only uploading or downloading too? Does sending and receiving text work?

masoudelete commented 5 years ago

@lucidyan In these ISP's Text works fine, the problem is media. I can download media sometimes and sometimes I can't. but I was never able to upload media

lucidyan commented 5 years ago

@masoudelete Did not try to wait a little longer? Perhaps the operator simply cuts speed for an unknown type of traffic, like in the mentioned issue. It's the only known scenario for me, when text works, but media don't.

masoudelete commented 5 years ago

The thing is I can use other proxies to upload, they are mostly using port 80 and 443 but when I use my proxy on the same port I can't upload. and I know they use this code same as me.

So how can they shape data and cut speed only on some IP's? If your scenario is true what's the solution? (port 1194 don't work for me) Is it possible to wrap data in HTTPS?

*Also Socks5 doesn't work on these ISP's either

lucidyan commented 5 years ago

The thing is I can use other proxies to upload, they are mostly using port 80 and 443 but when I use my proxy on the same port I can't upload. and I know they use this code same as me.

I assume that those proxies that you use have a different type - socks5. But you are using mtproto, it is a completely different protocol with different packets and builtin encryption. Therefore, they do not understand what traffic is coming from you and shape it.

Please try this, if it possible:

If your scenario is true what's the solution?

The port solution depends on the provider, it is not universal. Your option is to wrap all traffic from device into a tunnel or use socks5 (which is convenient, but it seems to be unsafe).

If you decide to use tunneling, try using this nice repository. https://github.com/StreisandEffect/streisand

P.S. Sorry, I didn't see your note about socks5, so you only have the tunneling option. And it seems that my hypothesis about unknown traffic's shaping is not true. However, it will be great if you conduct experiments on different ISP's and proxies (+socks5 too) and write the results here. Perhaps in the future, it will help someone a lot.

masoudelete commented 5 years ago

Well unless I can run MTProto or Socks5 with streisand and to be able to upload media with them, this repository doesn't do it for me, I want to run MTProto to be able to Advertise my channel.

I will update this post with my test results on uploading media in different ISP's, MTProto codes, Socks5 and etc.