---
name: "obfs-server"
section: "1"
platform: "linux"
package: "simple-obfs"
version: "0.0.5-6"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/obfs-server"
---

# obfs-server(1)

simple-obfs server

## NAME

obfs-server - simple-obfs server

## SYNOPSIS

**obfs-server** \[-v\] \[-h\|--help\] \[-s *\<server\_host\>*\] \[-p *\<server\_port\>*\] \[-l *\<local\_port\>*\] \[-r *\<addr\>*:*\<port\>*\] \[-f *\<pid\_file\>*\] \[-t *\<timeout\>*\] \[-c *\<config\_file\>*\] \[-i *\<interface\>*\] \[-a *\<user\_name\>*\] \[-d *\<dns\_addr\>*\] \[-n *\<nofile\>*\] \[-b \<local\_address\] \[--fast-open\] \[--mptcp\]

## DESCRIPTION

**Obfs-simple** is a very simple obfuscating tunnel tool.

**Obfs-simple** is written in pure C and takes advantage of libev to achieve both high performance and low resource consumption.

**Obfs-simple** consists of two components. [**obfs-server**(1)](/obfs-server/1.md) works as a standard tunnel on remote machines to obfuscate TCP traffic.

## OPTIONS

- \-s *\<server\_host\>*

  Set the server’s hostname or IP.

- \-p *\<server\_port\>*

  Set the server’s port number.

- \-a *\<user\_name\>*

  Run as a specific user.

- \-f *\<pid\_file\>*

  Start simple-obfs as a daemon with specific pid file.

- \-t *\<timeout\>*

  Set the socket timeout in seconds. The default value is 60.

- \-c *\<config\_file\>*

  Use a configuration file.

- \-n *\<number\>*

  Specify max number of open files.

  Only available on Linux.

- \-i *\<interface\>*

  Send traffic through specific network interface.

  For example, there are three interfaces in your device, which is lo (127.0.0.1), eth0 (192.168.0.1) and eth1 (192.168.0.2). Meanwhile, you configure **obfs-server** to listen on 0.0.0.0:8388 and bind to eth1. That results the traffic go out through eth1, but not lo nor eth0. This option is useful to control traffic in multi-interface environment.

- \-b *\<local\_address\>*

  Specify local address to bind.

- \-6

  Resovle hostname to IPv6 address first.

- \-d *\<addr\>*

  Setup name servers for internal DNS resolver (libudns). The default server is fetched from */etc/resolv.conf*.

- \--fast-open

  Enable TCP fast open.

  Only available with Linux kernel \> 3.7.0.

- \--mptcp

  Enable Multipath TCP.

  Only available with MPTCP enabled Linux kernel.

- \--obfs *\<http\|tls\>*

  Enable HTTP or TLS obfuscating. (Experimental)

- \-v

  Enable verbose mode.

\-h\|--help

Print help message.

## EXAMPLE

It is recommended to use a config file when starting [**obfs-server**(1)](/obfs-server/1.md).

The config file is written in JSON and is easy to edit. Check out the *SEE ALSO* section for the default path of config file.

```
# Start the obfs-server
obfs-server -c /etc/simple-obfs/config.json
```

## SEE ALSO

[**obfs-local**(1)](/obfs-local/1.md), /etc/simple-obfs/config.json
