Search code examples
iosvpnwireguard

wireguard ios, route ip+net: sysctl: operation not supported


I try to run the wireguard project from https://git.zx2c4.com/wireguard-apple/about/ on my ios device. I have a problem, I can't make it to work, I keep getting the following error when I try to connect: [NET] route ip+net: sysctl: operation not supported

From my debugging, the error comes from wireguard-go library which can be found here: https://git.zx2c4.com/wireguard-go/

On a forum I found that from IOS 9 , sysctl is disabled. But why my build is not working, if I install wireguard from the AppStore is working.


Solution

  • The problem is the go version. With 1.13.3 is not working, but is working with 1.13.2. Go must be installed through brew because of:

    REAL_GOROOT := $(shell which 2>/dev/null)
    export GOROOT := $(BUILDDIR)/goroot
    $(GOROOT)/.prepared:    
       [ -n "$(REAL_GOROOT)" ]  
       mkdir -p "$(GOROOT)"     
       rsync -a --delete --exclude=pkg/obj/go-build "$(REAL_GOROOT)/" "$(GOROOT)/"  
       patch -p1 -f -N -r- -d "$(GOROOT)" < goruntime-boottime-over-monotonic.diff  
       touch "$@"
    

    On Homebrew version 1.13.3 does not exists anymore. You need to install an old formula from here: https://raw.githubusercontent.com/Homebrew/homebrew-core/407fa456e9d7f94716ee6a63f151b256ed664125/Formula/go.rb

    Update: They updated the code to work with go version 1.13.3, but it seems is not working for now.