

Let me know if there is any other type of proxy needed. NEKit provides AdapterSocket supporting HTTP/HTTPS/SOCK5 proxy and Shadowsocks(AES-128-CFB/AES-192-CFB/AES-256-CFB/chacha20/salsa20/rc4-md5). An adapter represents the abstraction of a socket connection to a remote proxy server (or remote host). Rule managerīefore starting any proxy server, we need to define rules.Įach rule consists of two parts, one defining what kinding of request matches this rule and the other defining what adapter to use. NEKit basically consists of two parts, a proxy server forwarding socket data based on user defined rules and an IP stack reassembling IP packets back to TCP flow as a socket. Do not use pre-compiled binaries since some of them might be buggy.
#SPECHTLITE TYPE UPDATE#
However, you can still use it with Carthage (you’ll need Carthage anyway since NEKit uses Carthage) by adding github "zhuhaow/NEKit"Ĭarthage update -no-use-binaries -platform mac,ios I recommend adding this project to your project, which is easier to debug. Every connection needs to look that up from the DNS server afterwards this is the only non-modular part of NEKit which is already encapsulated in ConnectSession. The only solution is to create a fake IP pool and assign each requested domain with a unique fake IP so we can look that up reversely. And since there may be multiple domains served on the same host, we can not get the origin domain by saving the DNS response and looking that up reversely later. So there is no way we can know the initial request domain for the TCP flow.
#SPECHTLITE TYPE SERIAL#
We can read only two independent things from the TUN interface, a UDP packet containing the DNS lookup request and a TCP flow consisting of a serial of TCP packets. Connect to the remote server by socket API provided by the system.Make a DNS lookup to find the IP address of the target server.This should not be a problem if the applications on your device connect to the local proxy server directly, where we can get the request domain information then send that to remote proxy server if needed.īut consider that if an application tries to make a socket connection by itself, which generally consists of two steps: NEKit follows one fundamental principle to keep the best network performance: The device connecting to target server directly resolves the domain. However, it is not always as modular as you may think if you want to reproduce transport layer from network layer. NEKit tries to be as flexible and non-opionated as possible. If you have any questions (not bug report), please join Gitter or Telegram instead of opening an issue. Note Wingy is not created by or affiliated with me.
#SPECHTLITE TYPE FREE#
Wingy is a free app built with NEKit available on App Store for your iDevice.

