Internet上的网络往往有内网,架构上大都是前端是防火墙+NAT,后端是内网的各个主机,因此要穿透防火墙进行传输需要对防火墙或NAT进行额外的配置。Internet上的两个Windows服务器之间传输数据,最长用就是FTP,其次还有HTTP等。Linux上还有SSH中的scp和NFS以及其他方法。古老的TFTP已经很少有人用了,或许思科的一些网络设备中还依然保留了TFTP,尽管现在思科的大多数设备也添加了对FTP的支持。

   由于FTP工作在被动模式时不仅需要将21作为FTP的控制(命令)端口,还要将20作为FTP的数据端口,因此在配置防火墙时比较麻烦,不如用http协议传输文件。因此可以利用原有的网站结合Alias的方法加目录访问控制来实现。  
   例如:原有网站为http://www.lightcdn.cn,现在想在此网站下开启一个基于HTTP的ftp,如访问http://www.lightcdn.cn/ftpoverhttp/就能下载其中的文件,但又不影响原有网站的目录结构(如有的网站根目录是SVN的一个checkout点)。    
# Linux上的Apache的写法:    
<VirtualHost *:80>    
   ServerAdmin bbs@lightcdn.cn
   DocumentRoot /www/html/mainweb    
   ServerName www.lightcdn.cn
   ServerAlias ftp.lightcdn.cn    
   Alias /ftpoverhttp/www/html/ftpoverhttp    
   <Directory "/www/html/ftpoverhttp">    
        Options Indexes FollowSymLinks #注释有Indexes才能列出目录内容。    
        AllowOverride None    
        Order allow,deny #注释:否则会报403错误。    
        Allow from all    
   </Directory>    
   #ErrorLog logs/ftp.lightcdn.cn-error_log    
   #CustomLog logs/ftp.lightcdn.cn-access_log common #注释:如果访问量很大全完可以去掉日志。    
</VirtualHost>    
# Windows上的Apache的写法:    
<VirtualHost *:80>    
   ServerAdmin bbs@lightcdn.cn
   DocumentRoot C:/WWW/mainweb    
   ServerName www.lightcdn.cn
   ServerAlias ftp.lightcdn.cn    
   Alias /ftpoverhttp C:/WWW/mainftp/ftpoverhttp    
   <Directory "C:/WWW/mainftp/ftpoverhttp">    
        Options Indexes FollowSymLinks    
        AllowOverride None    
        Order allow,deny    
        Allow from all    
   </Directory>    
   #ErrorLog logs/ftp.lightcdn.cn-error_log    
   #CustomLog logs/ftp.lightcdn.cn-access_log common    
</VirtualHost>    
附:根据SELinux的设计:    
   标准的非HTTPS端口多采用为:80,8008,8009    
   标准的HTTPS端口多采用为:443,8443

end