- Install docker
- clone this repo
$ cp server.json.example server.json
- User configuration
server.json
- modify the
key
field inserver.json
to some strong password, - modify the
listen
field inserver.json
, port range is supported, total number of 100 ports looks fine. - other options refers to kcptun
- Modify the
PORT
variable inMakefile
to be the same port or port-range inserver.json
$ make privoxy
$ make kcptun-server
-
Install docker
-
clone this repo
-
$ cp client.json.example client.json
-
modify the
remoteaddr
field inclient.json
to the server ip with port number/range,key
field to the same password as theserver.json
, other options same as theserver.json
-
$ make kcptun-client
Then you got a http proxy (privoxy) on client listening on port 12948(CLIENTPORT in Makefile).
For more information, just check Makefile.
If the client remoteaddr
in client.json
is a IPv6 address, the format would be like [2001:4860:4860::8888]:19900-19999
. Remember the square brackets around the ip address.
But to access this remote IPv6 address, the docker container has to have IPv6 address too, even though the host should have real IPv6 address at the first place.
Edit /etc/docker/daemon.json
with
{
"experimental": true,
"ip6tables": true
}
And then sudo systemctl restart docker
and follow same steps of regular client setup.
Reference: https://docs.docker.com/config/daemon/ipv6/