ostp/docs/en/migration-v0.3.1.md

2.6 KiB

OSTP Configuration Migration to v0.3.1

The OSTP config.json schema has been significantly redesigned in version v0.3.1 to support a modern multi-server architecture. The new schema provides greater flexibility by splitting configuration into inbounds, outbounds, and flexible routing rules, replacing the monolithic architecture of previous versions.

Automatic Migration

The OSTP core and GUI clients are equipped with an automatic migrator. When launching OSTP v0.3.1 with a config.json from a previous version, the migrator will automatically transform the legacy schema into the new v0.3.1 schema.

The migrated file will be overwritten with the new format and will begin with:

// OSTP Configuration v0.3.1
// DO NOT EDIT THIS COMMENT - Migrator relies on it
{
  "version": "0.3.1",
  "mode": "client",
  ...
}

Manual Schema Reference

If you prefer to configure manually, the following is a reference of the new modular configuration format:

Legacy Configuration (v0.2.x)

{
  "mode": "client",
  "server": "192.168.1.100:50000",
  "access_key": "mysecretkey",
  "socks5_bind": "127.0.0.1:1088",
  "tun": {
    "enable": true,
    "kill_switch": true
  },
  "exclude": {
    "domains": ["localhost"],
    "ips": ["192.168.1.0/24"]
  }
}

New Configuration (v0.3.1)

{
  "version": "0.3.1",
  "mode": "client",
  "log": {
    "level": "info"
  },
  "inbounds": [
    {
      "type": "tun",
      "tag": "tun-in",
      "auto_route": true,
      "mtu": 1140
    },
    {
      "type": "socks",
      "tag": "socks-in",
      "bind_addr": "127.0.0.1:1088"
    }
  ],
  "outbounds": [
    {
      "type": "ostp",
      "tag": "proxy",
      "server": "192.168.1.100",
      "port": 50000,
      "access_key": "mysecretkey",
      "transport": {
        "type": "udp"
      },
      "multiplex": {
        "enabled": false
      }
    },
    {
      "type": "direct",
      "tag": "direct"
    },
    {
      "type": "block",
      "tag": "block"
    }
  ],
  "routing": {
    "rules": [
      {
        "domain_suffix": ["localhost"],
        "ip_cidr": ["192.168.1.0/24"],
        "outbound": "direct"
      }
    ],
    "default_outbound": "proxy"
  }
}

Key Changes

  • Outbounds List: Multiple proxy servers can now be defined.
  • Inbounds List: TUN and SOCKS5 are now independent listeners.
  • Routing: Fine-grained traffic routing between inbounds and outbounds based on domains, IPs, and processes.
  • Comments: The GUI and migrator now use JS-style // comments in config.json instead of the legacy "_comment" JSON keys.