欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > linux >内容正文

linux

linux下java写ftp服务器端,在Linux下部署网站(java环境部署)第五章 FTP服务器搭建...

发布时间:2025/4/17 linux 213 豆豆
生活随笔 收集整理的这篇文章主要介绍了 linux下java写ftp服务器端,在Linux下部署网站(java环境部署)第五章 FTP服务器搭建... 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

第五章 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

总结

以上是生活随笔为你收集整理的linux下java写ftp服务器端,在Linux下部署网站(java环境部署)第五章 FTP服务器搭建...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。