实现用JAVA连接LINUX服务器上FTP

1、登录

	先检查服务器有没有安装过ftp  :  rpm -qa |grep vsftpd
	安装命令 : yum install vsftpd
	如果没有yum命令,可以使用 rpm 具体百度

2、修改ftp配置文件

我这里使用的是禁止匿名登录

	pam_service_name=vsftpd
	userlist_enable=YES
	tcp_wrappers=YES
	
	userlist_enable=YES
	userlist_file=/etc/vsftpd/vsftpd.user_list
	userlist_deny=NO
	
	allow_writeable_chroot=YES
	
	修改ftp目录 : 
	local_root=/aaaaaaa/bbb/ccccccc
	anon_root=/aaaaaaa/bbb/ccccccc

在 /etc/vsftpd/user_list 文件中 添加授权的用户
修改ftp根目录的权限

3、测试

初步:

在linux命令窗内,输入 ftp localhost

输入你授权的用户名、密码。

提示 Login successful 初步成功。

使用IP登录

使用 exit 先退出刚刚的ftp模式。
在linux命令窗内,输入 ftp 服务器IP地址,如:

	ftp  192.168.1.11

如果提示输入用户名、密码,即成功。

没反应,或者提示连接超时。可能有如下几种问题

端口问题

查看服务器上ftp使用是什么端口号,netstat -utlpn | grep vsftp

如图,我使用的是默认的21

可以通过修改配置文件conf,添加

listen_port=8080   // 8080只是举例,请改成任意不重复的端口号

同时修改

vim  /etc/services
在services中,找到ftp相关的两个,修改为8080

# 21 is registered to ftp, but also used by fsp
ftp             8080/tcp
ftp             8080/udp          fsp fspd

防火墙问题

firewalld 、iptables两个常用的防火墙,可以通过命令控制。
先查看服务器上开启了吗
再使用对应的命令开放20、21端口,就好了

也可以通过服务器后台控制中心,调配。

4、JAVA

		<dependency><!-- 用于 FTP下载 -->
            <groupId>commons-net</groupId>
            <artifactId>commons-net</artifactId>
            <version>1.4.1</version>
        </dependency>
	/**
     * 本地字符编码
     */
    public static String LOCAL_CHARSET = "GBK";

    // FTP协议里面,规定文件名编码为iso-8859-1
    public static String SERVER_CHARSET = "ISO-8859-1";

	/**
     * 建立连接
     * @param ftp
     * @return
     */
    public static boolean ftpConnect(FTPClient ftp){
   
        int reply;
        logger.info(" --- 开始建立ftp连接 --- ");
        try {
   
            ftp.connect("服务器IP地址", "端口号");// 连接FTP服务器
            ftp.login("用户名", "密码");// 登录
            reply = ftp.getReplyCode();
            if (!FTPReply.isPositiveCompletion(rep
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值