21 FTP controlFile Transfer Protocol command/control channel.
Cleartext credentials — restrict tightly or replace with SFTP (22).
| Transport | Status | Meaning |
|---|---|---|
| TCP | Yes | Assigned by IANA and standardized, specified, or widely used on this port. |
| UDP | Assigned | Assigned by IANA, but not standardized, specified, or widely used on this port. |
| SCTP | Yes | Assigned by IANA and standardized, specified, or widely used on this port. |
| DCCP | — | Not applicable for this transport. |
Well-known (0–1023). System port for a core service. On Unix-like systems, binding it requires superuser privileges.
Browse all ports →
Copy-ready inbound rules for the active transports. Replace every <source> placeholder with the specific host, subnet, or CIDR that should reach this port.
sudo ufw allow proto tcp from <source> to any port 21
Allow TCP 21 (FTP control). Replace <source> with the network/host that should reach it.
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="<source>" port port="21" protocol="tcp" accept'
Allow TCP 21 (FTP control) from <source>. Run 'firewall-cmd --reload' afterwards.
nft add rule inet filter input ip saddr <source> tcp dport 21 accept
Allow TCP 21 (FTP control). Assumes table 'inet filter' with an 'input' chain.
sudo iptables -A INPUT -p tcp -s <source> --dport 21 -j ACCEPT
Allow TCP 21 (FTP control). Persist with iptables-save/netfilter-persistent.
az network nsg rule create -g <resource-group> --nsg-name <nsg> -n Allow-ftpcontrol-21 --priority 1000 --access Allow --direction Inbound --protocol TCP --source-address-prefixes <source> --destination-port-ranges 21
Inbound rule for 21 (FTP control). Set <source> to a CIDR; lower priority number = higher precedence.
aws ec2 authorize-security-group-ingress --group-id <sg-id> --ip-permissions IpProtocol=tcp,FromPort=21,ToPort=21,IpRanges="[{CidrIp=<source-cidr>}]"
Inbound TCP 21 (FTP control). Replace <source-cidr> (e.g. 10.0.0.0/16).
gcloud compute firewall-rules create allow-ftpcontrol-21 --direction=INGRESS --action=ALLOW --rules=tcp:21 --source-ranges=<source-cidr> --network=<network>
Ingress rule for 21 (FTP control). Scope with --source-ranges and optionally --target-tags.
netsh advfirewall firewall add rule name="Allow FTP control 21/TCP" dir=in action=allow protocol=TCP localport=21 remoteip=<source>
Inbound TCP 21 (FTP control). Set remoteip to a host/subnet; 'any' is discouraged.
New-NetFirewallRule -DisplayName "Allow FTP control 21/TCP" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 21 -RemoteAddress <source>
Inbound TCP 21 (FTP control). Replace <source> with a host or subnet.
Rules are generated only for transports marked active for this port. They default to an inbound allow with an explicit source placeholder — never any. Review direction, scope, and rule precedence before applying in production.