Does SFTP use port 21 or port 22?
While TCP port 22 is the general right answer, this is dependent on the fact that SSH is configured to use the standard port and not an alternative port.
As SFTP runs as a subsystem of SSH it runs on whatever port the SSH daemon is listening on and that is administrator configurable.
SFTP usually uses port 22 but can be configured to run on nearly any port.
Port 22 is generally used for connection via SSH. SFTP is just one of protocols which can be run over SSH (others include virtual terminal). In fact, the SFTP is independent and can be run even without using SSH.
SFTP is sometimes called "Secure FTP" which leads to a common confusion with FTPS (which is called "Secure FTP" too).
SFTP - SSH File Transfer Protocol - usually runs over TCP port 22
FTP - plain, old file transfer protocol - usually runns over TCP port 21 (+ opens separate ports for data transfer)
FTP/SSL - FTP over TLS/SSL channel.
FTPS - same as FTP/SSL
Secure FTP - either SFTP or FTPS
It uses whatever port SSH is setup to use.
Its uses Port 22.
SFTP will also use data ports at higher ranges. SSH will remain the control port. It uses more than 22 in most instances...