Here is Lucasnz pfSense-pkg-wireguard : https://github.com/lucasnz/pfSense-pkg-wireguard These is a detailed tutorial on how to build and create the package for Lucasnz pfSense-pkg-wireguard-1.0.1 For 2.5.0. If you wish to download an already compiled package - the just go to this link below : https://drive.google.com/file/d/1SaggDk6-1BOwcSa4-498jQfGZICqqvsb/view?usp=sharing The reason that I chose Lucasnz to compile on a FreeBSD Build Server ( special thanks to @Talisker for suggestion that it " works " ) is just that. Lucasnz WireGuard for pfsense survives reboots, upgrades - and has no issues with DNS or any such other related problems. So, I am putting this together so others can learn how to build packages for pfsense on FreeBSD Build Server. The basic instructions can be found here on a tutorial which I wrote for getdns and stubby ( DOT ) for pfsense : https://forum.netgate.com/topic/130832/solution-posted-dns-tls-getdns-stubby-from-pfsense-freebsd-ports So let's get started. First, basically, I followed this guide here - https://gist.github.com/jdillard/3f44d06ba616fec60890488abfd7e5f5 - Making a package for pfSense 2.3. As the guide asserts , you need to set up a FreeBSD 12 Build 12 Server. Grab FreeBSD 12.1/ iso here : https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/12.1/FreeBSD-12.1-RELEASE-amd64-disc1.iso you will need VmWare Work Station or a similar product or an old PC or other hardware for FreeBSD Build Server. I used VMware Workstation Pro 15.5.6 Build 16341506 to build this package - Lucasnz pfSense-pkg-wireguard-1.0.1 For pfsense 2.5.0. 1 - Install and configure the iso which you downloaded earlier on your VmWare Machine. Here are is a link as to how do this if you are somewhat unfamiliar with this process: https://www.tecmint.com/freebsd-11-1-installation-guide/ 2- After you have installed Freebsd 12, you need to follow these steps here : https://www.tecmint.com/things-to-do-after-installing-freebsd/ The main things I did here ( from the link above ) were to 1. Update FreeBSD System / 2. Install Editors and Bash / 3. Secure SSH on FreeBSD ( you need this to make the rest of this process much easier for you ) / 7. Configure FreeBSD Static IP ( you really should do this while installing FreeBSD 12 during the initial configuration of FreeBSD 12 ) / 9. Manage FreeBSD Services ( very important in order to start programs at boot -especially SSH ). 3 - Now download and extract FreeBSD12 kernel sources so that you do not run into any unforeseen issues down the road - see here for detailed reference : https://unix.stackexchange.com/questions/204956/how-do-you-install-the-freebsd10-kernel-sources Just issue these two commands via SSH - ( A ) # fetch -o /tmp ftp://ftp.freebsd.org/pub/`uname -s`/releases/`uname -m`/`uname -r | cut -d'-' -f1,2`/src.txz ( B ) # tar -C / -xvf /tmp/src.txz 4 - After you have successfully installed FreeBSD12 kernel sources, update your FreeBSD 12 Build Server once again before installing ports collection. Just issue these four commands via SSH : # freebsd-update fetch / # freebsd-update install / # pkg update / # pkg upgrade 5 - Power down your VMWare Machine and take a snapshot. IT is now time to update your ports collection. I have found that the most effective manner in order to achieve this is as follows: https://www.freebsd.org/doc/handbook/ports-using.html ( A ) - Keep it simple - follow the instructions right at the top of this page - issue these two commands after you SSH into your FreeBSD 12 Build 12 Server - issue two commands (# portsnap fetch ) and (# portsnap extract ) - you have now updated your ports collection. 6 - After installing your ports collection, shutdown your virtual machine. Defragment and Compact your hard drive - always a good practice. Now restart your FreeBSD 12 Build Server. As per instructions from Lucasnz, Ascrod or Ashus wireguard packages see here below: pfSense-pkg-wireguard pfSense integration for WireGuard. Build The build process is similar to that of other FreeBSD and pfSense packages. You will need to set up a FreeBSD 12 build environment and install or build wireguard and wireguard-go on it. Please check the pfSense package development documentation for more information. So you " Must " install or build wireguard and wireguard-go on your FreeBSD 12 Build Server before proceeding. Enter this command below as I prefer to build package with ports collection. See here for reference : https://www.freshports.org/net/wireguard/ ( A ) # cd /usr/ports/net/wireguard/ && make install clean / Accept all the default prompts you encounter during install and hit " Enter " After you have installed WireGuard and all the dependencies - shut down FreeBSD 12 Build Server- Defragment and Compact - take Snapshot 7 - ( A ) You now need download the Lucasnz pfSense-pkg-wireguard from github. In order to do this you must install and configure git on your FreeBSD 12 Build Server. See here below for how to install and configure git package on FreeBSD 12. Issue # pkg install git to start. See here for detailed instructions : https://www.digitalocean.com/community/tutorials/how-to-install-git-on-freebsd-11-0 ( B ) - See here for next steps : https://docs.netgate.com/pfsense/en/latest/development/developing-packages.html#testing-building-individual-packages - Install Lucasnz pfSense-pkg-wireguard package with the following commands - # cd /usr/ and then - to clone the Lucasnz pfSense-pkg-wireguard package issue this all important command # git clone https://github.com/lucasnz/pfSense-pkg-wireguard.git 8 - After downloading / cloning pfSense-pkg-wireguard into this directory move pfSense-pkg-wireguard into the same directory as wireguard and wireguard-go in order to finally make the Lucasnz pfSense-pkg-wireguard package ( A ) - First issue these three commands - # mv pfSense-pkg-wireguard ports/net/ then issue this command # cd /usr/ports/net/pfSense-pkg-wireguard/ # make package ( these will build your Lucasnz pfSense-pkg-wireguard package ) ( B ) - Your package is now compiled and you are ready to WINSCP ( transfer ) your Lucasnz pfSense-pkg-wireguard package to your usb drive or desktop where you can the install this newly built package on your pfSense 2.5.0 Firewall. The actual package is located here in this folder / directory - /usr/ports/net/pfSense-pkg-wireguard/work/pkg In this directory you will find : pfSense-pkg-wireguard-1.0.1.txz and it will flawlessly work on pfSense 2.5.0 9 - ( A ) Now you are ready to export your pfSense-pkg-wireguard-1.0.1.txz from your FreeBSD 12 Build Server and import / install it to your pfSense 2.5.0 box. WinSCP ( scp protocol ) into your FreeBSD 12 Build Server. Go into your /usr/ports/net/pfSense-pkg-wireguard/work/pkg directory. There you will find the pfSense-pkg-wireguard-1.0.1.txz package you just compiled and built. WINSCP ( transfer ) your pfSense-pkg-wireguard-1.0.1.txz package to your usb drive or desktop folder where you can find this later. ( B ) - Next fire up your pfSense 2.5.0 router. WinSCP ( scp protocol ) into your 2.5.0 router and transfer ( drag and drop ) the pfSense-pkg-wireguard-1.0.1.txz from the local directory you exported it to earlier ( in this case on my Windows 10 machine ) into the /root directory of your pfSense 2.5.0 router. 10 - From here you are home free: Follow the instructions which are common to all pfSense Lucasnz, Ascrod or Ashus wireguard packages packages see below : 1. pkg add https://pkg.freebsd.org/FreeBSD:12:amd64/latest/All/bash-5.0.17.txz 2. (opt.) pkg add https://pkg.freebsd.org/FreeBSD:12:amd64/latest/All/bash-completion-2.10,2.txz 3. pkg add https://pkg.freebsd.org/FreeBSD:12:amd64/latest/All/wireguard-go-0.0.20200320.txz 4. pkg add https://pkg.freebsd.org/FreeBSD:12:amd64/latest/All/wireguard-1.0.20200513.txz 5. pkg add pfSense-pkg-wireguard-1.0.1.txz ( Use / substitute your own compiled package here ) You are now finished and ready to configure WireGuard. Read the thread here : https://forum.netgate.com/topic/150943/i-made-a-wireguard-package-for-pfsense Once again - if you want an already completed package see here for download : https://drive.google.com/file/d/1SaggDk6-1BOwcSa4-498jQfGZICqqvsb/view?usp=sharing This tutorial is here for download : https://drive.google.com/file/d/1b8coPZvqmhisHpoFBfOBV9BYaH917yaC/view?usp=sharing Peace - God Bless and Stay Safe