#1
In this article, I will describe the most relatively popular traffic obfuscation methods, such as: ShadowSocks, V2Ray/X-Ray and Cloak .

Since these solutions are mostly used to bypass Internet censorship restrictions in China, the documentation on how to set up these solutions is in Chinese, but I will describe everything in a more understandable language.

So, to begin with, I will describe each of these 3 protocols separately.

ShadowSocks is an open-source proxy-based protocol designed to bypass Internet censorship and encrypt traffic. It works by creating a secure tunnel between the client and the server through which all traffic is routed. It is similar to other VPN technologies, but it is optimized for low-latency connections, making it suitable for applications that require fast response times, such as online gaming and live video streaming.

It uses a proxy server as an intermediary between the client and the destination server. The client sends its traffic to the proxy server, which then forwards it to the destination server. Traffic between the client and the proxy server is encrypted using AES, while traffic between the proxy server and the destination server is not encrypted.

The ShadowSocks protocol uses a technique called "obfuscation" to hide the fact that it is being used. Obfuscation involves changing the characteristics of the traffic so that it appears to be something else. For example, the destination IP address or port number may be changed, or random data may be added to the traffic. This makes it difficult for censors to detect and block the traffic.

ShadowSocks is popular because it is easy to use and relatively lightweight. It does not require any special software or hardware on the client side and can be deployed on a variety of platforms, including Windows, macOS, Linux, and mobile devices. It is also highly customizable, supporting a variety of encryption algorithms and obfuscation methods.

ShadowSocks setup instructions:
We will need a dedicated virtual server on which we will be running and a Windows/Linux/macOS device from which we will be running our proxy server.
In this example, I will use a server running Debian 11 and a device running Whonix.

First, download the Outline Manager program from the official website - https://getoutline.org/

For Linux, this program is supplied as a portable application in the AppImage format, to run this file, you need to make it executable.

Enter the command in the terminal:
Code:
 

 
[code]
sudo chmod +x ‘перенести файл в окно терминала’
[/code]


After executing the command, the file will become executable and can be launched by double-clicking the mouse.

The following window will open:
[img] https://i.ibb.co/tKqGwHc/1.jpg [/img]

Select the item “Customize Outline anywhere”

[img] https://i.ibb.co/Ks361VK/2-2.jpg [/img]

In the next window you will see a command that you will need to enter on your server, to do this, connect to the server via ssh with the command:
 
Code:
 

 
[code]
ssh root@ip_адрес_сервера
[/code]

On the server, enter the command from this window, in my case it is
 
Code:
 

 
[code]
sudo bash -c "$(wget -qO- https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh)"
[/code]

If you do not have Docker installed, the system will notify you and offer to install it, press Enter and wait for the installation

to complete. Once the installation is complete, the system will give you a link highlighted in orange, copy it and paste it into the Outline Manager window in step 2 (marked in red ).

Click “Done” and get a link to connect to our server.

For a smartphone, I recommend the shadowsocks application - https://github.com/shadowsocks/shadowsocks-android
In it, you can connect to the server via the link and see the key and password there to connect through other clients on a PC or router.


V2Ray (X-Ray) is a versatile and powerful proxy software that works as a communication platform. It is designed to bypass network restrictions and provide secure and private Internet access for users. V2Ray supports various protocols such as HTTP, TCP, mKCP, WebSocket, xTLS, xUDP, Domain Name System (DNS) protocols and more, and can be configured to work with multiple operating systems.

It works by creating a network of nodes that work together to route traffic. These nodes are called “incoming” and “outgoing” connections. Incoming connections accept traffic, and outgoing connections transmit traffic. V2Ray’s architecture allows it to perform complex traffic routing operations, making it a more secure and reliable proxy solution.

One of the main advantages of V2Ray is its ability to encrypt and disguise network traffic using various protocols such as xTLS, mKCP and WebSocket. This feature ensures the privacy and security of network activity that is difficult to detect or block. In addition, V2Ray has a built-in load balancing feature that can distribute network traffic across different servers to improve performance and reliability.

Flexible configuration options of V2Ray allow to easily set up a proxy server according to specific requirements. The user can configure various parameters, such as ports, protocols, encryption methods and routing rules.

Instructions for setting up V2Ray:

In this article I will tell you how to set up V2Ray with VMESS and VLESS protocols on your server. This instruction will be useful in case of strict Internet censorship in any country, or when visiting countries such as Iran and China, where strict censorship and restrictions have already been implemented.
It is worth noting that VMESS and VLESS do not work in conjunction, but in parallel, i.e. you can connect to any of these protocols depending on the speed of operation and the effectiveness of counteracting blocking.
Let's start with a description of these protocols:

VMESS- is a protocol used by the V2Ray proxy server to provide encrypted communication between the client and the server. It is one of the most advanced protocols, providing many features and options for customizing network traffic.

VMESS uses a combination of symmetric AES encryption and asymmetric RSA encryption to secure traffic between the client and the server. The protocol also uses a technique called traffic obfuscation to make traffic difficult to detect and block.

One of the key features of VMESS is its support for multiple incoming and outgoing protocols, such as TCP, UDP, HTTP, HTTPS, and DNS.

Another important feature of VMESS is its support for multiple transport protocols, including mKCP, TCP, WS, HTTP/2, and QUIC. This allows the protocol to adapt to different network conditions and provide a stable and fast connection.

VMESS also supports advanced features such as dynamic port allocation, load balancing, and domain name-based routing. These features allow you to customize and optimize network traffic for different use cases and scenarios.

VLESS is a newer protocol that was introduced in v2ray 4.23.0 and stands for “VMESS-less”. VLESS is designed to be a lighter, more secure version of VMESS, without sacrificing the flexibility and features that users have come to expect from V2Ray.

One of the main differences between VLESS and VMESS is that VLESS uses TLS encryption by default, which provides an additional layer of security over VMESS. This means that the VLESS server and client communicate over an encrypted connection, preventing eavesdropping and unauthorized interference from third parties. Additionally, VLESS is designed to be a more efficient protocol than VMESS, meaning that it can handle more traffic with fewer resources.

Another key feature of VLESS is its simplified configuration. VLESS only requires a single UUID to authenticate the client, while VMESS requires both an ID and an alterID. This makes it easier to set up and use, especially for users who are just starting out with V2Ray. However, VLESS still supports advanced features such as multiple users and routing rules, so it remains a powerful and flexible protocol. Overall

, VLESS has a number of advantages over VMESS, including improved security, efficiency, and ease of use. However, it is important to note that VLESS is still a relatively new protocol, and not all V2Ray clients and servers can support it.

Now let's get to the setup, I will do all the actions on a dedicated server running Debian 11. Since the Debian repositories have an old version of V2Ray, we will use a Docker container. First, connect to the server via SSH with the command:
Code:
 

 
[code]
ssh root@ip_сервера
[/code]

Install Docker according to the instructions from the official Docker website - https://docs.docker.com/engine/install/debian/

Download the required Docker container with the command
Code:
 

 
[code]
docker pull teddysun/v2ray
[/code]

Now you need to generate a UUID for configuration via the site https://www.uuidgenerator.net/version4
Copy this UUID, it will be needed to connect to our server via these protocols

Now create a V2Ray configuration file (in the id section enter the generated UUID for both protocols):
Code:
 

 
[code]
cat > /etc/v2ray/config.json <<EOF { "inbounds": [ { "port": 9000, "protocol": "vmess", "settings": { "clients": [ { "id": "2aec9185-49a5-4aef-bf7e-1f486a9ac919", "level": 1, "alterId": 64 } ] } }, { "port": 9000, "protocol": "vless", "settings": { "clients": [ { "id": "2aec9185-49a5-4aef-bf7e-1f486a9ac919", "level": 1 } ], "decryption": "none", "fallbacks": [ { "dest": 9000 } ] }, "streamSettings": { "network": "tcp" } } ], "outbounds": [ { "protocol": "freedom", "settings": {} }, { "protocol": "blackhole", "settings": {}, "tag": "blocked" } ] } EOF
 
[/code]

Install the Docker container using the command:
Code:
 

 
[code]
docker run -d -p 9000:9000 --name v2ray --restart=always -v /etc/v2ray:/etc/v2ray teddysun/v2ray
[/code]

After that, the container is running, you can check the functionality through the V2RayNG mobile application ( https://github.com/2dust/v2rayNG )

When connecting, select the desired protocol, specify the name, port and UUID for the connection, the rest of the settings are default.

This instruction showed the simplest configuration, it can be configured more subtly for different use cases.

Cloak is a type of obfuscation protocol that is designed to obfuscate VPN and proxy traffic, making it difficult for network administrators and ISPs to detect and block the traffic.

It works by using a combination of methods to make VPN or proxy traffic look like regular HTTPS traffic. First, it encrypts VPN or proxy traffic using TLS encryption, which is the same encryption protocol as HTTPS. It also uses domain fronting technology, which allows VPN or proxy traffic to look like it is coming from a legitimate HTTPS site.

When a user connects to a VPN or proxy server that uses Cloak, the server first establishes a TLS connection with the user's device. This initial connection is used to exchange keys and establish an encrypted channel between the two devices. Once the encrypted channel is established, the user's traffic is sent over this channel using a technique called tunneling.

During tunneling, the user's traffic is embedded in HTTP requests and sent to the VPN or proxy server using domain fronting. This makes the traffic appear to be coming from a legitimate HTTPS site, making it much more difficult for network administrators and ISPs to detect and block the traffic.

Comparing these protocols and determining which one is best for your specific use cases and personal preferences depends on your specific needs. Each protocol has its own strengths and weaknesses, and choosing the best protocol for your specific situation requires a thorough understanding of the protocol's characteristics and network requirements.

These protocols can be combined with each other and with popular VPN protocols such as Wireguard and OpenVPN, such a solution will help to hide the fact of using VPN in cases where VPN is blocked at the protocol level.


leaving a like is much appreciated and help me to keep publishing threads.