---
id: "wireguard"
type: "component"
kind: "vpn-gateway"
provider: "default"
category: "edge"
docs: "https://www.wireguard.com/"
url: "https://localhost:3000/catalogue/components/wireguard"
---

# WireGuard

Kernel VPN tunnelling IP over UDP with Curve25519 keys, cryptokey routing and endpoint roaming.

| | |
|---|---|
| Provider | [default](https://localhost:3000/catalogue?provider=default) |
| Kind | [VPN gateway](https://localhost:3000/catalogue/kinds/vpn-gateway) |
| Category | Edge |
| Official docs | [https://www.wireguard.com/](https://www.wireguard.com/) |

## Properties

| property | type | values | required | kind default | this component |
|---|---|---|---|---|---|
| `activeActive` | boolean | — | no | false | **false** |
| `bgp` | boolean | — | no | false | **false** |
| `listenPort` | integer | — | no | 51820 | inherited |
| `managed` | boolean | — | no | false | **false** |
| `peerType` | enum | `site-to-site`, `point-to-site`, `cloud-to-cloud` | no | — | **"site-to-site"** |
| `preSharedKey` | boolean | — | no | false | inherited |
| `roaming` | boolean | — | no | true | inherited |
| `throughputMbps` | integer | — | no | — | inherited |
| `transport` | enum | `udp` | no | "udp" | inherited |
| `tunnelType` | enum | `ipsec`, `ssl`, `wireguard` | no | — | **"wireguard"** |

Bold values are the ones this component pins.

## Rules that apply · 0

No rule selects this kind or its category.

## Other products of the same kind · 18

- [VPN Gateway](https://localhost:3000/catalogue/components/alibaba-vpn-gateway.md) `alibaba-vpn-gateway` — alibabacloud
- [AWS Client VPN](https://localhost:3000/catalogue/components/aws-client-vpn.md) `aws-client-vpn` — aws
- [AWS Site-to-Site VPN](https://localhost:3000/catalogue/components/aws-site-to-site-vpn.md) `aws-site-to-site-vpn` — aws
- [Azure VPN Gateway](https://localhost:3000/catalogue/components/azure-vpn-gateway.md) `azure-vpn-gateway` — azure
- [NetBird](https://localhost:3000/catalogue/components/netbird.md) `netbird` — default
- [OpenVPN](https://localhost:3000/catalogue/components/openvpn.md) `openvpn` — default
- [strongSwan](https://localhost:3000/catalogue/components/strongswan.md) `strongswan` — default
- [Submariner](https://localhost:3000/catalogue/components/submariner.md) `submariner` — default
- [Tailscale](https://localhost:3000/catalogue/components/tailscale.md) `tailscale` — default
- [Generic VPN gateway](https://localhost:3000/catalogue/components/vpn-gateway.md) `vpn-gateway` — default
- [ZeroTier](https://localhost:3000/catalogue/components/zerotier.md) `zerotier` — default
- [Cloud VPN](https://localhost:3000/catalogue/components/google-cloud-vpn.md) `google-cloud-vpn` — gcp
- [IBM Cloud VPN for VPC](https://localhost:3000/catalogue/components/ibm-vpn-gateway.md) `ibm-vpn-gateway` — ibm
- [Client VPN for VPC](https://localhost:3000/catalogue/components/ibm-vpn-server.md) `ibm-vpn-server` — ibm
- [Site-to-Site VPN](https://localhost:3000/catalogue/components/oci-site-to-site-vpn.md) `oci-site-to-site-vpn` — oci
- [Neutron VPNaaS](https://localhost:3000/catalogue/components/openstack-neutron-vpnaas.md) `openstack-neutron-vpnaas` — openstack
- [Client Gateway](https://localhost:3000/catalogue/components/outscale-client-gateway.md) `outscale-client-gateway` — outscale
- [Virtual Gateway](https://localhost:3000/catalogue/components/outscale-virtual-gateway.md) `outscale-virtual-gateway` — outscale

## Use it in a design

```yaml
nodes:
  - { id: "wireguard", component: "wireguard" }
```

## Source (`component` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../../schema/component.schema.json
# WireGuard: kernel VPN that encapsulates IP packets in UDP using the Noise framework,
# Curve25519 and ChaCha20. Peers are configured by public key (cryptokey routing) with a
# default listening port of 51820 and full IP roaming; there is no BGP or HA layer.
schemaVersion: "1"
type: "component"
id: "wireguard"
kind: "vpn-gateway"
provider: "default"
docs: "https://www.wireguard.com/"
defaults:
  managed: false
  tunnelType: "wireguard"
  peerType: "site-to-site"
  bgp: false
  activeActive: false
properties:
  listenPort:
    type: "integer"
    default: 51820
  transport:
    type: "enum"
    values: ["udp"]
    default: "udp"
  roaming:
    type: "boolean"
    default: true
  preSharedKey:
    type: "boolean"
    default: false
```

Human page: https://localhost:3000/catalogue/components/wireguard
