Skip to content

Connecting over Wireguard

jingkai. edited this page Jan 17, 2026 · 5 revisions

** This is for power users only, if you have to ask what wireguard is, you probably should not be using it.**

output2.mp4

Note that I had to compress this video to get it to fit within 10mb for github

Wireguard is a VPN solution. You can read about it here.

Typically, Wireguard ships in-kernel and is fairly lightweight. This is the typical solution that will usually be shipped as the offering for built-in VPN servers on certain routers.

For Mikrotik, this particular offering is called "back-to-home". It may be called other things (such as Unifi gateway for Unifi devices), but the core part is that it must be wireguard based (not openVPN)

In Akira, as HorizonOS's Kernel does not include wireguard, we have to do this in userland. Thus, I have packaged a userland basic implementation of wireguard, with TCP and UDP relays done using lwIP. Do note: you will have to stream at a significantly lower bitrate for a better experience.

With wireguard support and either a dynamic or static IP, you will not need to expose all the typical ports (9295-9297, 9302, 987) to the public internet, as long as your wireguard server is reachable, you should be able to connect to it.

To activate this feature, you will need to place your wireguard config file in /switch/akira/wg0.conf image

A typical wg0.conf file looks like this, obviously, all numbers may vary:

[Interface]
ListenPort = <BLA>
PrivateKey = <YOUR PRIVKEY HERE>
Address = 192.168.216.3/32, fc00:0:0:216::3/128
DNS = 192.168.216.1
[Peer]
PublicKey = <YOUR PUBKEY HERE>
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = <YOUR WG ENDPOINT HERE>:57820
PersistentKeepalive = 30

Note that you will need to be externally reachable and not behind CGNat.

Once again, your mileage may vary. This is a very early release and still jitters, so I have capped it to 720p with max of 15k bitrate. In my tests, the actual bitrate negotiated with the PS5 has never exceeded 6k bitrate.

Clone this wiki locally