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

第五章 FTP服务器搭建

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

service vsftpd start

ftp localhost

230259_ZB3D_3187968.png

如果不认识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

230346_nf1s_3187968.png

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

230400_EtbD_3187968.png

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

service vsftpd stop

230438_ng8R_3187968.png

2.从windows登录FTP服务器

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

ifconfig

230515_4vhQ_3187968.png

ping 自己的ip

230631_kF2i_3187968.png

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

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

service iptables status

230655_NfIK_3187968.png

setup

230716_xKuj_3187968.png

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

230743_gHPg_3187968.png

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

230804_WKrr_3187968.png

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

230822_sbHY_3187968.png

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

service iptables status

230845_yQlX_3187968.png

第二种方法是打开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

 

230912_LdkM_3187968.png

好,这样就添加完了,我们用浏览器访问一下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。可以正常访问

230940_vqbZ_3187968.png

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

service iptables stop

 

231001_FHbP_3187968.png

这样的结果就算连上了:

231016_rDCe_3187968.png

231026_z4ta_3187968.png

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

cd /etc/vsftpd

vi vsftpd.conf

231051_89TV_3187968.png

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

231108_TuVr_3187968.png

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

231125_vHbd_3187968.png

我们看到的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这个目录。

231150_U1ZS_3187968.png

如果要更改默认下载目录,修改/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

231217_xHFp_3187968.png

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

cd /etc/vsftpd

vi ftpusers

231238_Z3ox_3187968.png

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

service vsftpd restart

231301_BV9m_3187968.png

在windows下可以使用FlashFXP231327_v4ni_3187968.png来登录。

231345_vdHc_3187968.png

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

231408_seUn_3187968.png

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

sestatus -b | grep ftp

231429_obxf_3187968.png

接下来把ftp_home_dir改成on:

setsebool -P  ftp_home_dir  on

然后重启ftp:

231500_MrkB_3187968.png

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

vi /etc/selinux/config

231525_Z1Ko_3187968.png

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

231542_EZt2_3187968.png

231551_QmVW_3187968.png

上传Oracle安装包试一下:

231615_a9HY_3187968.png

4.设置FTP开机自启

chkconfig vsftpd on

chkconfig --list | grep vsftpd

 

231638_y7Qv_3187968.png

 

 

 

转载于:https://my.oschina.net/u/3187968/blog/824020

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值