Ubuntu搭建ftp、nginx服务器并用Java操作

历经了失败和卸载的困境,写一下过程和命令。

环境:阿里云Ubuntu作为ftp服务器,win10电脑是客户端

用途:在Javaweb项目中搭建图片服务器

前言

ftp有两种传输模式,主动和被动

主动模式是服务器告诉客户端打开一个端口,服务器获取该端口号,传输过去

被动模式是客户端让服务器开一个端口,客户端获取该端口号,进行传输

显然,服务器在公网,客户端在局域网,选择被动模式比较好,我这次的环境就是如此

客户端在公网,服务器在局域网,选择主动模式才好

如果两个不在一个局域网,嗯,我是没有好的办法了,总不能改协议吧

FTP搭建过程

使用vsftpd,他的配置文件在/etc/vsftpd.conf

安装命令:

apt-get install update

apt-get install vsftpd

添加用户:

useradd uftp -m -s /bin/bash            添加用户,-m表示自动在home创建对应的文件夹,并指定为该用户的默认文件夹,-s表示指定用户登录的shell,不指定,登录ftp时就卡主走不下去了

passwd uftp                                      给用户设置密码

配置文件:

经验不多,只能推荐一个,使用证明可用。

listen=NO                                                              #
listen_ipv6=YES                                                    #
anonymous_enable=NO                                        #
local_enable=YES                                                 #
write_enable=YES                                                 #
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES                                 #
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES                                  #
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
tcp_wrappers=YES                                                 #
pasv_enable=YES                                                  #
pasv_min_port=30000                                            #
pasv_max_port=30100                                           #

以上就是举个例子,我认为比较重要的就在后面增加注释

卸载命令:

apt-get remove vsftpd

控制命令:

service vsftpd status                      查看状态

service vsftpd start                         启动

service vsftpd stop                          停止

service vsftpd restart                        重启

登录:

ftp 127.0.0.1

错误总结:

其实多数问题,都是发生在主动和被动服务的选择上,还有就是防火墙的设置。

主被动的问题,在服务器上,一定要配好和被动服务相关的配置,难的是客户端,很多dos命令不支持被动模式,所以就很无奈了。建议下一个MobaXterm,一个很强的工具,支持很多协议,可以用他的ftp协议试一下,如果可以连,就不要在dos界面上敲了,直接使用java连接。在程序中每次登录后,使用enterLocalPassiveMode方法,进入被动模式,一般就成功了。

防火墙的问题,linux上要注意一般Ubuntu的防火墙是ufw,要开放21和你定义的ftp的被动模式端口号区间。centos的iptables,也是一样的。记得重新启动服务。windows就是要找到防火墙,配置高级设置,把ftp对应的入站和出站规则打开,记得一定要重启,有没有其他方法我不知道,在我这,Windows不重启,防火墙的更新根本无效。

nginx搭建过程

新版的nginx的配置文件是/etc/nginx/nginx.conf,默认的第一个网站的配置文件是/etc/nginx/site-enabled/default

安装命令:

apt-get install update

apt-get install nginx

修改网站根目录:

将/etc/nginx/site-enabled/default的root 后的目录跟改为想要的目录

将/etc/nginx/nginx.conf的第一行user后的user改为新的根目录的用户。

检测配置文件语法:

nginx -t

改完后的操作:

nginx -s reload

service nginx restart

卸载命令:

apt-get --purge remove nginx        #            删除nginx

apt-get autoremove                #                    自动删除无用项目

ps -ef |grep nginx                   #                   查看是否有nginx项目在运行,kil掉

find  / -name  nginx*                                   寻找相关文件,删除

dpkg --get-selections | grep nginx      #         查看相关模块,以nginx-common和nginx-core为例:apt-get --purge remove nginx-common,apt-get --purge remove nginx-core

比较重要的命令用#标出,不删除干净很容易重装失败,而且项目也无法启动。相当磨人

其他命令:

service nginx status                      查看状态

service nginx start                         启动

service nginx stop                          停止

service nginx restart                        重启

Java操作过程

只遇到一个,改变工作根目录后,目录就换了,要想从登录的根目录为起点重新换,必须换回根目录,或者以现在目录为起点换目录。默认的登录根目录为用户的根目录/home/uftp

ftp.changeWorkingDirectory(dir)

猜你喜欢

转载自blog.csdn.net/astar3/article/details/82224953
今日推荐