jonnyhyman / ResolveCollaboration

Streamlining and Extending DaVinci Resolve's Live Collaboration
GNU General Public License v3.0
35 stars 4 forks source link

Resolve Error: Cannot Enable Collaboration | Clients can't see each other via Wireguard #32

Open DesertCookie opened 3 years ago

DesertCookie commented 3 years ago

My friend and I get this error by DVR (DaVinci Resolve) when connecting to a project:

One person can connect to a project without any issues but the second person will get this error. Has BMD made some changes to DVR and now it's not fooled by the VPN approach anymore?

What we've set up:

Our systems:

Media is stored locally on both of our machines and made to have the same path. Everything is live-synced via NextCloud.

server_log.txt

jonnyhyman commented 3 years ago

Thanks for your in-depth issue post!

A bit disconcerting indeed... I honestly haven't used Collaboration for a few months but I will give this a test and see if I can replicate it.

I think if BMD was trying to crack down on this, they probably would have decreased the communication timeout threshold that causes the error to show up.

What kind of latencies (pings) are you getting between machines? ie. how many milliseconds delay are you getting on the Server GUI between machines?

DesertCookie commented 2 years ago

What kind of latencies (pings) are you getting between machines? ie. how many milliseconds delay are you getting on the Server GUI between machines?

Using ping <IP> we got the following results:

We don't seem to be able to connect to one another. Maybe there's something wrong with our Wireguard config that only allows us to connect to the server but prevents the individual clients from seeing each other?

[Interface]
Address = 9.0.0.2/32
PrivateKey = REDUCTED
DNS = 1.1.1.1, 8.8.8.8, 2001:4860:4860::8888

[Peer]
PublicKey = REDUCTED
Endpoint = MY.DOMAIN:51820
AllowedIPs = 9.0.0.0/24
PersistentKeepalive = 25
DesertCookie commented 2 years ago

I need to add that I manually edited the wireguard config to add 9.0.0.0/24 to AllowedIPs as, even though the server was configured to supply configs that only route DVR traffic, it tried to route all traffic through the VPN which meant the internet was not working anymore for anyone running the tunnel.

DesertCookie commented 2 years ago

I've done some talking to people from Wireguard. They pointed towards a routing table problem that causes the clients to not be able to see each other and only the server. They recommended using route on Windows to add a route manually like this: route -p add CLIENT_IP mask SUBNET_MASK GATEWAY_IP (where the RMC Wireguard server would be the gateway).

Sadly, I've not gotten this to work. I will report back on the progress and contribute a solution if ever found.

DesertCookie commented 2 years ago

While not having solved this problem , I found a VPN that reliably works - even behind Proxies, NATs, Firewalls, etc. (according to their own marketing, and considering it does work in my case while all other VPNs don't I believe them).

Tailscale is very easy to set up: Download it on both computers and log in with your account (it's free to use as long as you use one account on all devices). Tailscale will run in the taskbar and you are able to easily copy a client's IP from there or the web interface. It works like a charm for the DaVinci Resolve Project server.

Whiskersofsteel commented 5 months ago

While not having solved this problem , I found a VPN that reliably works - even behind Proxies, NATs, Firewalls, etc. (according to their own marketing, and considering it does work in my case while all other VPNs don't I believe them).

Tailscale is very easy to set up: Download it on both computers and log in with your account (it's free to use as long as you use one account on all devices). Tailscale will run in the taskbar and you are able to easily copy a client's IP from there or the web interface. It works like a charm for the DaVinci Resolve Project server.

This is the way I've been connecting our PC's, however, I cannot seem to enable multi-user collaboration. I get the following error when opening a project another user is currently inside: "Please ensure that the machines are not connected using a VPN and that DaVinci Resolve is not being blocked by the system firewall."

Is there any way around this?

DesertCookie commented 5 months ago

Is there any way around this?

There used to be a post on the forums about this, but it seems to have been deleted.

I wrote a guide a while back for some friends. Here it is (translated by GPT-4):

Set Windows network to private (required for enabling DVR Collaboration):
 1. Open PowerShell with administrative rights.
 2. Enter the command "Get-NetConnectionProfile".
 3. If not all networks are set to private, set each one to private using the command "Set-NetConnectionProfile -InterfaceIndex 13 -NetworkCategory Private" (change "13" to the ID of your network).
 4. Done.

Caution: Setting a network to private disables certain Windows security features like blocking printer and file sharing. This is not a problem in your home network and trusted networks. However, in public places like airports, you should keep the network public!

You can check the connection as follows:
 1. Open CMD.
 2. Ping the project server with "ping 10.1.1.10" (replace the IP with your actual IP).
 3. Is the ping successful and the time stable (<100ms)? Perfect!

To check if Collaboration is working correctly (Error: "Resolve cannot enable Collaboration." Check if you are using a VPN...):
 1. Open Resolve and join a multi-user project.
 2. Have a second person try the same.
 3. Open PowerShell with administrative rights.
 4. Test the proper opening of all ports and the connection with "Test-NetConnection -ComputerName 192.168.1.151 -Port 50059" (replace "192.168.1.151" with the Wireguard IP of the other tester - the second person can read this in Wireguard).
 5. The test should report success with "TcpTestSucceeded: True". If not, the second user either has not loaded a multi-user project, their network (or yours) is not set to private, or you are not connected via Wireguard.