prefixkit Ask an engineerAsk RU

Port 53 DNS

Domain name system. UDP for normal queries, TCP for large answers and zone transfers.

Protocol
TCP/UDP
Service
DNS
Exposing to the internet
Expose with care

Check if port 53 is open

Is it safe to open

Infrastructure services (DNS, NTP, DHCP, routing) should answer only the networks they serve. Open resolvers and time servers get abused for DDoS amplification.

How to open port 53

Open to everyone

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

Only for your addresses

# allow only one address or network (replace 203.0.113.0/24)
iptables -A INPUT -p tcp --dport 53 -s 203.0.113.0/24 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -s 203.0.113.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j DROP
iptables -A INPUT -p udp --dport 53 -j DROP
ufw allow from 203.0.113.0/24 to any port 53 proto tcp
ufw allow from 203.0.113.0/24 to any port 53 proto udp
/ip firewall filter add chain=input protocol=tcp dst-port=53 src-address=203.0.113.0/24 action=accept
/ip firewall filter add chain=input protocol=udp dst-port=53 src-address=203.0.113.0/24 action=accept
/ip firewall filter add chain=input protocol=tcp dst-port=53 action=drop
/ip firewall filter add chain=input protocol=udp dst-port=53 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 ':53 '
netstat -ano | findstr :53   # Windows
lsof -i :53   # macOS
# test from another machine
nc -vz example.com 53

Related ports