haxpor / Potatso

Potatso is an iOS client that implements Shadowsocks proxy with the leverage of NetworkExtension framework. ***This project is unmaintained, try taking a look at this fork https://github.com/shadowcoel/shadowcoel instead.
GNU General Public License v3.0
2.05k stars 1.38k forks source link

Please update the shadowsocks-libev to newer version. #22

Open happyfire opened 7 years ago

happyfire commented 7 years ago

SS Local in potatso seems support tcp fast open on mac osx, from ios9, tcp fast open is supported by apple, so can ss local support tcp fast open? Maybe need some change in code.

haxpor commented 7 years ago

Yes, TCP fast open supported. Anyway, I didn't look into it yet whether Potatso originally has code ready to support this. I think it's interesting to look into.

happyfire commented 7 years ago

I tested by setting profile.fast_open = 1 and define TCP_FASTOPEN. After connected, the send will fail, the error no is 57, that is ENOTCONN. And from the ss server log, I can see:

got local error
[Errno 104] Connection reset by peer

edit: @haxpor I found the reason is the version of ss-libev in potatso is too low, the bug is already fixed in newer ss-libev, please update the ss-libev.

Jasoncoool commented 7 years ago

I agree. the shadowsocks-libev version is too low.

Jasoncoool commented 7 years ago

Upgrade the shadowsocks-libev version will help you support follow protocols. auth_sha1_v4 auth_aes128_md5 auth_aes128_sha1 you can see https://github.com/Potatso/ssr_obfs ,I don't know how to fix it.

haxpor commented 7 years ago

@Jasoncoool and @happyfire Hey thank you for you both!. Big 👍, I will find time to do this.

WiiliamChik commented 7 years ago

i am trying to do this, but the version of ss-libev of potatso has large difference between the lastest version.... because i am new to ios, i am doing hard on it.

so898 commented 7 years ago

I have successful upgrade the SSR library to Commit 2670ab2 (https://github.com/shadowsocksr/shadowsocksr-libev/tree/2670ab26ddd63dd790ba6c35f57d4dd040dec194) which add support for new protocols and some new features.

I haven't test a lot yet, but I can tell you the fast-open is working fine with iPhone 7.

The code is still under testing now, and I will open a pull request after I finish the test. I think it might be very soon.

BTW, recently SSR people merge the cipher_env branch to the master, which causes a lot of problem during the code compiling process. I might upgrade that part later.

EDIT: I have upload code to my fork repo. (https://github.com/so898/Potatso/tree/Upgrade_SSR_Library) I think I have change too much part of the project. So I will spend more time to finish the job, then make a pull request.

haxpor commented 7 years ago

@so898 Thanks. Does this also apply to SS as well for new protocols?

so898 commented 7 years ago

@haxpor I just check the code, the follow methods are not supported by the SSR-Lib in my branch: aes-128-gcm, aes-192-gcm, aes-256-gcm, chacha20-poly1305, chacha20-ietf-poly1305

I think the AEAD Ciphers is the Mygod way to do SSR feature in SS-Lib.

SIP004 was proposed by @Mygod with design inspirations from @wongsyrone, @Noisyfox and @breakwa11.

I think the SSR-Lib might not support these new SS protocols in the feature. Which means there will be a lot of coding and testing if we want to build all these SSR and SS protocols in Potatso. I do like the OBFS feature in SSR, so I would like to finish SSR features first, then I might spend some time try to find a way to deal with the new SS protocol.

Menci commented 7 years ago

Also need the new protrol auth_sha1_v4 of SSR.