linux服务器搭建ftp服务脚本(在centos6.5和centos7上测试通过)(该脚本没有进行判断,需要自行清理环境)(该脚本只允许上传不允许下载,不允许使用匿名用户和本地用户登录)
(内网使用没问题,外网会报
500 Illegal PORT command.
ftp: bind: 地址已在使用
和被动模式连接端口有关,检查防火墙和端口映射
)
安装脚本
chkconfig vsftpd on
setenforce 0 sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
vsftpd.conf配置文件讲解
#监听端口 listen_port=21 #允许写入 write_enable=YES #设置umask local_umask=022 #启用日志 xferlog_enable=YES #设置日志路径 xferlog_file=/var/log/vsftpd.log #指定FTP使用20端口进行数据传输,默认值为YES。 connect_from_port_20=YES #ftp数据连接超时,默认120s data_connection_timeout=1200 #使用standalone模式运行 listen=YES #最大连接数,默认0表示无限制 max_clients=10 #宿主ftp连接是否以不同的进程表现出来,默认为no setproctitle_enable=YES #匿名用户登录,设置为no anonymous_enable=NO #本地用户登录,设置为no local_enable=NO #匿名用户上传,设置为no anon_upload_enable=NO #匿名用户有创建目录的权限。设置为no anon_mkdir_write_enable=NO #是否运行用户切换到上级目录,默认为NO,yes时所有用户均不能切换到其他目录(牢笼模式) chroot_local_user=YES #设置欢迎语 dirmessage_enable=YES ftpd_banner=Welcome to blah FTP service. #启用虚拟用户 guest_enable=YES #虚拟用户pam使用的名称 pam_service_name=/etc/pam.d/vsftpd.virtual #使用的宿主用户名 guest_username=ftphost #让虚拟用户有本地宿主用户的权限 virtual_use_local_privs=YES #定义用户配置文件 user_config_dir=/etc/vsftpd/vhome #是否启用userlist文件 userlist_enable=YES #是否允许userlist中用户访问 userlist_deny=YES #结合tcp wrapper进行主机访问控制 tcp_wrappers=YES #是否启用被动模式 pasv_enable=YES #被动模式端口范围,默认0表示任意 pasv_min_port=1024 pasv_max_port=2048 #禁止将文件下载本地 download_enable=NO
修改vsftpd端口
修改/etc/vsftpd/vsftpd.conf中的listen_port=21,然后重启vsftpd
修改vsftpd访问用户密码
在/etc/vsftpd/vusers.txt文件中写入新的用户密码
生成新的密码文件(不用重启)
db_load -T -t hash -f /etc/vsftpd/vusers.txt /etc/vsftpd/vsftpd-virtual-user.db
修改存放目录
修改/etc/vsftpd/vhome/${VUSER}文件中的local_root=路径即可(需要用户具有相应的权限)
禁止某个用户访问
在vsftpd.conf文件中使用以下选项
userlist_enable=YES userlist_deny=YES
在user_list中添加禁止访问的用户然后重启vsftpd
禁止某个ip访问
在vsftpd.conf文件中使用以下选项
tcp_wrappers=YES
修改/etc/hosts.allow,添加如下信息
vsftpd:192.168.0. :deny
vsftpd服务名192.168.0. 表示网段,也可以使用ip,deny表示拒绝,allow表示允许,如果设置allow,后面就添加vsftpd:all :deny,即可实现只允许指定ip访问
linux使用被动模式自动上传文件脚本
#!/bin/sh
rpm -q ftp
if [ $? -ne 0 ];then
yum install -y ftp
fi
echo "start ftp update"
# -n: 不受.netrc文件的影响,<< : 使用即时文件重定向输入
ftp -n<< EOF
open IP pord
user username password
passive
binary
cd DIR
lcd /LOCAL/DIR
prompt
mput *
close
bye
EOF
put命令讲解
open 建立指定ftp服务器连接,默认端口21
user 连接用户密码
passive 使用被动模式
binary 二进制传输模式(不会对文件就行任何修改)
cd 切换远程ftp命令
lcd 切换本地目录
prompt 关闭交互模式
mput 上传文件
close 断开ftp连接
bye 退出ftp
windows自动上传脚本(需要打开被动模式)
@Echo Off
::”设置path环境变量”
set path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\
::”切换到执行目录”
c:
cd C:\Users\Administrator\Desktop\test
::”将执行的选项写入到文件,然后调用”
Echo open IP PORT >ftp.up
Echo username>>ftp.up
Echo password>>ftp.up
Echo binary>>ftp.up
Echo Cd DIR >>ftp.up
Echo lcd C:\Users\Administrator\Desktop\test\DIR>>ftp.up
Echo prompt>>ftp.up
Echo mput *>>ftp.up
Echo close>>ftp.up
Echo bye>>ftp.up
::”执行ftp命令,调用配置”
FTP -s:ftp.up
::”删除产生的配置文件”
del ftp.up /q
简单的讲解一下
open 连接ftp,后面接的是ftp服务器用户、断开 username ftp连接用户名 password ftp连接密码 binary 使用二进制传输模式 cd 切换远程ftp目录 lcd 切换本地暴露 prompt 关闭交互模式 |
windows打开ftp被动模式
打开IE浏览器-->工具-->internet 选项-->高级-->浏览-->勾选“使用被动ftp”
#报错
先查selinux
参考:
vsftpd参考文档:https://blog.51cto.com/yuanbin/108262
ftp命令详解:http://blog.csdn.net/zzzzcs/article/details/23995833
转载于:https://blog.51cto.com/13323775/2060316