You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/sliver-docs/pages/docs/md/Configuration Files.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ daemon:
12
12
host: ""
13
13
port: 31337
14
14
tailscale: false
15
-
disable_wg: false
15
+
enable_wg: false
16
16
logs:
17
17
level: 4
18
18
grpc_unary_payloads: false
@@ -54,7 +54,7 @@ cxx: {}
54
54
- `host`- Interface to bind the daemon listener to. Empty string means all interfaces.
55
55
- `port`- Listen port for the multiplayer listener.
56
56
- `tailscale`- Enable Tailscale for daemon listener setup. When enabled, Sliver does not wrap multiplayer in its own WireGuard layer.
57
-
- `disable_wg`- Expose multiplayer directly over mTLS instead of the default WireGuard-protected mode.
57
+
- `enable_wg`- Wrap multiplayer in WireGuard. If omitted or false, multiplayer is exposed directly over mTLS.
58
58
- `logs`- Server logging options.
59
59
- `level`- `logrus` level (`0`-`6`, clamped by Sliver). `4` is `INFO`, `5` is `DEBUG`, `6` is `TRACE`.
60
60
- `grpc_unary_payloads`- Log gRPC unary payloads.
@@ -159,4 +159,4 @@ The `wg` block is optional:
159
159
160
160
- When present, `sliver-client` automatically brings up the multiplayer WireGuard wrapper and then dials the in-tunnel gRPC/mTLS service.
161
161
- When absent, the client connects directly to the multiplayer mTLS listener.
162
-
- Generate a direct-only profile with `new-operator --disable-wg` or `sliver-server operator --disable-wg` when you need compatibility with external gRPC clients that do not implement the multiplayer WireGuard wrapper.
162
+
- Generate a WireGuard-enabled profile with `new-operator --enable-wg` or `sliver-server operator --enable-wg` when you want the multiplayer WireGuard wrapper.
Copy file name to clipboardExpand all lines: docs/sliver-docs/pages/docs/md/Custom Clients.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@ Current Sliver releases generate multiplayer operator configs with a `wg` block
7
7
If you are writing a custom client in another language, you have two options:
8
8
9
9
- Implement the multiplayer WireGuard wrapper described in [multiplayer mode](/docs?name=Multi-player+Mode), then connect to the in-tunnel gRPC/mTLS service.
10
-
- Keep multiplayer in direct mode by starting the listener with `multiplayer --disable-wg` or `sliver-server daemon --disable-wg`, then generate operator profiles with `new-operator --disable-wg` or `sliver-server operator --disable-wg`.
10
+
- Keep multiplayer in direct mode by default, or explicitly opt into the wrapper with `multiplayer --enable-wg` or `sliver-server daemon --enable-wg`. Generate matching operator profiles with `new-operator --enable-wg` or `sliver-server operator --enable-wg` when you want the client-side WireGuard wrapper.
11
11
12
12
Once connected, the client/server API is still gRPC, so any language with gRPC support can in theory be used to create a custom client.
Copy file name to clipboardExpand all lines: docs/sliver-docs/pages/docs/md/Daemon Mode.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,11 +15,11 @@ If `server.yaml` does not exist, Sliver generates it. If a legacy `server.json`
15
15
-`-l, --lhost` multiplayer listener host
16
16
-`-p, --lport` multiplayer listener port
17
17
-`-t, --tailscale` enable Tailscale listener
18
-
-`--disable-wg`expose multiplayer directly over mTLS instead of using the default WireGuard wrapper
18
+
-`--enable-wg`wrap multiplayer in WireGuard instead of exposing it directly over mTLS
19
19
-`-f, --force` force unpack static assets
20
20
- For `sliver-server daemon`, `--lhost` and `--lport` override config values. If omitted, Sliver uses `daemon.host` and `daemon.port` from `server.yaml`.
21
-
- For normal startup (`sliver-server`) with `daemon_mode: true`, Sliver uses `daemon.tailscale` and `daemon.disable_wg` from `server.yaml`.
22
-
- With `--disable-wg` or `daemon.disable_wg: true`, multiplayer falls back to direct TCP mTLS on the configured port.
21
+
- For normal startup (`sliver-server`) with `daemon_mode: true`, Sliver uses `daemon.tailscale` and `daemon.enable_wg` from `server.yaml`.
22
+
- With `--enable-wg` or `daemon.enable_wg: true`, multiplayer is wrapped in WireGuard. Otherwise it stays on direct TCP mTLS.
23
23
24
24
### Example Config
25
25
@@ -29,7 +29,7 @@ daemon:
29
29
host: ""
30
30
port: 31337
31
31
tailscale: false
32
-
disable_wg: false
32
+
enable_wg: false
33
33
logs:
34
34
level: 4
35
35
grpc_unary_payloads: false
@@ -49,7 +49,7 @@ Since daemon mode does not provide an interactive server console, generate opera
49
49
./sliver-server operator --name zer0cool --lhost 1.2.3.4 --permissions all --save zer0cool.cfg
50
50
```
51
51
52
-
The `operator` CLI matches the daemon's multiplayer exposure by default. If the daemon is running in direct mode or over Tailscale, the generated config omits the multiplayer `wg` block automatically. You can also force a direct-only profile with `--disable-wg`.
52
+
The `operator` CLI generates direct multiplayer profiles by default. Add `--enable-wg` when the daemon is running with the WireGuard wrapper.
Copy file name to clipboardExpand all lines: docs/sliver-docs/pages/docs/md/Multi-player Mode.md
+9-9Lines changed: 9 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
Multiplayer mode allows multiple operators to connect to the same Sliver server and collaborate on engagements. The easiest way to set up a server for multiplayer is to use the [Linux install script](/docs?name=Linux+Install+Script), which configures the server as a systemd service. However, any `sliver-server` binary supports multiplayer mode.
2
2
3
-
By default, Sliver now protects the operator-facing multiplayer listener with a dedicated WireGuard wrapper. The gRPC/mTLS authentication stack is still used inside the tunnel, but the server no longer exposes the multiplayer gRPC listener directly unless you explicitly opt out with `--disable-wg`.
3
+
Sliver exposes the operator-facing multiplayer listener directly over gRPC/mTLS by default. You can opt into a dedicated WireGuard wrapper with `--enable-wg`; the gRPC/mTLS authentication stack still runs inside that tunnel.
4
4
5
5
```
6
6
┌──────────────────┐ C2
@@ -53,7 +53,7 @@ From the server, start the multiplayer listener and generate an operator config
53
53
[*] Saved new client config to: /Users/moloch/Desktop/moloch_example.com.cfg
54
54
```
55
55
56
-
**IMPORTANT:** Before clients can connect to a server you must start a multiplayer listener with the `multiplayer` command. In the default WireGuard-protected mode the outer listener is UDP/31337. If you disable the wrapper, multiplayer is exposed directly on TCP/31337 instead.
56
+
**IMPORTANT:** Before clients can connect to a server you must start a multiplayer listener with the `multiplayer` command. By default multiplayer is exposed directly on TCP/31337. If you enable the wrapper, the outer listener becomes UDP/31337 and the gRPC/mTLS service stays inside the tunnel.
57
57
58
58
You can now give this configuration file `moloch_example.com.cfg` to the operator and they can connect to the server using the `sliver-client` binary. The Sliver client will look for configuration files in `~/.sliver-client/configs/` or you can import configs using the `import` CLI. The configs directory can contain multiple configs for different servers.
59
59
@@ -71,11 +71,11 @@ $ ./sliver-client
71
71
If you want the old behavior, or you need compatibility with third-party gRPC clients that do not implement the multiplayer WireGuard wrapper, disable it on both the listener and the generated operator profile:
[server] sliver > new-operator --name tester --lhost 1.2.3.4 --permissions all
79
79
80
80
[*] Generating new client certificate, please wait ...
81
81
[*] Saved new client config to: /Users/tester/Desktop/tester_example.com.cfg
@@ -85,21 +85,21 @@ In direct mode:
85
85
86
86
- Multiplayer is exposed directly over TCP on `--lport` (default `31337`).
87
87
- Generated operator configs omit the `wg` block.
88
-
-`sliver-client --disable-wg`forces a direct connection even if the config includes a `wg` block.
88
+
-`sliver-client --enable-wg`opts into the multiplayer WireGuard wrapper when the operator config includes a `wg` block.
89
89
90
-
The listener mode and the operator configneed to match. A WireGuard-enabled config cannot talk to a direct listener, and a direct-only client cannot talk to the default WireGuard-wrapped listener.
90
+
The listener mode, operator config, and client flag need to match. A WireGuard-wrapped listener needs a `wg` block in the operator profile plus `sliver-client --enable-wg`. Direct multiplayer works without the `wg` block and without the flag.
91
91
92
92
### Server CLI / Daemon Mode Multiplayer
93
93
94
-
If the server is running in daemon mode, the multiplayer listener is started for you without an interactive console. By default the daemon uses the same WireGuard-protected multiplayer mode described above. You can switch the daemon back to direct exposure with `sliver-server daemon --disable-wg` or `daemon.disable_wg: true` in `server.yaml`.
94
+
If the server is running in daemon mode, the multiplayer listener is started for you without an interactive console. By default the daemon uses direct multiplayer mTLS. You can opt into the WireGuard wrapper with `sliver-server daemon --enable-wg` or `daemon.enable_wg: true` in `server.yaml`.
95
95
96
96
Use the server CLI to generate operator configuration files:
97
97
98
98
```
99
99
./sliver-server operator --name zer0cool --lhost 1.2.3.4 --permissions all --save zer0cool.cfg
100
100
```
101
101
102
-
When daemon mode is configured for direct multiplayer or Tailscale, the CLI automatically omits the `wg` block by default. You can also force a direct-only profile with `--disable-wg`.
102
+
Operator profiles omit the multiplayer `wg` block by default. Add `--enable-wg` when the listener is wrapped in WireGuard.
103
103
104
104
The installation script places the `sliver-server` binary in `/root` by default.
105
105
@@ -116,4 +116,4 @@ $ ./sliver-server
116
116
sliver > multiplayer -T
117
117
```
118
118
119
-
You should now see a new Tailscale host named `sliver-server-<machine>`. Use that hostname as `--lhost` when generating operator configs for other hosts on the same tailnet. If you generate the operator config before enabling Tailscale multiplayer, add `--disable-wg` explicitly so the profile does not include the multiplayer `wg` block.
119
+
You should now see a new Tailscale host named `sliver-server-<machine>`. Use that hostname as `--lhost` when generating operator configs for other hosts on the same tailnet. Tailscale multiplayer does not use the multiplayer WireGuard wrapper, so operator profiles should be generated without `--enable-wg`.
0 commit comments