Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    WireGuard site-to-site pfsense-to-pfsense no handshake?

    Scheduled Pinned Locked Moved WireGuard
    42 Posts 7 Posters 11.0k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • cmcdonaldC
      cmcdonald Netgate Developer @Jimbohello
      last edited by

      Updated documentation is something we are working on

      Need help fast? https://www.netgate.com/support

      1 Reply Last reply Reply Quote 2
      • M
        Mikki-10
        last edited by Mikki-10

        @yazur I will try to do my best to sum it up :)

        • Create a tunnel, on Site 1 and Site 2, eg change the port number if you do not like the default value, generate the keys for the site, it follows the setup as below.
        • Assign the interface (eg tun_wg0) and set a static IP, this is the tunnel network, set the MTU to 1420, see settings below, i use the subnet 192.168.77.0/24 in this exampel.
        • Set a firewall rule (UDP) to allow traffic on the WAN interface to the Wireguard tunnel port. (eg UDP port 51820 to WAN address on the WAN interface) (And no it is not a NAT rule (Port forward))
        • Set the needed firewall rules for WireGuard and the WireGuard interface WG
        • Add the peers, on both sites, where the public key for the peer is the opposite sites public tunnel key. At least one of the peers shall have an endpoint, the opposite can be dynamic. So the site that have and public IP, can have its peers to be dynamic, we can call that site the server (the site with an public IP) and the other sites for clientes (those eg behind a CGNAT) if you like. Also add Allowed IPs here, you will need to add the LAN IP and the tunnel IP subnets
        • Add the gateway, with the opposite sites tunnel IP.
        • The gateway should come online at this point and the handshake should now be green-
        • Now set the need static route on both sites

        Tunnel - Site 1
        Tunnel: tun_wg0 (Site 1)
        Public key: PK1

        Peer - Site 1
        Tunnel: tun_wg0 (Site 1)
        Endpoint: Dynamic
        Public Key: PK2
        Allowed IPs: <LAN Subnet of Site 2>
        Allowed IPs: 192.168.77.0/24

        Interface - Site 1
        Description: WG
        IPv4: Static IPv4
        MTU: 1420
        IPv4 Address: 192.168.77.1/24

        Gateway- Site 1
        Interface: WG
        Name: WG_Gateway
        IPv4 Address: 192.168.77.2

        Tunnel - Site 2
        Tunnel: tun_wg0 (Site 2)
        Public key: PK2

        Peer - Site 2
        Tunnel: tun_wg0 (Site 2)
        Endpoint: <Public IP of Site 1>
        Public Key: PK1
        Allowed IPs: <LAN Subnet of Site 2>
        Allowed IPs: 192.168.77.0/24

        Interface - Site 2
        Description: WG
        IPv4: Static IPv4
        MTU: 1420
        IPv4 Address: 192.168.77.2/24

        Gateway- Site 2
        Interface: WG
        Name: WG_Gateway
        IPv4 Address: 192.168.77.1

        M B 2 Replies Last reply Reply Quote 0
        • M
          Mikki-10 @Mikki-10
          last edited by

          @mikki-10 said in WireGuard site-to-site pfsense-to-pfsense no handshake?:

          Peer - Site 2
          Tunnel: tun_wg0 (Site 2)
          Endpoint: <Public IP of Site 1>
          Public Key: PK1
          Allowed IPs: <LAN Subnet of Site 2>
          Allowed IPs: 192.168.77.0/24

          I made a small mistanke, and can not edit my post?
          Allowed IPs: <LAN Subnet of Site 2> should be <LAN Subnet of Site 1>

          Peer - Site 2
          Tunnel: tun_wg0 (Site 2)
          Endpoint: <Public IP of Site 1>
          Public Key: PK1
          Allowed IPs: <LAN Subnet of Site 1>
          Allowed IPs: 192.168.77.0/24

          J 1 Reply Last reply Reply Quote 0
          • J
            Jimbohello @Mikki-10
            last edited by

            @mikki-10

            wow your nice guys

            every thing was already said in all the post for a pfsense user to do their jobs !

            reposting all the procedure was kind of useless but friendly :)

            have a nice one bro

            1 Reply Last reply Reply Quote 0
            • Y
              Yazur
              last edited by

              @Mikki-10

              Thank you for this summary!
              I hope it helps other people too :)!

              1 Reply Last reply Reply Quote 0
              • B
                bassopt @Mikki-10
                last edited by

                @mikki-10

                That’s for the tutorial. I was following a German dude tutorial on YouTube and setting gateways for site 1 the site 1 ip and for site 2 the site 2 up. Result was losing handshake and pings after a few hours or randomly. Even with keep alive settings.

                For now I reverted back to IPSec for site to site vpn as is more stable and easy to setup. Manual creation of static routes and gateways it’s as bit of pain if you’re on relatively big environment.

                I know, I know… it’s experimental. Works great for mobile warriors though.

                1 Reply Last reply Reply Quote 0
                • B
                  bassopt
                  last edited by

                  This was working fine on version 0.1.3. Updated to 0.1.5 and now I cannot access any of my peers subnet defined in static routing. I can ping from pfsense but pinging from any address on the lan subnet doesn’t work. Site one can’t ping site 2 and vice versa.

                  T 1 Reply Last reply Reply Quote 0
                  • T
                    titansilber @bassopt
                    last edited by

                    With hybrid nat the automatic nat rules for the WG interface look like a hot mess, especially if you have multiple interfaces. Anyone have examples of what it should look like?

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      Mikki-10 @titansilber
                      last edited by

                      @titansilber

                      What is your goal with the Outbound NAT change? It is not required for site-to-site.

                      If the goal is to change all traffic to the interface ip you can do that by setting to roules:

                      Interface: WG interface
                      Source: 127.0.0.0/8
                      Source port: *
                      Destination: * or what you need
                      Destination port: *
                      NAT Address WG address
                      NAT port: *
                      Static port: false

                      Interface: WG interface
                      Source: <Your LAN ip
                      Source port: *
                      Destination: * or what you need
                      Destination port: *
                      NAT Address WG address
                      NAT port: *
                      Static port: false

                      Not sure if this is what you are looking for?

                      B 1 Reply Last reply Reply Quote 0
                      • B
                        bassopt @Mikki-10
                        last edited by

                        After much hair pulling I finally made this work and stable.

                        You need to specify / create and assign he gateway to the WG Interface when you create it else you'll have or sort of routing issues
                        You also need to create static routes to the gateway with the subnets you want to access on the other side of the tunnel.

                        Oh and the instructions above are wrong the Gateway ip needs to be the ip of tunnel on your side and not on the opposite side or it won't work.

                        Unfortunately then entire wireguard project seems to be quite secondary at this point for negate (they didn't even bothered updating the documents)... I know it's still experimental, but ok...
                        The developer is also never available never replies to anything in any of the platforms he mentions on his videos. He just ignores 99% of problems people are having (I hope they are not expecting us to start opening pointless stuff on redmi)

                        M 1 Reply Last reply Reply Quote 0
                        • M
                          Mikki-10 @bassopt
                          last edited by

                          @bassopt

                          Hi the use of the Gateway ip from the other side is not wrong, you do that with OpenVPN site to site as well when using layer 2 (TAP interface) and it give you the correct ping to the other side, and it helps keep the connection/session alive.

                          You do not need to do any NAT config if you follow the above.

                          Just remember to set the
                          MTU: 1420 and
                          MSS: 1420
                          That fix most problems.

                          1 Reply Last reply Reply Quote 0
                          • B
                            bbrendon
                            last edited by

                            there is also a bug here that causes no handshake.
                            https://forum.netgate.com/topic/167279/wireguard-won-t-handshake-package-bug?_=1634581891833

                            cmcdonaldC 1 Reply Last reply Reply Quote 0
                            • cmcdonaldC
                              cmcdonald Netgate Developer @bbrendon
                              last edited by

                              This bug should be resolved in the latest version (0.1.5_2 and above). This package is available CE 2.5.2/2.6.0 and Plus 21.05.2/22.01. Give it a shot :)

                              Need help fast? https://www.netgate.com/support

                              B 1 Reply Last reply Reply Quote 0
                              • B
                                bassopt @cmcdonald
                                last edited by

                                @cmcdonald I don’t see any 0.1.5_2 update on my end

                                cmcdonaldC 2 Replies Last reply Reply Quote 0
                                • cmcdonaldC
                                  cmcdonald Netgate Developer @bassopt
                                  last edited by

                                  @bassopt hmmm, will check the builds. Thanks for checking

                                  Need help fast? https://www.netgate.com/support

                                  1 Reply Last reply Reply Quote 0
                                  • cmcdonaldC
                                    cmcdonald Netgate Developer @bassopt
                                    last edited by

                                    @bassopt Take another peak now, updated package should be available.

                                    https://files01.netgate.com/pfSense_v2_5_2_amd64-pfSense_v2_5_2/All/pfSense-pkg-WireGuard-0.1.5_3.txz

                                    Need help fast? https://www.netgate.com/support

                                    1 Reply Last reply Reply Quote 1
                                    • First post
                                      Last post
                                    Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.