20 FTP dataActive-mode FTP data transfer channel.
Open alongside 21 for active FTP. Prefer SFTP/FTPS for anything modern.
| 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 20
Allow TCP 20 (FTP data). 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="20" protocol="tcp" accept'
Allow TCP 20 (FTP data) from <source>. Run 'firewall-cmd --reload' afterwards.
nft add rule inet filter input ip saddr <source> tcp dport 20 accept
Allow TCP 20 (FTP data). Assumes table 'inet filter' with an 'input' chain.
sudo iptables -A INPUT -p tcp -s <source> --dport 20 -j ACCEPT
Allow TCP 20 (FTP data). Persist with iptables-save/netfilter-persistent.
az network nsg rule create -g <resource-group> --nsg-name <nsg> -n Allow-ftpdata-20 --priority 1000 --access Allow --direction Inbound --protocol TCP --source-address-prefixes <source> --destination-port-ranges 20
Inbound rule for 20 (FTP data). 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=20,ToPort=20,IpRanges="[{CidrIp=<source-cidr>}]"
Inbound TCP 20 (FTP data). Replace <source-cidr> (e.g. 10.0.0.0/16).
gcloud compute firewall-rules create allow-ftpdata-20 --direction=INGRESS --action=ALLOW --rules=tcp:20 --source-ranges=<source-cidr> --network=<network>
Ingress rule for 20 (FTP data). Scope with --source-ranges and optionally --target-tags.
netsh advfirewall firewall add rule name="Allow FTP data 20/TCP" dir=in action=allow protocol=TCP localport=20 remoteip=<source>
Inbound TCP 20 (FTP data). Set remoteip to a host/subnet; 'any' is discouraged.
New-NetFirewallRule -DisplayName "Allow FTP data 20/TCP" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 20 -RemoteAddress <source>
Inbound TCP 20 (FTP data). 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.