Access the internet with QUIC technology
netwithquic is a project aims to transmit all network packets via QUIC protocol across the internet. According to The Chromium Projects, QUIC is a new transport protocol developed by Google, and it is implemented on top of UDP (see link for more details). This project uses Project V in a Docker container, which is intended to run on the client and the server during runtime. The server receives incoming packets from the Project V client in QUIC and redirects them to their corresponding destinations. When the destinations respond to the server, the server forwards the packets back to the Project V client in QUIC. The type of the QUIC protocol used by Project V is IETF QUIC [1].
- Docker
- Active internet connection
Run the following code on your terminal/command prompt of your server/client:
$ docker build -t "netwithquic" https://github.com/bernardkkt/netwithquic.git
Successful execution of the command above will create a Docker image named netwithquic on your system. Essentially the image provides the Project V software on top of the Alpine Linux base image. Alternatively, you can choose to install the official Project V image, but that would require you to modify the parameters accordingly for the rest of the commands.
- Create a file named
config.json
in a folder. - Visit to this page to generate the content for
config.json
.- Choose server for Generate configuration for.
- Enter a port number you would like to use for listening to incoming connection from the client.
- Enter a UUID string. You can generate one from here.
- Choose a value between 0-65535 for Alternative ID. The recommended value is 4. See alterId under here for more information.
- It is recommended to set up the encryption setting. If you choose None, the Key field will be ignored. Otherwise, if you don't enter a key, the selection you have made for Encryption will be treated as None.
- Press the submit button and copy the output to
config.json
.
- Save
config.json
with the new content. - Run the following command to start the server:
where
$ docker run -v $PWD:/etc/v2ray -p 0.0.0.0:$PORT:$PORT/udp netwithquic
$PORT
refers to the selected port number above, and$PWD
refers to the folder path that containsconfig.json
.
- Create a file named
config.json
in a folder. - Visit to this page to generate the content for
config.json
.- Choose client for Generate configuration for.
- Enter the hostname or the IP address of the server.
- Enter the same port number you have chosen for the server configuration.
- Enter the same UUID from the server configuration.
- Enter the value of Alternative ID as in the server configuration.
- Fill in the encryption method and the key if they are defined in the server configuration.
- (Optional) Enter a DNS IP address if you wish to customise the DNS service for resolving hostnames within Project V.
- (Optional) You may choose to enable the ad-blocking feature.
- Press the submit button and copy the output to
config.json
.
- Save
config.json
with the new content. - Run the following command to start the client:
where
$ docker run -v $PWD:/etc/v2ray -p 0.0.0.0:$SOCKS_PORT:1080 netwithquic
$SOCKS_PORT
refers to the port number you wish the SOCKS proxy to be hosted at, and$PWD
refers to the folder path that containsconfig.json
. - Now you can access netwithquic through the SOCKS proxy at
127.0.0.1
with the port number$SOCKS_PORT
by adding the proxy settings to your applications.