!!! quote "Changes in sing-box 1.8.0"
:material-plus: [gso](#gso)
{
"type": "wireguard",
"tag": "wireguard-out",
"server": "127.0.0.1",
"server_port": 1080,
"system_interface": false,
"gso": false,
"interface_name": "wg0",
"local_address": [
"10.0.0.2/32"
],
"private_key": "YNXtAzepDqRv9H52osJVDQnznT5AM11eCK3ESpwSt04=",
"peers": [
{
"server": "127.0.0.1",
"server_port": 1080,
"public_key": "Z1XXLsKYkYxuiYjJIkRvtIKFepCYHTgON+GwPq7SOV4=",
"pre_shared_key": "31aIhAPwktDGpH4JDhA8GNvjFXEf/a6+UaQRyOAiyfM=",
"allowed_ips": [
"0.0.0.0/0"
],
"reserved": [0, 0, 0]
}
],
"peer_public_key": "Z1XXLsKYkYxuiYjJIkRvtIKFepCYHTgON+GwPq7SOV4=",
"pre_shared_key": "31aIhAPwktDGpH4JDhA8GNvjFXEf/a6+UaQRyOAiyfM=",
"reserved": [0, 0, 0],
"workers": 4,
"mtu": 1408,
"network": "tcp",
... // Dial Fields
}
==Required if multi-peer disabled==
The server address.
==Required if multi-peer disabled==
The server port.
Use system interface.
Requires privilege and cannot conflict with exists system interfaces.
Forced if gVisor not included in the build.
Custom interface name for system interface.
!!! question "Since sing-box 1.8.0"
!!! quote ""
Only supported on Linux.
Try to enable generic segmentation offload.
==Required==
List of IP (v4 or v6) address prefixes to be assigned to the interface.
==Required==
WireGuard requires base64-encoded public and private keys. These can be generated using the wg(8) utility:
wg genkey
echo "private key" || wg pubkey
Multi-peer support.
If enabled, server, server_port, peer_public_key, pre_shared_key
will be ignored.
WireGuard allowed IPs.
WireGuard reserved field bytes.
$outbound.reserved
will be used if empty.
==Required if multi-peer disabled==
WireGuard peer public key.
WireGuard pre-shared key.
WireGuard reserved field bytes.
WireGuard worker count.
CPU count is used by default.
WireGuard MTU.
1408 will be used if empty.
Enabled network
One of tcp
udp
.
Both is enabled by default.
See Dial Fields for details.