prefixkit Ask an engineerAsk RU

Port 3478 STUN / TURN

NAT traversal for WebRTC, video calls and VoIP (STUN, TURN).

Protocol
TCP/UDP
Service
STUN / TURN
Exposing to the internet
Normal to expose

Check if port 3478 is open Check a SIP server

Is it safe to open

SIP and VoIP ports are scanned constantly by toll-fraud bots looking for weak extensions. Allow only your provider's IP addresses on the firewall where possible, use long SIP passwords, fail2ban, and disable SIP ALG on the router.

How to open port 3478

Open to everyone

# Linux iptables
iptables -A INPUT -p tcp --dport 3478 -j ACCEPT
iptables -A INPUT -p udp --dport 3478 -j ACCEPT
# Ubuntu ufw
ufw allow 3478/tcp
ufw allow 3478/udp
# firewalld
firewall-cmd --permanent --add-port=3478/tcp && firewall-cmd --reload
firewall-cmd --permanent --add-port=3478/udp && firewall-cmd --reload
# MikroTik
/ip firewall filter add chain=input protocol=tcp dst-port=3478 action=accept place-before=0 comment="port 3478"
/ip firewall filter add chain=input protocol=udp dst-port=3478 action=accept place-before=0 comment="port 3478"
# Windows (PowerShell)
New-NetFirewallRule -DisplayName "Port 3478 TCP" -Direction Inbound -Protocol TCP -LocalPort 3478 -Action Allow
New-NetFirewallRule -DisplayName "Port 3478 UDP" -Direction Inbound -Protocol UDP -LocalPort 3478 -Action Allow

Only for your addresses

# allow only one address or network (replace 203.0.113.0/24)
iptables -A INPUT -p tcp --dport 3478 -s 203.0.113.0/24 -j ACCEPT
iptables -A INPUT -p udp --dport 3478 -s 203.0.113.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 3478 -j DROP
iptables -A INPUT -p udp --dport 3478 -j DROP
ufw allow from 203.0.113.0/24 to any port 3478 proto tcp
ufw allow from 203.0.113.0/24 to any port 3478 proto udp
/ip firewall filter add chain=input protocol=tcp dst-port=3478 src-address=203.0.113.0/24 action=accept
/ip firewall filter add chain=input protocol=udp dst-port=3478 src-address=203.0.113.0/24 action=accept
/ip firewall filter add chain=input protocol=tcp dst-port=3478 action=drop
/ip firewall filter add chain=input protocol=udp dst-port=3478 action=drop

If the server is behind a router, you also need a port forward (dst-nat). Behind ISP CGNAT (100.64.0.0/10 on the WAN) forwarding will not help: you need a public IP or a VPN.

What is listening

Check on the server

# what listens on the port
ss -lntup | grep ':3478 '
netstat -ano | findstr :3478   # Windows
lsof -i :3478   # macOS
# test from another machine
nc -vz example.com 3478

Related ports