As you can see, since the update on Mac OS X 10.7 Lion, the system has lost the ability to enable an FTP server for sharing files and folders. It’s unclear why Apple removed the graphical interface for enabling FTP sharing, but you can still start a local FTP (or SFTP) server on macOS using the command line.
If you use the command line, you probably noticed that the latest versions of macOS do not have FTP file transfer protocol.
By default, FTP is not installed in the latest versions of the system, but this does not mean that you cannot install the protocol yourself. Modern versions of macOS use SFTP instead of FTP. SFTP has more secure encryption.
However, some users still prefer FTP. If you don’t need FTP, then there’s no reason to install it.
Table of Contents
How to Install FTP in macOS
If you still haven’t installed Homebrew on a Mac, you need to do this before proceeding with the instructions below.
We will do this by installing inetutils. And this is done through Homebrew. If you haven’t Homebrew in your system, you can take script for Homebrew installing here.
Installation Using inetutils
The inetutils file contains: FTP, FTP server, telnet and telnet server, as well as rsh, rlogin, tfp servers and clients, etc. If you need FTP protocol, it will not hurt to install the entire set.
To do this, use the following command:
brew install online
When Homebrew finishes installing inetutils, you can run the FTP command as usual. For example, you can connect to the gnu.org server to check that everything worked out.
One of the advantages of this method is that you also get other useful tools in the kit, and you will not need to install them manually.
How to Start FTP and SFTP Server in macOS
Naturally, it is possible to download a separate server and many do, but why, if the mac out of the box already has a built-in ftp / sptp server, which is enough for most tasks. Simply, the built-in server is disabled by default and we just need to enable it. This is what we will do.
Start FTP server in macOS
First, start the Terminal (/Applications/Utilities/Terminal.app) and run the following command:
sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist
Check if the server is working with the ftp localhost command. If you see something similar in the terminal window:
So everything turned out and the server works. To connect to the server, use your account or create a new one, especially for ftp connections (which will be more correct from a security point of view). To access files on the server, use the “connect to server” command in the Finder or using any ftp client.
Start SFTP server in macOS
As you know, the FTP server transmits data in unencrypted form and, as a result, for security reasons, it is not very reliable.
To exchange information securely, you need to use an SFTP server, for this:
- If, for security reasons, you still need to encrypt the transmitted data, then enter the “System Preferences” -> “Sharing”;
- Check the box next to “Remote Login”;
- In the “Allow access” block, it is advisable to select the “Only these users” option and Specify your users.
You can also test the operation of this server using with command:
FTP and SFTP servers may conflict with each other and it is not recommended to keep them enabled at the same time.
The built-in SFTP server is disabled by unchecking the Remote login option in the system settings.
You can disable the FTP server in the terminal using the command:
sudo -s launchctl unload -w /System/Library/LaunchDaemons/ftp.plist
If this is the first login to the server, then the client will offer to remember the host to which the connection is made. You can confirm this action by typing the word “yes” in the console and pressing the “Enter” key. Otherwise, type “no” and press “Enter”.
Next, you need to enter a password, if all the data has been entered correctly, the client will successfully connect to the server.