prefixkit Ask an engineerAsk RU

Port 21 FTP

FTP control connection. Logins and files travel unencrypted.

Protocol
TCP
Service
FTP
Category
File sharing
Exposing to the internet
Do not expose

Check if port 21 is open

Is it safe to open

File-sharing protocols are not designed for the internet: they leak data and spread ransomware. Keep them inside the LAN and give remote users a VPN or an HTTPS-based service instead.

How to open port 21

Open to everyone

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

Only for your addresses

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

Related ports