Hi Joost,
Late reply, sorry, busy period…
I am not using Roon over VPN since a while, thanks to the increased amount of home office, but have tried again a couple of days ago to check with the latest 1.8 updates and it still works.
I have placed the binaries of udp-proxy-2020 under /opt/udp-proxy-2020/udp-proxy-2020-current. The binaries are compiled from sources, as Aaron did not have a pre-compiled version for ARM at that time, but it should not matter.
The README file I put in that directory says:
From the server (iMac), the phone in the VPN must be reachable.
Try to ping it (i.e. ping 10.6.0.2). If not, add the route table with:
sudo route add -net 10.6.0.0/24 192.168.0.172
(where 192.168.0.172 is the IP of my RPi in my local network and 10.6.0.2 is the IP of my iPhone when in VPN).
Then I’ve created a service file for systemctl, just for convenience, so that I can treat udp-proxy-2020 as a system service. The file is called “udp-proxy-2020.service”, located in the same directory above (i.e., full path would be: /opt/udp-proxy-2020/udp-proxy-2020-current/udp-proxy-2020.service). This file contains:
[Unit]
Description=udp-proxy-2020 - Use Roon over VPN
Requires=network.target
After=network.target
[Service]
ExecStart=/opt/udp-proxy-2020/udp-proxy-2020-current/udp-proxy-2020 --port 9003 --interface eth0,wg0 --cachettl 500
Restart=on-abort
[Install]
WantedBy=multi-user.target
Note the arguments to the executable. They are exactly what you would use running it from command line, but I find the system service to be a cleaner way.
Then, in the systemd config directory I have added a link to the service file:
cd /etc/systemd/system
ln -s /opt/udp-proxy-2020/udp-proxy-2020-current/udp-proxy-2020.service .
Then, reload the systemctl daemon, so that it refreshes the list of available services:
systemctl daemon-reload
After that, you should see the service in the list of available ones:
root@rpi4:/etc/systemd/system# systemctl list-units |grep udp
udp-proxy-2020.service loaded active running udp-proxy-2020 - Use Roon over VPN
If it is not active yet, simply start it and check its status:
root@rpi4:/etc/systemd/system# systemctl start udp-proxy-2020.service
root@rpi4:/etc/systemd/system# systemctl status udp-proxy-2020.service
● udp-proxy-2020.service - udp-proxy-2020 - Use Roon over VPN
Loaded: loaded (/opt/udp-proxy-2020/udp-proxy-2020-current/udp-proxy-2020.service; linked;
Active: active (running) since Mon 2021-03-29 13:58:20 CEST; 1 day 23h ago
Main PID: 24727 (udp-proxy-2020)
Tasks: 13 (limit: 3281)
CGroup: /system.slice/udp-proxy-2020.service
└─24727 /opt/udp-proxy-2020/udp-proxy-2020-current/udp-proxy-2020 --port 9003 --int
Mar 29 13:58:20 rpi4 systemd[1]: Started udp-proxy-2020 - Use Roon over VPN.
And that’s it in my case.
When I connect to VPN (I guess you can do it, as you said that WireGuard works. I only had to open and redirect a port on the router for that), I open Roon client from the iPhone and it sees the core running on my iMac.
The client crashes sometimes when it starts. In this case, closing it completely and reopening it usually helps.
At the beginning, the iPhone as endpoint might not be seen. Usually it shows up after a little while.
Hope this helps.