What Is OBFS HTTP?
OBFS is short for "obfuscation". It is a plugin that works alongside Shadowsocks to disguise your traffic so it does not look like typical proxy data. The HTTP variant of OBFS, called obfs-http, wraps your traffic inside fake HTTP headers, making the connection appear like a normal web browsing session to anyone inspecting the network.
This technique is especially useful in environments where deep packet inspection (DPI) is used to identify and block proxy traffic. By mimicking regular HTTP requests, OBFS HTTP allows your connection to pass through filters that would otherwise flag and terminate a plain Shadowsocks connection.
How OBFS HTTP Works with Shadowsocks-Libev
Shadowsocks-Libev is a lightweight C implementation of the Shadowsocks protocol. It is widely used because it is efficient, stable, and compatible with the SIP003 plugin system. The OBFS HTTP plugin uses this plugin system to add an extra obfuscation layer on both the client and server sides.
When you enable OBFS HTTP, your client first wraps each packet with a fake HTTP header before encrypting it through Shadowsocks. The server unwraps this header, decrypts the payload, and forwards the request to its destination. To an outside observer, the traffic looks like normal HTTP communication rather than a proxy tunnel.
When Should You Use OBFS HTTP?
OBFS HTTP is a good choice when you are on a network that actively blocks proxy traffic. Examples include campus networks, corporate firewalls, and certain public Wi-Fi hotspots. If a plain Shadowsocks connection fails or drops frequently, adding OBFS HTTP often solves the problem.
On the other hand, if you are on an open network where plain Shadowsocks works fine, you may not need the extra obfuscation. In that case, you can use Shadowsocks-GO or plain Shadowsocks-Libev for slightly better performance. All variants are available on Dataku.net.
How to Get Started
First, choose a country from the list above that matches your needs. Then click the Create button to generate your server credentials, including the address, port, password, encryption method, and OBFS plugin settings.
Next, install a Shadowsocks client that supports the SIP003 plugin system, such as Shadowsocks-Android, Shadowsocks-Windows, or Shadowsocks-Libev on Linux. Import the configuration into the client, enable the OBFS HTTP plugin, and connect. You can confirm the connection is active by checking your public IP address.
Frequently Asked Questions
Is OBFS HTTP the same as HTTPS?
No. OBFS HTTP makes your traffic look like HTTP traffic, but it is not actual HTTPS. The obfuscation only changes the appearance of the packets, while the real encryption is handled by Shadowsocks itself.
Do I need a special client for OBFS HTTP?
Yes. Your Shadowsocks client must support the SIP003 plugin system to use OBFS plugins. Most modern clients such as Shadowsocks-Android, Shadowsocks-Windows, and Shadowsocks-Libev include plugin support by default.
Does OBFS HTTP slow down the connection?
There is a small overhead because each packet carries extra header data. In practice, the slowdown is minimal and usually not noticeable for browsing, streaming, or gaming.
Which OBFS variant should I choose, HTTP or TLS?
Both have their use cases. OBFS HTTP mimics regular web traffic, while OBFS TLS mimics encrypted HTTPS traffic. If the network you are on allows HTTPS but not plain HTTP, OBFS TLS is usually the better choice. If the network only checks for recognizable HTTP headers, OBFS HTTP may be enough.