Browsing this Thread:   1 Anonymous Users

Installing pfSense on KVM
Not too shy to talk
Not too shy to talk

See User information

We download the latest release of pfSense as a gzipped ISO, then extract it and pass it to virt-install to get the VM up and running. Interactive portions of setup are handled with a VNC viewer because the pfSense installer doesn't seem to be able to work with virt-install's native console redirection, at least not out of the box. I'd love a tip from anyone if it's possible to fix that somehow.


Find the latest release here.

Download the gzipped ISO from a mirror into a directory that KVM can access, then unzip it:

mkdir -p /opt/vm/pfSense
cd /opt/vm
curl -O ... .4.2-RELEASE-amd64.iso.gz
gunzip pfSense-CE-2.4.2-RELEASE-amd64.iso.gz

Now call virt-install to begin your installation.

  • The --network lines will show up in this order as your virtual nics.
virt-install \
--name pfSense \
--memory 1024 \
--noautoconsole \
--graphics vnc,listen= \
--disk /opt/vm/pfSense/disk0.qcow2,size=10,format=qcow2 \
--autostart \
--os-type unix \
--cdrom /opt/vm/pfSense-CE-2.4.2-RELEASE-amd64.iso \
--network bridge=brteam0.4094,model=virtio \
--network bridge=brteam0.10,model=virtio \

Allow the VNC server through the firewall:

firewall-cmd --add-service vnc-server --zone internal --permanent

Connect to your private IP on port 5900 with a vnc viewer app. Finish the installation.

Restart pfSense when it shuts down after installation

virsh start pfSense

Re-connect to it with VNC to finish interface assignment.


Add the EPEL repo if you don't have it already:

Install xmlstarlet:

sudo yum install -y xmlstarlet

Unbind the VNC server from the running VM:

virsh qemu-monitor-command pfSense --hmp change vnc none

And finally, remove the VNC Server from the VM config:

virsh dumpxml pfSense | xmlstarlet ed -d "domain/devices/graphics" > /tmp/pfSense.xml
virsh define /tmp/pfSense.xml
rm -f /tmp/pfSense.xml

Posted on: 2019/1/21 22:37


(2 themes)


Lost Password?
Register now!