Mullvad Wireguard Installation - No handshake


Hello, I installed Openwrt on Pizero W and it all works, except my Mullvad wireguard . I tried many solutions, also many guides and instructions, but couldnt solve the problem. I also tried it on my RPI 3b+ with the same result. On my Pizero W with Raspap everything is fine. Also on my laptop, mobile and so on. Maybe someone can push me in the right direction or have some clues.
Thank you.


My data:

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd95:559d:b1da::/48'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'wlan0'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.1.111'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option gateway '192.168.1.1'
        list dns '1.1.1.1'

config device
        option name 'eth0'

config interface 'wan'
        option proto 'dhcp'
        option device 'eth0'

config interface 'wg0'
        option proto 'wireguard'
        option private_key 'YPavLJtPjxIZQ5uL5KyTOQ5C/kntDvNf4TP77L1o7FU='
        list addresses '10.72.60.174/32'
        list addresses 'fc00:bbbb:bbbb:bb01::9:3cad/128'
        list dns '100.64.0.63'
       

config wireguard_wg0
        option description 'de-fra-wg-004.conf'
        option public_key 'tzYLWgBdwrbbBCXYHRSoYIho4dHtrm+8bdONU1I8xzc='
        list allowed_ips '0.0.0.0/0'
        list allowed_ips '::0/0'
        option endpoint_host '185.209.196.74'
        option endpoint_port '51820'
        option route_allowed_ips '1'

cat /etc/config/firewall

config defaults
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option synflood_protect '1'

config zone
        option name 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        list network 'lan'

config zone
        option name 'wan'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'
        list network 'wan'
        list network 'wan6'

config forwarding
        option src 'lan'
        option dest 'wan'

config rule
        option name 'Allow-DHCP-Renew'
        option src 'wan'
        option proto 'udp'
        option dest_port '68'
        option target 'ACCEPT'
        option family 'ipv4'

config rule
        option name 'Allow-Ping'
        option src 'wan'
        option proto 'icmp'
        option icmp_type 'echo-request'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option name 'Allow-IGMP'
        option src 'wan'
        option proto 'igmp'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option name 'Allow-DHCPv6'
        option src 'wan'
        option proto 'udp'
        option dest_port '546'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-MLD'
        option src 'wan'
        option proto 'icmp'
        option src_ip 'fe80::/10'
        list icmp_type '130/0'
        list icmp_type '131/0'
        list icmp_type '132/0'
        list icmp_type '143/0'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-ICMPv6-Input'
        option src 'wan'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        list icmp_type 'router-solicitation'
        list icmp_type 'neighbour-solicitation'
        list icmp_type 'router-advertisement'
        list icmp_type 'neighbour-advertisement'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-ICMPv6-Forward'
        option src 'wan'
        option dest '*'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-IPSec-ESP'
        option src 'wan'
        option dest 'lan'
        option proto 'esp'
        option target 'ACCEPT'

config rule
        option name 'Allow-ISAKMP'
        option src 'wan'
        option dest 'lan'
        option dest_port '500'
        option proto 'udp'
        option target 'ACCEPT'

config zone
        option name 'vpn'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        list network 'wg0'

config forwarding
        option src 'lan'
        option dest 'vpn'

type or paste code here

It looks like this router is not set up in gateway mode with its WAN connected to the internet?

Anyway you have to enable Masquerading on the VPN firewall zone.

But if this is setup on a Bridged (aka Dumb) AP then normal traffic bypasses this router so will not use the VPN.


Hello, thank you for replying. Alos with Masquerading didnt work. My intention was build up a AP like Raspap. So we can use more connection than five, which Mullvad support. I use before Openwrt, but never as AP. At the attachment i have my RPI 3b+ data.`

type or paste code here
config defaults
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option synflood_protect '1'

config zone
        option name 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        list network 'lan'

config zone
        option name 'wan'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'
        list network 'wan'


config rule
option name 'Allow-DHCP-Renew'
option src 'wan'

        option proto 'udp'
        option dest_port '68'
        option target 'ACCEPT'
        option family 'ipv4'

config rule
        option name 'Allow-Ping'
        option src 'wan'
        option proto 'icmp'
        option icmp_type 'echo-request'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option name 'Allow-IGMP'
        option src 'wan'
        option proto 'igmp'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option name 'Allow-DHCPv6'
        option src 'wan'
        option proto 'udp'
        option dest_port '546'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-MLD'
        option src 'wan'
        option proto 'icmp'
        option src_ip 'fe80::/10'
        list icmp_type '130/0'
        list icmp_type '131/0'
        list icmp_type '132/0'
        list icmp_type '143/0'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-ICMPv6-Input'
        option src 'wan'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        list icmp_type 'router-solicitation'
        list icmp_type 'neighbour-solicitation'
        list icmp_type 'router-advertisement'
        list icmp_type 'neighbour-advertisement'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-ICMPv6-Forward'
        option src 'wan'
        option dest '*'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-IPSec-ESP'
        option src 'wan'
        option dest 'lan'
        option proto 'esp'
        option target 'ACCEPT'

config rule
        option name 'Allow-ISAKMP'
        option src 'wan'
        option dest 'lan'
        option dest_port '500'
        option proto 'udp'
        option target 'ACCEPT'

config zone
        option name 'vpn'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'
        list network 'wg0'

config forwarding
        option src 'lan'
        option dest 'vpn'

config rule
        option name 'Wireguard'
        option src 'wan'
        option src_port '51820'
        option dest 'vpn'
        option target 'ACCEPT'

root@OpenWrt:~# cat "/etc/config/network"

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd84:a7c0:840b::/48'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'eth0'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.1.11'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option gateway '192.168.1.1'
        list dns '1.1.1.1'

config interface 'wan'
        option proto 'dhcp'
        option device 'eth0'
        option peerdns '0'
        list dns '1.1.1.1'

config interface 'wg0'
        option proto 'wireguard'
        option private_key 'YP2q7+mT9eNe7itcQjO4Co7UJvTAYXX2WcgY8ZKpRmg='
        list dns '100.64.0.63'
        list addresses '10.71.176.161/32'
        list addresses 'fc00:bbbb:bbbb:bb01::8:b0a0/128'

config wireguard_wg0
        option description 'de-fra-wg-008.conf'
        option public_key 'TOS3U/dJPzPnk/qsAx6gHxRVIC2wI5l+tAWaJY2mXzY='
        list allowed_ips '0.0.0.0/0'
        list allowed_ips '::0/0'
        option endpoint_host '185.209.196.78'
        option endpoint_port '51820'
        option route_allowed_ips '1'
````Preformatted text`
````Preformatted text`

Enable masquerading on the lan firewall zone.

i did, but same result. Anyway very fast help in this Forum. :blush:

After you reboot the router let us see the output of wg show, redact the keys etc

root@OpenWrt:~# wg show all
interface: wg0
public key: redact=
private key: (hidden)
listening port: 43934

peer: redact=
endpoint: 185.209.196.78:51820
allowed ips: 0.0.0.0/0, ::/0
transfer: 0 B received, 1.73 KiB sent

That is not good, it points to network problem or wrong keys etc.

Are you sure you have a network connection from this router, if not disable WG , reboot the router, SSH into the router and do a simple ping test : ping 8.8.8.8

Make sure the router has the correct time

Make sure this WG config is indeed working by testing the same config from another device (e.g. phone)

Thank you for replying. I already disabled the wireguard interface and could ping 1.1.1.1, or 9.9.9.9. I also restart my Mainrouter.Check the keys and generate new keys. Than switch the Mullvad connection to other countries, also check with my Raspap Pizero if this possible to connect. Many many other tests, but cant find the problem. Do you have any idea, or maybe some working guides. I tried many of the, also in Youtube. Not one of them solve it.

Does your Pi shows the correct time?

I do not have a Pi but as far as I know it only has one radio and one ethernet port.

How are you connected to the main router?

The main routers IP is 192.168.1.1?

Wireguard uses the public key to identify a peer. Keys that were issued to you by the service can't be configured into multiple devices unless you are sure that only one will ever be online at the same time.

Setting a persistent_keepalive will cause Wireguard to attempt to negotiate a handshake immediately instead of waiting until there is an attempt to send traffic through the tunnel. This is recommended for troubleshooting. This will also allow you to see connection attempts with tcpdump.

It is not necessary to add an allow incoming port rule to the firewall for this use case, since your Wireguard is only making outgoing connections.

2 Likes
The time is my local time, means is correct, the main route has the ip 192.168.1.1, so my Raspberry is bridges with network cable and has the br-lan ip 192.168.1.111. 

config wifi-device 'radio0'
	option type 'mac80211'
	option path 'platform/soc/3f300000.mmcnr/mmc_host/mmc1/mmc1:0001/mmc1:0001:1'
	option channel '36'
	option band '5g'
	option htmode 'VHT80'
	option cell_density '0'

config wifi-iface 'wifinet0'
	option device 'radio0'
	option mode 'ap'
	option ssid 'Openwrt-Spot-5G'
	option encryption 'psk2'
	option isolate '1'
	option key 'XXXXXXX'
	option wpa_disable_eapol_key_retries '1'

I know with Mullvad vpn you can use five single devices, but its not a problem to share a single connection, like Raspap.

As said I do not have an Rpi so just speculating.

But can you confirm you are using the ethernet port to connect to the upstream router?

If so should your interfaces not reflect that and should eth0 not be part of br-lan as we are talking about a dumb AP setup?

i change the ip for test reasons, but same result. Anyway maybe i install it again from the scratch with another version and also with a squash and snapshot version and come back then.

Let’s see the latest complete config:

Please connect to your OpenWrt device using ssh and copy the output of the following commands and post it here using the "Preformatted text </> " button:
grafik
Remember to redact passwords, MAC addresses and any public IP addresses you may have:

ubus call system board
cat /etc/config/network
cat /etc/config/wireless
cat /etc/config/dhcp
cat /etc/config/firewall

Thank you helping me.

I have 2 Pizero W. One with Openwrt and the other with Raspap. Both with Mullvad VPN. Raspap VPN work fine, but Openwrt not. The Openwrt installation is standart and include wireguard and curl. No any kind of add on software or modification.

I also send an Ping to 1.1.1.1 with disabled and enabled Wireguard VPN.

Tha Hardware adresses below is modificated, but should shown the connections.

Thank you.

root@OpenWrt:~# ubus call system board
{
        "kernel": "5.15.162",
        "hostname": "OpenWrt",
        "system": "ARMv6-compatible processor rev 7 (v6l)",
        "model": "Raspberry Pi Zero W Rev 1.1",
        "board_name": "raspberrypi,model-zero-w",
        "rootfs_type": "ext4",
        "release": {
                "distribution": "OpenWrt",
                "version": "23.05.4",
                "revision": "r24012-d8dd03c46f",
                "target": "bcm27xx/bcm2708",
                "description": "OpenWrt 23.05.4 r24012-d8dd03c46f"
        }
}
root@OpenWrt:~# cat /etc/config/network

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd95:559d:b1da::/48'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'wlan0'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.1.111'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option gateway '192.168.1.1'
        list dns '1.1.1.1'

config device
        option name 'eth0'

config interface 'wan'
        option proto 'dhcp'
        option device 'eth0'

config interface 'wg0'
        option proto 'wireguard'
        option private_key 'redact='
        list addresses '10.72.60.174/32'
        list addresses 'fc00:bbbb:bbbb:bb01::9:3cad/128'
        list dns '100.64.0.63'
        option disabled '1'

config wireguard_wg0
        option description 'de-fra-wg-004.conf'
        option public_key 'redact='
        list allowed_ips '0.0.0.0/0'
        list allowed_ips '::0/0'
        option endpoint_host '185.209.196.74'
        option endpoint_port '51820'
        option route_allowed_ips '1'

root@OpenWrt:~# cat /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'platform/soc/20300000.mmcnr/mmc_host/mmc1/mmc1:0001/mmc1:0001:1'
        option channel '1'
        option band '2g'
        option htmode 'HT20'
        option country 'CN'
        option cell_density '0'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'Openwrt-Pizero'
        option encryption 'psk2'
        option key 'redact'

config wifi-iface 'wifinet3'
        option device 'radio0'
        option mode 'sta'
        option ssid 'redact'
        option encryption 'psk2'
        option key 'redact'
        option network 'wan'

root@OpenWrt:~# cat /etc/config/dhcp

config dnsmasq
        option domainneeded '1'
        option boguspriv '1'
        option filterwin2k '0'
        option localise_queries '1'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/lan/'
        option domain 'lan'
        option expandhosts '1'
        option nonegcache '0'
        option cachesize '1000'
        option authoritative '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
        option nonwildcard '1'
        option localservice '1'
        option ednspacket_max '1232'
        option filter_aaaa '0'
        option filter_a '0'

config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option dhcpv4 'server'
        option dhcpv6 'server'
        option ra 'server'
        list ra_flags 'managed-config'
        list ra_flags 'other-config'

config dhcp 'wan'
        option interface 'wan'
        option ignore '1'

config odhcpd 'odhcpd'
        option maindhcp '0'
        option leasefile '/tmp/hosts/odhcpd'
        option leasetrigger '/usr/sbin/odhcpd-update'
        option loglevel '4'

root@OpenWrt:~# cat /etc/config/firewall

config defaults
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option synflood_protect '1'

config zone
        option name 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        list network 'lan'

config zone
        option name 'wan'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'
        list network 'wan'
        list network 'wan6'

config forwarding
        option src 'lan'
        option dest 'wan'

config rule
        option name 'Allow-DHCP-Renew'
        option src 'wan'
        option proto 'udp'
        option dest_port '68'
        option target 'ACCEPT'
        option family 'ipv4'

config rule
        option name 'Allow-Ping'
        option src 'wan'
        option proto 'icmp'
        option icmp_type 'echo-request'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option name 'Allow-IGMP'
        option src 'wan'
        option proto 'igmp'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option name 'Allow-DHCPv6'
        option src 'wan'
        option proto 'udp'
        option dest_port '546'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-MLD'
        option src 'wan'
        option proto 'icmp'
        option src_ip 'fe80::/10'
        list icmp_type '130/0'
        list icmp_type '131/0'
        list icmp_type '132/0'
        list icmp_type '143/0'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-ICMPv6-Input'
        option src 'wan'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        list icmp_type 'router-solicitation'
        list icmp_type 'neighbour-solicitation'
        list icmp_type 'router-advertisement'
        list icmp_type 'neighbour-advertisement'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-ICMPv6-Forward'
        option src 'wan'
        option dest '*'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-IPSec-ESP'
        option src 'wan'
        option dest 'lan'
        option proto 'esp'
        option target 'ACCEPT'

config rule
        option name 'Allow-ISAKMP'
        option src 'wan'
        option dest 'lan'
        option dest_port '500'
        option proto 'udp'
        option target 'ACCEPT'

config zone
        option name 'vpn'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        list network 'wg0'
        option masq '1'

config forwarding
        option src 'lan'
        option dest 'vpn'

root@OpenWrt:~# ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1): 56 data bytes
64 bytes from 1.1.1.1: seq=0 ttl=51 time=274.998 ms
64 bytes from 1.1.1.1: seq=1 ttl=51 time=274.976 ms
64 bytes from 1.1.1.1: seq=2 ttl=51 time=274.921 ms
64 bytes from 1.1.1.1: seq=3 ttl=51 time=274.958 ms
64 bytes from 1.1.1.1: seq=4 ttl=51 time=274.963 ms
64 bytes from 1.1.1.1: seq=5 ttl=51 time=274.966 ms
64 bytes from 1.1.1.1: seq=6 ttl=51 time=274.968 ms
^C
--- 1.1.1.1 ping statistics ---
7 packets transmitted, 7 packets received, 0% packet loss
round-trip min/avg/max = 274.921/274.964/274.998 ms

root@OpenWrt:~# ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1): 56 data bytes
^C
--- 1.1.1.1 ping statistics ---
76 packets transmitted, 0 packets received, 100% packet loss
root@OpenWrt:~#
root@OpenWrt:~#
root@OpenWrt:~# ifconfig
br-lan    Link encap:Ethernet  HWaddr BA:27:EB:F2:6A:55
          inet addr:192.168.1.111  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::b827:ebff:fef2:6a25/64 Scope:Link
          inet6 addr: fd95:559d:b1da::1/60 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6061 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8785 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:825808 (806.4 KiB)  TX bytes:2356639 (2.2 MiB)

eth0      Link encap:Ethernet  HWaddr 00:E0:4C:36:17:0E
          inet addr:192.168.1.5  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::2e0:4cff:fe36:17ee/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:277750 errors:0 dropped:243934 overruns:0 frame:0
          TX packets:3272 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:13449289 (12.8 MiB)  TX bytes:546203 (533.4 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:314 errors:0 dropped:0 overruns:0 frame:0
          TX packets:314 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:28568 (27.8 KiB)  TX bytes:28568 (27.8 KiB)

phy0-ap0  Link encap:Ethernet  HWaddr BA:27:EB:F2:6A:55
          inet6 addr: fe80::b827:ebff:fef2:6a25/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6061 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9368 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:825808 (806.4 KiB)  TX bytes:2495995 (2.3 MiB)

wg0       Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:10.72.60.174  P-t-P:10.72.60.174  Mask:255.255.255.255
          inet6 addr: fc00:bbbb:bbbb:bb01::9:3cad/128 Scope:Global
          UP POINTOPOINT RUNNING NOARP  MTU:1420  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:19 errors:0 dropped:126 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:2812 (2.7 KiB)

Alternatively if you do not want all traffic going there, you can just use the socks where you need. That is usually the better setup if you just want to access content from some sites instead of routing everything trhu the slow mullvad pipe.

They allow Mullvad in China?

Can you ping the DE server address?

DPI (Deep Packet Inspection) may be blocking you. We have to trust you setup the keys correctly.

I just researched the other day handshake packets differ in thier quality markings. Maybe it can be altered by the firewall to test?

@dave14305 @trendy Ideas?

All handshake packets have a DSCP value of 0x88 (AF41), so that these packets are the least likely to be dropped

~From https://www.wireguard.com/protocol/

Dear Friends,

thanks again to helping me. Yes im in China. Of course Mullvad blocked, but the VPN works fine. I use it a long while.

As I mentioned before. Today installed my RPI 3b+ new with Openwrt 23.05.0, without any updates. Just with wireguard software. Then installed like before Mullvad configs, but again no VPN. I have another Server at blu1 with Ubuntu-Server on it, so i installed there Wireguard-Server, generate the key and config with it the RPI and i got the VPN connection. So the problem seems to be with the Mullvad VPN, but what its not to be understand, i used Mullvad-VPN keys with Raspap and i also got the Mullvad VPN working.

Here the data:

@OpenWrt:~# wg show
interface: wg root0
  public key: redact=
  private key: (hidden)
  listening port: 40215

peer: redact=
  preshared key: (hidden)
  endpoint: 178.254.45.XXX:53438
  allowed ips: 0.0.0.0/0, ::/0
  latest handshake: 1 minute, 23 seconds ago
  transfer: 348 B received, 516 B sent
root@OpenWrt:~#
root@OpenWrt:~#
root@OpenWrt:~#
root@OpenWrt:~# ubus call system board
{
        "kernel": "5.15.134",
        "hostname": "OpenWrt",
        "system": "ARMv8 Processor rev 4",
        "model": "Raspberry Pi 3 Model B Plus Rev 1.3",
        "board_name": "raspberrypi,3-model-b-plus",
        "rootfs_type": "ext4",
        "release": {
                "distribution": "OpenWrt",
                "version": "23.05.0",
                "revision": "r23497-6637af95aa",
                "target": "bcm27xx/bcm2710",
                "description": "OpenWrt 23.05.0 r23497-6637af95aa"
        }
}
root@OpenWrt:~# cat /etc/config/network

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fdc8:355a:2f12::/48'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'eth0'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.1.31'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option gateway '192.168.1.1'
        list dns '1.1.1.1'

config interface 'wan'
        option proto 'dhcp'
        option device 'eth0'

config interface 'wg0'
        option proto 'wireguard'
        option private_key 'redact='
        list addresses '10.66.66.2/32'
        list addresses 'fd42:42:42::2/128'
        list dns '1.1.1.1'
        list dns '1.0.0.1'

config wireguard_wg0
        option description 'wg0-client-rpi.conf'
        option public_key 'redact='
        option preshared_key 'redact='
        list allowed_ips '0.0.0.0/0'
        list allowed_ips '::/0'
        option endpoint_host '178.254.45.XXX'
        option endpoint_port '53438'
        option route_allowed_ips '1'

root@OpenWrt:~# cat /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'platform/soc/3f300000.mmcnr/mmc_host/mmc1/mmc1:0001/mmc1:0001:1'
        option channel '36'
        option band '5g'
        option htmode 'VHT40'
        option cell_density '0'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option mode 'ap'
        option ssid 'OpenWrt'
        option encryption 'none'
        option network 'wan'

root@OpenWrt:~# cat /etc/config/dhcp

config dnsmasq
        option domainneeded '1'
        option boguspriv '1'
        option filterwin2k '0'
        option localise_queries '1'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/lan/'
        option domain 'lan'
        option expandhosts '1'
        option nonegcache '0'
        option cachesize '1000'
        option authoritative '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
        option nonwildcard '1'
        option localservice '1'
        option ednspacket_max '1232'
        option filter_aaaa '0'
        option filter_a '0'

config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option dhcpv4 'server'
        option dhcpv6 'server'
        option ra 'server'
        list ra_flags 'managed-config'
        list ra_flags 'other-config'
        option ignore '1'

config dhcp 'wan'
        option interface 'wan'
        option ignore '1'

config odhcpd 'odhcpd'
        option maindhcp '0'
        option leasefile '/tmp/hosts/odhcpd'
        option leasetrigger '/usr/sbin/odhcpd-update'
        option loglevel '4'

root@OpenWrt:~# cat /etc/config/firewall

config defaults
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        option synflood_protect '1'
        option flow_offloading '1'

config zone
        option name 'lan'
        list network 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'

config zone
        option name 'wan'
        list network 'wan'
        list network 'wan6'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'

config forwarding
        option src 'lan'
        option dest 'wan'

config rule
        option name 'Allow-DHCP-Renew'
        option src 'wan'
        option proto 'udp'
        option dest_port '68'
        option target 'ACCEPT'
        option family 'ipv4'

config rule
        option name 'Allow-Ping'
        option src 'wan'
        option proto 'icmp'
        option icmp_type 'echo-request'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option name 'Allow-IGMP'
        option src 'wan'
        option proto 'igmp'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option name 'Allow-DHCPv6'
        option src 'wan'
        option proto 'udp'
        option dest_port '546'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-MLD'
        option src 'wan'
        option proto 'icmp'
        option src_ip 'fe80::/10'
        list icmp_type '130/0'
        list icmp_type '131/0'
        list icmp_type '132/0'
        list icmp_type '143/0'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-ICMPv6-Input'
        option src 'wan'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        list icmp_type 'router-solicitation'
        list icmp_type 'neighbour-solicitation'
        list icmp_type 'router-advertisement'
        list icmp_type 'neighbour-advertisement'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-ICMPv6-Forward'
        option src 'wan'
        option dest '*'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-IPSec-ESP'
        option src 'wan'
        option dest 'lan'
        option proto 'esp'
        option target 'ACCEPT'

config rule
        option name 'Allow-ISAKMP'
        option src 'wan'
        option dest 'lan'
        option dest_port '500'
        option proto 'udp'
        option target 'ACCEPT'

config zone
        option name 'vpn'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        list network 'wg0'
        option masq '1'

config forwarding
        option src 'lan'
        option dest 'vpn'



root@OpenWrt:~# wg show
interface: wg0
  public key redact=
  private key: (hidden)
  listening port: 40215

peer: redact=
  preshared key: (hidden)
  endpoint: 178.254.45.XXX:53438
  allowed ips: 0.0.0.0/0, ::/0
  latest handshake: 2 minutes, 31 seconds ago
  transfer: 2.79 KiB received, 3.60 KiB sent
root@OpenWrt:~#