clowwindy
clowwindy
A server can handle concurrent multiple users with one tun device. Protocol upgrade is required. Backward compatible. Will fallback to P2P mode if no user token is specified.
1. Design configuration file format 2. Design switching strategy 3. Code!
Client: - Update source port by creating a new UDP socket - Update every few minutes - Update when there's a lot of data out and no data in for...
We have two approaches 1. Different clients binds different ports and have different IPs and tun devices 2. Same port, using builtin NAT (change src & dst IP in payload's...
It's a little difficult to write unit tests for VPN software. Still we are able to test some basic features like OpenVPN did: https://github.com/OpenVPN/openvpn/blob/master/tests/t_client.sh.in
If we can use both nonce and stream position we can use a 128-bit IV instead, which is much safer.
Network - [x] Support NAT - [x] Add CHNRoutes - [x] Add ChinaDNS - [x] Handle Reachability changes (in VPN and ChinaDNS) - [x] Handle IP change (in VPN and...
``` shadowvpn://BASE64_DATA BASE64_DATA = base64({ "server": "server_ip", "port": "1xxx", "usertoken": "hex", "ip": "10.7.0.2", "subnet": "255.255.0.0", "dns": "8.8.8.8" }) ```