您的位置:首页 > 运维架构 > 网站架构

在Linux下部署网站(java环境部署)第五章 FTP服务器搭建

2017-01-12 00:00 866 查看
摘要: 同学总结觉得有用所以发上来。请勿胡乱转载。

第五章 FTP服务器搭建

1.看看是否已经安装FTP服务器

service vsftpd start
ftp localhost


如果不认识ftp命令是因为没有安装ftp的client包,需要拿安装光盘去装一下。首先将安装盘(或者iso镜像)装入,进入安装盘的Package目录下。然后找到以ftp开头的包,使用命令安装即可。(注意:命令不要生搬硬套,你的ftpclient包版本可能和我不同,有可能输入和我相同的名称找不到)

如果不认识ftp命令是因为没有安装ftp的client包,需要拿安装光盘去装一下。首先将安装盘(或者iso镜像)装入,进入安装盘的Package目录下。然后找到以ftp开头的包,使用命令安装即可。(注意:命令不要生搬硬套,你的ftpclient包版本可能和我不同,有可能输入和我相同的名称找不到)

ls -l ftp*
rpm -ivh ftp-0.17-54.el6.x86_64.rpm


这时再敲ftp命令就没问题了!



如果想停止这个服务,输入以下命令:

service vsftpd stop


2.从windows登录FTP服务器

想要从Windows上登录,就要先获取到这台Linux服务器的ip,使用以下命令:

ifconfig


ping 自己的ip


结果显示能够ping通。如果在确认网络确实连接正确,ping的ip地址也正确,但是ftp就是上不去或者压根ping不通,这有可能是由于Linux的防火墙造成的。

解决方法有两种,一种是关闭Linux防火墙,输入以下命令查看防火墙状态:

service iptables status


setup


使用方向键切换到防火墙设置,按回车进入:



现在我们按下空格键,这样就能禁用防火墙,然后按下 tab键,这样OK按钮就会被选中,然后按下回车键,使我们的修改生效:



提示警告的界面中,我们依旧选中是按钮,回车:



现在运行这个命令,查看一下防火墙的状态:

service iptables status


第二种方法是打开ftp使用的端口。ftp连接端口有2个 21 和 20 端口,我现在添加对应的规则。

iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 21 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 20 -j ACCEPT


好,这样就添加完了,我们用浏览器访问一下ftp,出现超时。所以我刚才说 ftp 是比较特殊的端口,它还有一些端口是 数据传输端口,例如目录列表, 上传 ,下载 文件都要用到这些端口。而这些端口是 任意 端口。。。 这个 任意 真的比较特殊。

如果不指定一个端口范围, iptables 很难对任意端口开放的,如果iptables允许任意端口访问,那和不设置防火墙没什么区别,所以不现实的。那么我们的解决办法就是 指定这个数据传输端口的一个范围。下面我们修改一下ftp配置文件。

vi /etc/vsftpd.conf
在配置文件的最下面 加入

pasv_min_port=30001
pasv_max_port=31000
然后保存退出。这两句话的意思告诉vsftpd, 要传输数据的端口范围就在30001到31000 这个范围内传送。这样我们使用 iptables 就好办多了,我们就打开 30001到31000 这些端口。

iptables -A INPUT -p tcp --dport 30001:31000 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 30001:31000 -j ACCEPT
service iptables save
最后进行保存, 然后我们再用浏览器范围下 ftp。可以正常访问



不过建议在操作前先关闭防火墙。使用一下命令也可:

service iptables stop


这样的结果就算连上了:





这说明ftp默认是允许匿名登陆的,用以下命令打开配置文件可以看到:

cd /etc/vsftpd
vi vsftpd.conf


这时在windows的控制台登录,用户名为anonymous,密码为空。



匿名登录成功。使用ls看看有哪些目录:



我们看到的pub就是一个目录。如果是默认安装vsftpd的话,以下是一些文件的位置约定:

/usr/sbin/vsftpd ---- VSFTPD的主程序
/etc/rc.d/init.d/vsftpd ---- 启动脚本
/etc/vsftpd/vsftpd.conf ---- 主配置文件
/etc/pam.d/vsftpd ---- PAM认证文件
/etc/vsftpd.ftpusers ---- 禁止使用VSFTPD的用户列表文件
/etc/vsftpd.user_list ---- 禁止或允许使用VSFTPD的用户列表文件
/var/ftp ---- 匿名用户主目录
/var/ftp/pub ---- 匿名用户的下载目录
这么说来,我们看到的pub就是/var/ftp/pub这个目录。



如果要更改默认下载目录,修改/etc/vsftpd/vsftpd.conf,加入如下三行:

local_root=/
chroot_local_user=YES
anon_root=/
local_root表示使用本地用户登录到ftp时的默认目录

anon_root表示匿名用户登录到ftp时的默认目录

修改vsftpd.conf配置文件:

chroot_local_user = YES
chroot_list_file=/etc/vsftpd.chroot_list
退出,然后编辑/etc/vsftpd.chroot_list,在这里面输入用户名字,一行写一个用户名。最后你再重新启动一下vsftpd服务。就可以了

3.允许root用户上传

输入以下命令,编辑文件,解除对root上传的限制:

cd /etc/vsftpd
vi user_list


编辑这个文件,将里面的root删掉。

cd /etc/vsftpd
vi ftpusers


然后使用以下命令重启服务:

service vsftpd restart


在windows下可以使用FlashFXP

来登录。



如果登录时出现这样的错误:



在Linux上运行以下命令查看一下:

sestatus -b | grep ftp


接下来把ftp_home_dir改成on:

setsebool -P ftp_home_dir on
然后重启ftp:



修改/etc/selinux/config文件,设置SELINUX= disabled:

vi /etc/selinux/config


使用reboot命令重新启动。再打开ftp服务,这时就可以了!





上传Oracle安装包试一下:



4.设置FTP开机自启

chkconfig vsftpd on
chkconfig --list | grep vsftpd
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: