linux ftp服务器的搭建及文件的上传\下载

(适用于redhat) 
前几天在公司的服务器上开了ftp,因为是个纯菜鸟,过程中遇到了一些难题,搞得自己郁闷了好久。所以在这里把过程写下来避免初学者进入误区。废话少说,进入正题
  yum install vsftpd \\安装ftp

  service vsftpd start \\启动ftp服务

  chkconfig --level 235 vsftpd on \\设为开机启动
  systemctl enable mysqld.service \\fedora中设为开机启动

  接下来编辑配置文件
  vi /etc/vsftpd.conf
  在最后一行添加 local_root=/home/ftp \\文件默认上传到该路径
  配置文件这里不做其他修改,使用默认即可,端口也用默认值
 
  service vsftpd restart \\重启ftp使修改生效

  chmod 777 /home/ftp \\给所有用户添加读写权限
以上的命令都要用root执行。到这里服务器端的配置就完成了,下面来说一下客户端(windows)怎么和我们刚搭好的ftp服务器间进行上传下载文件

  打开cmd
  输入 ftp ,前缀变成ftp> 即可
  open 192.168.2...(ftp服务器的ip地址)
  然后输入用户名密码登陆(这里默认不允许用root登陆,应使用其他账户)
  提示230 loggin successful说明登陆成功

  这时可以执行命令lcd 路径(如D:\ftp) 指定文件下载到本地目录 以后get时可以缺省
 
  下载文件:get 服务器资源路径(如/home/test.txt) 本地目录(如D:\ftpdown\test.txt)
  上传文件:put 本地资源路径 \\这里默认上传到之前配置的 local_root=/home/ftp

  这样就基本上就包括了ftp的所有内容。

  但是还有一个需要特别注意的地方,这是一个很简单但是困扰了我很久的问题,如下:
  如果传输的是非二进制文件,比如文本文件,那么按照上面的方法完全没有问题

  但是如果传输的是可执行文件,比如可执行的jar文件exe文件等一定要在传递之前
  输入命令binary(使用二进制传输模式)否则会使文件在传输过程中发生损坏!切记!

  这里有个报错425 failed to establish connection的解决办法的帖子
  http://blog.sina.com.cn/s/blog_4da051a60101c8ny.html

  内容如下
   先到CMD或者linux终端用命令行模式ftp命令测试一下,

如果能登录,不能使用ls或者dir命令。

那就说明,主要问题在端口被防火墙控住。

提示语句:

200 PORT command successful. Consider using PASV.
425 Failed to establish connection.

这时候,可以在ftp下使用命令:quote PASV

试试用以被动模式连接。

一般DOS命令行下都是默认以PORT主动模式连接。

即,端口21监听,处理控制信息,再以端口20连接客户端进行数据传送。

而,经常的,通过外网的NAT的,基本端口20的数据连接都会被禁止掉。

所以,如果想对外网开放ftp,最好使用PASV模式。

PASV被动模式是指,以端口21监听,有连接请求时,随机开放一个比较大的端口号来处理数据传输。

vsftp中,通过编辑 /etc/vsftp.conf 实现启用PASV连接。

sudo vi /etc/vsftp.conf

在配置文件中添加下面语句:

pasv_enable=YES
pasv_min_port=6000
pasv_max_port=7000

也即,启动PASV连接模式,开放6000-7000端口号作为数据传送端口。

此外,如果是对外网开放,必须在路由器的转发规则中,开放21端口。

为了保险,可以将6000-7000端口也写入到iptables中白名单中。

命令:

sudo iptables -A INPUT -p tcp --dport 6000:7000 -j ACCEPT

在ubuntu中一般可以不用,因为ubuntu虽然有iptables,但默认是没有规则的,

也即,不会设置端口限制,但其他版本就最好加上哈。

此外,如果带有selinux的,最好也关闭。

ubuntu是默认没安装selinux。

像redhat、centOS之类的,

修改/etc/selinux/config文件中的SELINUX="" 为disabled ,然后重启。

这样设定后,一般就可以搞定了。

如果还不行,可以通过一下思路:

1、防火墙(本机、客户机)

2、FTP目录的权限

3、客户机是否是IPv6网络

4、客户机的网关限制了外网ftp

猜你喜欢

转载自744722813.iteye.com/blog/2063915