Spyke

Syndicated from the fediverse. Read and engage on the original instance.

View original on lemmy.ca
selfhosted·Selfhostedbyhackysphere

Is it feasible to run a TURN server behind NAT?

I am running a defederated local Matrix server, and I need to set up calls. From what I can tell, the "legacy" calls require a STUN and TURN server, and the new MatrixRTC standard seems to require them as well for Livekit to work. However, I do not want to expose anything out to the public internet, as I want everything to be behind NAT for local access only (all of the clients for the server will also be behind the NATted network). I also have Tailscale running on my servers, and it would be useful if I would be able to connect to the TURN server even when not in the network. Is there a way to get STUN/TURN to work in this situation? It seems that all the servers expect to have public network access.

View original on lemmy.ca
28

21 replies

lemmy.today

The turn server must be able to access other nodes on the Internet and vice versa unless operating exclusively within your local matrix server.

9

Oops, autocorrect seems to have messed up some of my words. All of the clients that connect to the servers are behind the same NATted network, and some are behind an additional level of NAT.

1
lemmy.ca

Unfortunately my ISP doesn't support IPv6 yet, both for the public internet and for my local network.

1

They only seem to support it for business customers for now, not for consumer usage.

1
lemmy.world

Seems like a very reasonable reason to switch to another isp well established in the 21st century

1

I live in a rural area, so my only options are dealing with a mobile hotspot for everything or getting satellite internet for more than double the price.

It's also not worth it for me to switch internet providers just to have calls on my Matrix server work

2
lemmy.world

What a lot of nonsense. Of course the technology exists and of course it can be done. But in reality is not done because it simply doesn't bring any benefit.

And in addition a address translation is not nat (tm) because the server can be hit from the outside.

Today in ipv4 we have likely 2 Nats, 1 after your router and the other by the carrier (cgnat) and ipv6 those are non existent

5
Aganimreply
lemmy.world

It was meant tongue-in-cheek, you seem to be taking it much more seriously than I intended it to be. 🙂

But in reality is not done because it simply doesn't bring any benefit.

Fully agree that there is absolutely no benefit to NAT66, it only causes enormous headaches. I sincerely hope nobody uses it these days, this poor bastard however did manage to find a VPS provider that used NAT66 back in 2018: https://blog.apnic.net/2018/02/02/nat66-good-bad-ugly/ 🤢

5
lemmy.world

Fuck, there is a law in internet (which name I cannot recall) about the impossibility of distinguish an ironic message.

I felt in that trap completely!!

4

Haha, don't worry, no harm done. Maybe I was a bit too subtle in hindsight.

That's Poe's Law by the way.

3

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I've seen in this thread:

Fewer LettersMore Letters
DNSDomain Name Service/System
IPInternet Protocol
NATNetwork Address Translation
VPNVirtual Private Network
VPSVirtual Private Server (opposed to shared hosting)

5 acronyms in this thread; the most compressed thread commented on today has 7 acronyms.

[Thread #96 for this comm, first seen 15th Feb 2026, 16:10] [FAQ] [Full list] [Contact] [Source code]

2

I'm not qualified enough to answer that, but..

I tried setting up calls and while STUN/TURN works in WAN, but not LAN, Element are supposed to be making a replacement that makes voice and video calls entirely E2EE, aka Livekit, which I've completely failed to get working. So far I've given up on improving my instance's features and stick to Element Classic. I hope you get it running well!

1

I'm in the same situation, I can do "legacy" calls almost without issues, but Livekit has constant issues connecting to TURN.

1

If you want a non-federating LAN-only Matrix server, then STUN/TURN can be behind the NAT. Since you have Tailscale, STUN/TURN can also expose itself on the Tailscale VPN too. Just configure proper DNS records per-interface and you should be fine.

Since calls are p2p, the purpose of STUN is to determine a client's (usually public) IP address, and TURN is to relay the connection if they can't connect directly (i.e. behind NAT). If your clients are on the same LAN/VPN with unrestrictive firewalls then you might not even need any STUN/TURN altogether.

1

What do you need STUN for? If anything you might want TURN but that is probably not needed everything is on the same network.

1

It's apparently needed for "legacy" and the new MatrixRTC calls on Matrix

1

You reached the end