Can't connect router to android phone over EasyTether connection

I have my phone tethered to my router using EasyTether. I'm having some disconnection issues which seem to be fixed when I use a VPN (check the previous thread of mine). However, the VPN causes an extreme drop in performance and increases latency. So my next idea was to create a tunnel between the phone and the router.

I followed this guide: and hoped that would be enough to create a working tunnel, but that didn't succeed. I tried messing with some different settings, but none of them worked. I was never able to get a handshake between the router and the phone.

So that this point, I've concluded it's best to come to the forums and ask for help.

Does anyone know how to create a Wireguard connection between an OpenWRT router, and Wireguard running on my android phone which is tethered to the router?

The phone would be the "server" and the router be the "client". As opposed to the phone being the "client" and the router being the "server" which is what most of the guides I looked at were talking about. All this is just to tunnel all the traffic from the router and then end the tunnel at the phone and transmit the data to the internet. Then when the traffic comes back from the internet, it tunnels the traffic from the phone to the router, then transmits the data to the correct device.

Any thoughts on this?

I did some digging and ran the ifconfig through Termux on my Android phone.
It gave me the following 3 interfaces which had used the same amount of data as my router had:

rmnet_data0: flags=65<UP,RUNNING>  mtu 1440
        inet6 2607:fb90:b48b:3572:2c23:2b40:275a:aba3  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::a236:f110:d624:8e37  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)
        RX packets 85206  bytes 119475132 (113.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 48121  bytes 4778068 (4.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

rmnet_ipa0: flags=65<UP,RUNNING>  mtu 2000
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)
        RX packets 27650  bytes 120528364 (114.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 48195  bytes 4811864 (4.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

v4-rmnet_data0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1412
        inet  netmask  destination
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 500  (UNSPEC)
        RX packets 61330  bytes 116039827 (110.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 47339  bytes 3242050 (3.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

More specifically, I'm interested in the bottom inet interface. I tried the following settings with Wireguard but still got nowhere:


DNS servers:
Public Key: <router public key>
Allowed IPs:
Persistent Keepalive: 25s


Listen Port: 1234
IP Addresses:
Public Key <phone public key>
Allowed IPs:
Route Allowed IPs: Yes
Persistent keepalive: 25s

With those settings set, I'm still not getting any type of handshake on the router.

I have not used easytether but what I have read about it I don't think it works the way you think.

The easytether app running on the phone makes Internet requests through the existing protocol stack like any ordinary app(1). This is the critical functionality which circumvents carrier policies that limit "tethered" data usage(2) but not "native" usage by apps on the phone.

The app exports data packets received from the Internet using an internal secret protocol based on Android Debug. There isn't a conventional network interface between the app and the router.

The driver running on the router then creates a virtual conventional network interface for the kernel and presents the packets received via ADB to it.

  1. If a VPN client is active on the phone redirecting general Internet usage, it is in the stack below Easytether thus the Easytether Internet usage will go via VPN like every other app.
  2. If your mobile data subscription doesn't have such policies there isn't much reason to use Easytether.

Thanks for the reply.
You are correct, that EasyTether is using the pre-existing MTP protocol to transfer the packets between the router and the computer.

I can pull the IP address of the EasyTether interface, and so I'm assuming the connection from the router to the phone isn't where the problem is coming in. And what I'm concerned about, is that since it's just using the MTP, there's no way to actually get the IP address of the WireGuard instance running on the router from the phone. Therefor there would be no way to actually setup the connection.

Can anyone else confirm if this is a correct or false assumption?