DCAS handbook

Sing-box

Why?

To gain access to a blocked resources.

Installation

See sing-box guide

Configuration

Config example:

{
  "log": {
    "level": "info"
  },
  "inbounds": [
    {
      "type": "socks",
      "listen": "127.0.0.1",
      "listen_port": 1080
    },
    {
      "type": "tun",
      "tag": "tun-in",
      "interface_name": "tun-sb",   # network interface name
      "address": [                  # virtual NIC addresses
        "172.18.0.1/30",            # (to be used in routing)
        "fdfe:dcba:9876::1/126"
      ]
    }
  ],
  "outbounds": [
    {
      "type": "vless",
      "tag": "vless-proxy",
      # REDACTED
    }
  ]
}

Launch

From console: write config to sing-box-conf.json and run sing-box run -c sing-box-conf.json.

Systemd service: write config to /etc/sing-box/config.json and do systemctl start sing-box. You may also want to systemctl enable sing-box.

Proxy

Some parts of DCAS can be set up to use proxy – at least main and embeds at the time of writing.

Edit server/config.toml and set proxy field of corresponding module configuration to socks5://localhost:9150.

Routes

For the parts of DCAS that could not be configured to use proxy you can set up ip routing instead. If you know that 1.2.3.0/24 subnet is inaccessible from your host, you can set up route in one of the following ways:

Via ip route

ip r a 1.2.3.0/24 dev tun-sb

Via iptables

TBD