Linux环境安装FTP服务Serv-U

本文介绍如何在Linux环境下安装配置Serv-U FTP服务器,并通过Java代码实现文件的上传和下载功能。主要内容包括Serv-U的安装步骤、配置管理界面访问、防火墙设置及使用Java进行FTP交互的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:在Linux环境上安装FTP服务端Serv-U

解决方案:

1.下载Serv-U的linux 64bit的安装文件(如果要安装ftp的机器外网不通,则需要本地下载后上传到该机器)

wget  http://www.rhinosoft.com.cn/download/14.0.1.0/SU-MFTS-Linux-64bit.zip

2.解压安装文件 

unzip SU-MFTS-Linux-64bit.zip 

3.对安装文件赋予最高权限(r=4,w=2,x=1) ,键入y继续执行

chmod 777 Serv-U-Linux-x86_64-Install


4.继续默认安装并启动服务,默认安装在/usr/local/Serv-U目录下,安装完成,默认管理界面服务的端口是8080


5.现在可以在浏览器中输入:http://ip:8080/ ,如果访问不了,原因可能是:

1)8080端口已被占用,可在Serv-U-StartupLog.txt中查看日志确认

2)防火墙没有关闭,需要手动关闭:service iptables stop


6.使用管理员默认帐号/密码:admin/admin登录,即可新增域、添加账户、配置数据目录等


7.这时候就可以测试了,使用客户端FlashFXP上传文件。浏览器可浏览ftp://ip查看下载(IE浏览器如果打开不了,需要在工具->Internet选项->高级中去除勾选下图中的选项)



8.java代码测试FTP服务的上传下载功能

  1. package com.besttone.zookeepergroup;
  2. import java.io.File;
  3. import java.io.FileInputStream;
  4. import java.io.FileOutputStream;
  5. import java.io.InputStream;
  6. import java.io.OutputStream;
  7. import org.apache.commons.net.ftp.FTPClient;
  8. import org.apache.commons.net.ftp.FTPFile;
  9. import org.apache.commons.net.ftp.FTPReply;
  10. /**
  11. * @author zhenzhen
  12. * @title ItemFtp
  13. * @Description : FTP 上传下载工具类
  14. */
  15. public class ItemFtp {
  16. private FTPClient ftp;
  17. /**
  18. *
  19. * @param path
  20. * 上传到ftp服务器哪个路径下
  21. * @param addr
  22. * 地址
  23. * @param port
  24. * 端口号
  25. * @param username
  26. * 用户名
  27. * @param password
  28. * 密码
  29. * @return
  30. * @throws Exception
  31. */
  32. private boolean connect(String path, String addr, int port,
  33. String username, String password) throws Exception {
  34. boolean result = false;
  35. ftp = new FTPClient();
  36. int reply;
  37. ftp.connect(addr, port);
  38. ftp.login(username, password);
  39. ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
  40. reply = ftp.getReplyCode();
  41. if (!FTPReply.isPositiveCompletion(reply)) {
  42. ftp.disconnect();
  43. return result;
  44. }
  45. ftp.changeWorkingDirectory(path);
  46. result = true;
  47. return result;
  48. }
  49. /**
  50. * @author
  51. * @class ItemFtp
  52. * @title upload
  53. * @Description :
  54. * @time 2013 2013-11-27
  55. * @return void
  56. * @exception :(Error note)
  57. * @param file
  58. * 上传的文件或文件夹
  59. * @param path
  60. * 上传的文件的路径
  61. * @throws Exception
  62. */
  63. private void upload(File file, String path) throws Exception {
  64. System.out.println(" file.isDirectory() : " + file.isDirectory());
  65. if (file.isDirectory()) {
  66. ftp.makeDirectory(file.getName());
  67. ftp.changeWorkingDirectory(file.getName());
  68. String[] files = file.list();
  69. for (int i = 0; i < files.length; i++) {
  70. File file1 = new File(file.getPath() + "\\" + files[i]);
  71. if (file1.isDirectory()) {
  72. upload(file1, path);
  73. ftp.changeToParentDirectory();
  74. } else {
  75. File file2 = new File(file.getPath() + "\\" + files[i]);
  76. FileInputStream input = new FileInputStream(file2);
  77. ftp.storeFile(file2.getName(), input);
  78. input.close();
  79. }
  80. }
  81. } else {
  82. File file2 = new File(file.getPath());
  83. System.out.println(" file.getPath() : " + file.getPath()
  84. + " | file2.getName() : " + file2.getName());
  85. InputStream input = new FileInputStream(file2);
  86. ftp.changeWorkingDirectory(path);
  87. ftp.storeFile(file2.getName(), input);
  88. input.close(); // 关闭输入流
  89. ftp.logout(); // 退出连接
  90. }
  91. }
  92. /**
  93. * @author
  94. * @class ItemFtp
  95. * @title download
  96. * @Description : FPT 下载文件方法
  97. * @time 2013 2013-11-27
  98. * @return void
  99. * @exception :(Error note)
  100. * @param reomvepath
  101. * 下载的文件的路径
  102. * @param fileName
  103. * 下载的文件名
  104. * @param localPath
  105. * 下载的文件本地路径
  106. * @throws Exception
  107. */
  108. @SuppressWarnings("unused")
  109. private void download(String reomvepath, String fileName, String localPath)
  110. throws Exception {
  111. ftp.changeWorkingDirectory(reomvepath);
  112. // 列出该目录下所有文件
  113. FTPFile[] fs = ftp.listFiles();
  114. // 遍历所有文件,找到指定的文件
  115. for (FTPFile ff : fs) {
  116. if (ff.getName().equals(fileName)) {
  117. // 根据绝对路径初始化文件
  118. File localFile = new File(localPath + "/" + ff.getName());
  119. // 输出流
  120. OutputStream is = new FileOutputStream(localFile);
  121. // 下载文件
  122. ftp.retrieveFile(ff.getName(), is);
  123. System.out.println("下载成功!");
  124. is.close();
  125. }
  126. }
  127. ftp.logout(); // 退出连接
  128. }
  129. public static void main(String[] args) throws Exception {
  130. ItemFtp t = new ItemFtp();
  131. boolean lianjie = t.connect("/zhengzhenzhen", "180.153.*.*", 21,
  132. "*", "*");
  133. System.out.println("连接 :" + lianjie);
  134. // 上传
  135. File file = new File("d:\\test\\test.txt");
  136. t.upload(file, "/zhengzhenzhen/");
  137. // 下载
  138. // t.download("/zhengzhenzhen", "22.png", "D:\\test");
  139. System.out.println("test");
  140. }
  141. }
6.打开FlashFXP客户端连接FTP服务查看结果


完毕!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值