Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am going to ask what some might think as a silly question.

When you think of any client - Browser, FTP, VPN, you automatically think/know that it must connect to a server.

I am running a CentOS VPS and I want to upload files to it. Now I have an ftp client on my Windows PC or I can just use the browser to upload files.

My questionn: Why do I need an FTP server on my VPS like VSFTPD? Why can Apache just listen to port 21 and manage file transfer itself (like downloading a file over port 80)? Why does it have to happen between ftp client and ftp server?

Thank you

share|improve this question

closed as primarily opinion-based by Ƭᴇcʜιᴇ007, gronostaj, HackToHell, Breakthrough, soandos Jul 8 '13 at 2:41

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

It depends on what you want to do. FTP is better at somethings, HTML is better at others. – terdon Jul 6 '13 at 19:43
FTP (not sFTP, but plain FTP) is old. It is from the time when the Internet was trusted and mostly used between academic places. You do not want to use plain old FTP anymore. It uses plain text authentication. – Hennes Jul 7 '13 at 15:01
Note that there any many ways of uploading new files to a server. FTP was just one of them. Depending on your knowledge and your setup you might want to use scp, sFTP (notice the extra s), http[s], NFS, smb (samba) or something else. This part of the question is likely to yield opinionated answers. – Hennes Jul 7 '13 at 15:03
@terdon do you mean HTTP? – Camilo Martin Jul 7 '13 at 20:48
@CamiloMartin yes, yes I do. And I can't edit the comment any more ARGH! – terdon Jul 7 '13 at 20:54
up vote 4 down vote accepted

No, you don't. If you're set up for ssh connections which, given this is a VPS...

Use SCP and ditch insecure connections. FTP for anonymous transfers might be fine, but for website maintenance, something with a little security is a better bet. You connect by SSH and transfer the files securely.

One Windows client for this is WinSCP.

share|improve this answer
Thank you Fiasco. So you are saying that I sould transfer files between my desktop and my VPS via SCP. Do a need to install it on the server? How do I upload files to my VPS with a Client? (I am on windows7) – DextrousDave Jul 7 '13 at 10:42
Also can I do it from putty or psftp? I have VSFTPD on my server - How do I set it up to connect to it and how do I connect to it from my Windows Desktop? – DextrousDave Jul 7 '13 at 10:46
Via putty: [start] [run] [cmd] pcsp file_to_upload user@my_VPS.domain.tld:/www/my_destination_dir/ – Hennes Jul 7 '13 at 14:59
WinSCP is the easiest method (free for Windows), all you need is secure shell login access and it takes care of the rest. You're bypassing the need for an FTP server on your system. – Fiasco Labs Jul 7 '13 at 17:31
thank you...very helpful – DextrousDave Jul 7 '13 at 20:35

Apache can handle FTP with he mod_ftp module.

share|improve this answer
OK cool, did not know that – DextrousDave Jul 6 '13 at 18:56
I want to clarify and say that mod_ftp turns Apache to be (also) an ftp server, it does not mean you don't need one. – matan129 Jul 6 '13 at 19:29
FTP still sucks whether a standalone daemon or Apache does it. If you can ssh into your server, you can use WinSCP or equivalent with likely very little or no additional setup, to accomplish the same thing much more securely and with no additional port configuration or passive/active nonsense to worry about. – LawrenceC Jul 6 '13 at 20:40

Using SCP is much better than FTP when it comes to having a reliable and more secure file transfer option.

A free client called WinSCP can be downloaded from ''.

Run it, enter your server's host name or your server's IP address, enter 'root' as your user name and your 'root' password as password and finally select SFTP for protocol. Click 'Login'. That's it.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged .