linux 访问ftp linux连接FTP命令
各位老铁们好,相信很多人对linux 访问ftp都不是特别的了解,因此呢,今天就来为大家分享下关于linux 访问ftp以及linux连接FTP命令的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
在linux中怎样搭配ftp服务器
一. FTP说明
linux系统下常用的FTP是vsftp,即Very Security File Transfer Protocol.还有一个是proftp(Profession ftp)。我们这里也是简单的说明下vsftp的配置。
vsftp提供3种远程的登录方式:
(1)匿名登录方式
就是不需要用户名,密码。就能登录到服务器电脑里面
(2)本地用户方式
需要帐户名和密码才能登录。而且,这个帐户名和密码,都是在你linux系统里面,已经有的用户。
(3)虚拟用户方式
同样需要用户名和密码才能登录。但是和上面的区别就是,这个用户名和密码,在你linux系统中是没有的(没有该用户帐号)
二. Vsftp的安装配置
2.1安装
vsftp的安装包,可以在安装里找到。用yum安装过程也很简单。
安装命令:yum install vsftpd
2.2.相关命令
2.2.1启动与关闭
[root@singledb~]# service vsftpd start
Starting vsftpd for vsftpd: [ OK ]
[root@singledb~]# service vsftpd stop
Shutting down vsftpd: [ OK ]
[root@singledb~]# service vsftpd restart
Shutting down vsftpd: [FAILED]
Starting vsftpd for vsftpd: [ OK ]
[root@singledb~]#/etc/init.d/vsftpd start
Starting vsftpd for vsftpd: [FAILED]
[root@singledb~]#/etc/init.d/vsftpd stop
Shutting down vsftpd: [ OK ]
[root@singledb~]#/etc/init.d/vsftpd restart
Shutting down vsftpd: [FAILED]
Starting vsftpd for vsftpd: [ OK ]
[root@singledb~]#/etc/init.d/vsftpd status
vsftpd(pid 3931) is running...
[root@singledb~]#
2.2.2.其他命令
--查看vsftpd启动状态
[root@singledb~]# chkconfig--list vsftpd
vsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@singledb~]# chkconfig vsftpd on
[root@singledb~]# chkconfig--list vsftpd
vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
这里看到,默认情况下从2到5设置为on了。2到5是多用户级别。这个对应的是linux不同的运行级别。
我们也可以加level选项来指定:
[root@singledb~]# chkconfig--level 0 vsftpd on
[root@singledb~]# chkconfig--list vsftpd
vsftpd 0:on 1:off 2:on 3:on 4:on 5:on 6:off
我们看到0已经设置为on了。
我们可以使用man chkconfig来查看帮助:
--level levels
Specifies the run levels an operation should pertain to. It is given as a string of numbers from 0 to 7. For example,--level 35 specifies runlevels 3 and 5.
传统的init定义了7个运行级(run level),每一个级别都代表系统应该补充运行的某些特定服务:
(1)0级是完全关闭系统的级别
(2)1级或者S级代表单用户模式
(3)2-5级是多用户级别
(4)6级是重新引导的级别
(1)查看防火墙
我一般都是把系统的防火墙关闭了。因为开了会有很多限制。
[root@singledb~]#/etc/init.d/iptables status
Table: nat
Chain PREROUTING(policy ACCEPT)
num target prot opt source destination
Chain POSTROUTING(policy ACCEPT)
num target prot opt source destination
1 MASQUERADE all-- 192.168.122.0/24!192.168.122.0/24
Chain OUTPUT(policy ACCEPT)
num target prot opt source destination
Table: filter
Chain INPUT(policy ACCEPT)
num target prot opt source destination
1 ACCEPT udp-- 0.0.0.0/0 0.0.0.0/0 udp dpt:53
2 ACCEPT tcp-- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
3 ACCEPT udp-- 0.0.0.0/0 0.0.0.0/0 udp dpt:67
4 ACCEPT tcp-- 0.0.0.0/0 0.0.0.0/0 tcp dpt:67
Chain FORWARD(policy ACCEPT)
num target prot opt source destination
1 ACCEPT all-- 0.0.0.0/0 192.168.122.0/24 state RELATED,ESTABLISHED
2 ACCEPT all-- 192.168.122.0/24 0.0.0.0/0
3 ACCEPT all-- 0.0.0.0/0 0.0.0.0/0
4 REJECT all-- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
5 REJECT all-- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
Chain OUTPUT(policy ACCEPT)
num target prot opt source destination
You have new mail in/var/spool/mail/root
--添加开放21号端口:
[root@singledb~]#/sbin/iptables-I INPUT-p tcp--dport 21-j ACCEPT
[root@singledb~]#/etc/init.d/iptables status
Table: nat
Chain PREROUTING(policy ACCEPT)
num target prot opt source destination
Chain POSTROUTING(policy ACCEPT)
num target prot opt source destination
1 MASQUERADE all-- 192.168.122.0/24!192.168.122.0/24
Chain OUTPUT(policy ACCEPT)
num target prot opt source destination
Table: filter
Chain INPUT(policy ACCEPT)
num target prot opt source destination
1 ACCEPT tcp-- 0.0.0.0/0 0.0.0.0/0 tcp dpt:21
2 ACCEPT udp-- 0.0.0.0/0 0.0.0.0/0 udp dpt:53
3 ACCEPT tcp-- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
4 ACCEPT udp-- 0.0.0.0/0 0.0.0.0/0 udp dpt:67
5 ACCEPT tcp-- 0.0.0.0/0 0.0.0.0/0 tcp dpt:67
Chain FORWARD(policy ACCEPT)
num target prot opt source destination
1 ACCEPT all-- 0.0.0.0/0 192.168.122.0/24 state RELATED,ESTABLISHED
2 ACCEPT all-- 192.168.122.0/24 0.0.0.0/0
3 ACCEPT all-- 0.0.0.0/0 0.0.0.0/0
4 REJECT all-- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
5 REJECT all-- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
Chain OUTPUT(policy ACCEPT)
num target prot opt source destination
--保存配置
[root@singledb~]#/etc/rc.d/init.d/iptables save
Saving firewall rules to/etc/sysconfig/iptables: [ OK ]
--重启防火墙:
[root@singledb~]# service iptables{start|stop|restart}
(2)查看关闭selinux
[root@singledb~]# sestatus
SELinux status: disabled
我这里在安装操作系统的时候就关闭了selinux,如果没有关闭,可以修改如下文件来关闭:
[root@singledb~]# cat/etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing- SELinux security policy is enforced.
# permissive- SELinux prints warnings instead of enforcing.
# disabled- SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted- Only targeted network daemons are protected.
# strict- Full SELinux protection.
SELINUXTYPE=targeted
[root@singledb~]#
保存退出并重启系统reboot
三. FTP配置文件
FTP安装好之后,在/etc/vsftpd/目录下会有如下文件:
[root@singledb~]# cd/etc/vsftpd/
[root@singledb vsftpd]# ls
ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh
[root@singledb vsftpd]#
vsftpd.conf:主配置文件
ftpusers:指定哪些用户不能访问FTP服务器
user_list:指定的用户是否可以访问ftp服务器由vsftpd.conf文件中的userlist_deny的取值来决定。
[root@singledb vsftpd]# cat user_list
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES(default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks/etc/vsftpd/ftpusers
# for users that are denied.
我们过滤掉#的注释后,查看一下vsftpd.conf文件:
[root@singledb ftp]# cat/etc/vsftpd/vsftpd.conf|grep-v'^#';
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=yes
tcp_wrappers=YES
至于这些参数的意思,在注释里有详细的说明。
我们可以在vsftpd.conf文件设置如下参数:
(1)ftpd_banner=welcome to ftp service:设置连接服务器后的欢迎信息
(2)idle_session_timeout=60:限制远程的客户机连接后,所建立的控制连接,在多长时间没有做任何的操作就会中断(秒)
(3)data_connection_timeout=120:设置客户机在进行数据传输时,设置空闲的数据中断时间
(4)accept_timeout=60设置在多长时间后自动建立连接
(5)connect_timeout=60设置数据连接的最大激活时间,多长时间断开,为别人所使用;
(6)max_clients=200指明服务器总的客户并发连接数为200
(7)max_per_ip=3指明每个客户机的最大连接数为3
(8)local_max_rate=50000(50kbytes/sec)本地用户最大传输速率限制
(9)anon_max_rate=30000匿名用户的最大传输速率限制
(10)pasv_min_port=端口
(11)pasv-max-prot=端口号定义最大与最小端口,为0表示任意端口;为客户端连接指明端口;
(12)listen_address=IP地址设置ftp服务来监听的地址,客户端可以用哪个地址来连接;
(13)listen_port=端口号设置FTP工作的端口号,默认的为21
(14)chroot_local_user=YES设置所有的本地用户可以chroot
(15)chroot_local_user=NO设置指定用户能够chroot
(16)chroot_list_enable=YES
(17)chroot_list_file=/etc/vsftpd/chroot_list(只有/etc/vsftpd/chroot_list中的指定的用户才能执行)
(18)local_root=path无论哪个用户都能登录的用户,定义登录帐号的主目录,若没有指定,则每一个用户则进入到个人用户主目录;
(19)chroot_local_user=yes/no是否锁定本地系统帐号用户主目录(所有);锁定后,用户只能访问用户的主目录/home/user,不能利用cd命令向上转;只能向下;
(20)chroot_list_enable=yes/no锁定指定文件中用户的主目录(部分),文件:/chroot_list_file=path中指定;
(21)userlist_enable=YES/NO是否加载用户列表文件;
(22)userlist_deny=YES表示上面所加载的用户是否允许拒绝登录;
(23)userlist_file=/etc/vsftpd/user_list列表文件
限制IP访问FTP:
#vi/etc/hosts.allow
vsftpd:192.168.5.128:DENY设置该IP地址不可以访问ftp服务
FTP访问时间限制:
#cp/usr/share/doc/vsftpd-1.1.3/vsftpd.xinetd/etc/xinetd.d/vsftpd
#vi/etc/xinetd.d/vsftpd/
修改 disable= no
access_time= hour:min-hour:min(添加配置访问的时间限制(注:与vsftpd.conf中listen=NO相对应)
例: access_time= 8:30-11:30 17:30-21:30表示只有这两个时间段可以访问ftp
ftp的配置基本上只有这些了。
默认情况下,ftp根目录是/var/ftp。如果要修改这个目录位置,可以更改/etc/passwd文件:
[root@singledb ftp]# cat/etc/passwd| grep ftp
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
创建一个用户来访问FTP,并指定该用户的FTP目录:
[root@singledb u02]# useradd-d/u02/qsftp qs
[root@singledb u02]# passwd qs
Changing password for user qs.
New UNIX password:
BAD PASSWORD: it is WAY too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
这里指定的是/u02/qsftp这个目录,要注意个目录的权限。
更改用户不能telnet,只能ftp:
usermod-s/sbin/nologin username//用户只能ftp,不能telnet
usermod-s/sbin/bash username//用户恢复正常
禁止用户ssh登陆
useradd username-s/bin/false
更改用户主目录:
usermod-d/bbb username//把用户的主目录定为/bbb
然后用qs这个用户就可以访问了。
以上只是一些简单的设置。在用户权限这块还有很多内容可以研究。比如特定用户的特定权限。安全性等。以后在研究了。
如何在linux下开启FTP服务
按下列步骤开启设置LINXU中的FTP服务:
1、开启linuxh环境下的FTP service
过程如下:
输入命令:
/etc/rc.d/init.d/vsftpd start
/etc/rc.d/init.d/vsftpd restart
若要关闭这个服务:
/etc/rc.d/init.d/ vsftpd stop
2、配置文件:
进入/etc配置vsftpd.ftpusers和vsftpd.user_list,用vi打开他们,将这两个文件里的root给去掉,保存退出。
3、此时可以打开flshFXP,快速连接,输入IP地址、用户名及密码就可以连接linux系统的FTP服务器。
4、vsftpd的配置
在Red Hat Linux里的vsftpd共有3个配置文件,它们分别是:
vsftpd.ftpusers:位于/etc目录下。它指定了哪些用户账户不能访问FTP服务器,例如root等。
vsftpd.user_list:位于/etc目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd.conf配置文件里启用userlist_enable=NO选项时才允许访问。
vsftpd.conf:位于/etc/vsftpd目录下。它是一个文本文件,我们可以用Kate、Vi等文本编辑工具对它进行修改,以此来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。
linux 服务器怎么启动ftp
Liux系统下有好几款很不错的ftp服务,各有特点,适应于不同的应用场合。一般在各种Linux的发行版中,默认带有的ftp软件是vsftp,本文是针对CentOs7系统下搭建vsftpd服务为例。
1.首先确定系统中已经安装了vsftpd软件,查看命令:
rpm-q vsftpd
rpm-qa|grep vsftpd
2.安装vsftpd(以yum安装为例)
yum install-y vsftpd
3.关闭selinux和iptables(也可配置防火墙相关访问策略,反之系统阻断),设置vsftpd开机自启
永久关闭selinux
vi/etc/sysconfig/selinux
将配置SELinux=enforcing改为SELinux=disabled
保存退出并重启服务器
验证是否关闭命令:getenforce
关闭防火墙
centos 7操作命令:systemctl stop firewalld.service
centos 6操作命令:service stop iptables
设置vsftpd开机自启
centos 7操作命令:systemctl enable vsftpd.service
centos 6操作命令:chkconfig vsftpd on
4.vsftpd的配置
ftpusers该文件用来指定哪些用户不能访问ftp服务器。
user_list该文件用来指定的默认账户在默认情况下也不能访问ftp服务器。
vsftpd.conf vsftpd的主要配置文件,路径:
/etc/vsftpd/vsftpd.conf
# vsftpd.conf的配置
#是否允许匿名登录
anonymous_enable=NO
#是否允许本地用户登录
local_enable=YES
#是否允许本地用户对FTP服务器文件具有写权限
write_enable=YES
#本地用户主目录
local_root=/var/ftp
#匿名用户主目录
anon_root=/var/ftp/pub
#是否允许匿名用户上传文件,如允许,须将全局的
write_enable=YES
anon_upload_enable=YES
#是否允许匿名用户创建新文件夹
anon_mkdir_write_enable=YES
#容许匿名用户除了新建和上传外的其他权限
anon_other_write_enable=YES
#本地用户掩码
local_umask=022
#设置匿名登入者新增或上传档案时的umask值
anon_umask=022
#是否激活目录欢迎信息功能
dirmessage_enable=YES
xferlog_enable=YES
#主动模式数据传输20端口
connect_from_port_20=NO
xferlog_std_format=YES
#是否监听ipv4
listen=YES
# listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
#是否设置被动模式
pasv_enable=YES
#被动模式传输使用端口
pasv_min_port=20020
pasv_max_port=20020
#被动模式返回给客户端的ip地址(服务器内网穿透时使用)
pasv_address=0.0.0.0(服务器外网ip)
#设置用户访问目录,默认只允许用户自己的ftp目录
#需要同时设置allow_writeable_chroot,允许受限用户的写权限,不然会报错
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
5.创建例外用户文件
#哪怕没有例外用户也必须创建
vim/etc/vsftpd/chroot_list
只想让指定账户不限制在其主目录,其它账户都限制在主目录。
对于chroot_local_user与chroot_list_enable的组合效果,可以参考下表:
6.创建ftp新用户
#新增一个test(用户名),并指定上传目录在/home/ftp/test下
useradd-g root-d/home/ftp/test-s/sbin/nologin test
#如果后期想变更此用户的上传到(/XXX/ftp/test),请使用下面的命令:
usermod-d/XXX/ftp/test test
#设置用户密码
passwd test
因为安全问题,vaftpd不允许匿名用户在ftp主目录上传,可以新建一个子目录,设置权限为777
7.关于local_umask和anon_umask掩码
掩码决定了上传文件的权限,掩码为022代表上传后的文件权限为
666-022=644-> rw-r--r--
掩码即为要去除的权限为,默认设为033即可。
8.启动vsftp服务
#centos7操作命令
启动: systemctl start vsftpd.service
停止: systemctl stop vsftpd.service
重启: systemctl restart vsftpd.service
查看状态: systemctl status vsftpd.service
#centos6操作命令
启动: service vsftpd start
停止: service vsftpd stop
重启: service vsftpd restart
查看状态: service vsftpd status