感谢 linuxconfig.org 上的这篇英文教程

FTP用于访问和传输本地网络上的文件,通过安装 VSFTPD 软件,打开热点,配置相关信息后即能够启动并运行FTP服务器了。

1. 安装和配置VSFTPD

在终端中输入指令以安装 VSFTPD

$ sudo apt-get install vsftpd

2. 设置 FTP 用户账号

首先我们对原配置文件 vsftpd.conf 进行备份,避免待会的操作中出错。

$ sudo mv /etc/vsftpd.conf /etc/vsftpd.conf_orig

接着,我们通过编辑器(这里用vi)打开原来的配置文件。

$ sudo vi /etc/vsftpd.conf

将下面基本配置信息全部复制粘贴到刚打开的配置文件/etc/vsftpd.conf ,然后保存修改并关闭文件

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
chroot_local_user=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
pasv_enable=Yes
pasv_min_port=10000
pasv_max_port=10100
allow_writeable_chroot=YES

由于Ubuntu的内置防火墙默认会阻止FTP的通信,我们通过下面的指令在UFW中新建个例外以允许通信。

$ sudo ufw allow from any to any port 20,21,10000:10100 proto tcp

重新启动VSFTPD以应用新的更改。

$ sudo systemctl restart vsftpd

3. 创建一个FTP用户

FTP服务器已经就就绪,可以接受传入的连接了。接下来就需要创建一个新的用户从而连接到FTP服务。

创建新用户 ftpuser的同时设置该用户的密码:

$ sudo useradd -m ftpuser
$ sudo passwd ftpuser

为了保证运行成功,需要在ftpuser的家目录中保存至少一个文件。

$ sudo bash -c "echo FTP TESTING > /home/ftpuser/FTP-TEST"

当我们连接到该FTP服务器时,我们就能够看到这样的文件。

3. 连结FTP服务器

现在,你用手机开下热点,你的小伙伴通过连接你的热点,然后输入你那边的IP地址或者主机名即能连接到FTP服务器了。接下来介绍两种方法,任意种方法都能够成功连接。

3.1 使用命令行连接到FTP服务器

打开终端,使用Ubuntu的 ftp 命令来连接你的 loopback 地址(127.0.0.1)或者 你电脑上特有的IP地址。

loopback 是一个特殊的网络接口(理解为虚拟网卡),用于本机中各个应用间的网络交互。

如何查看你电脑上的IP地址?

$ hostname -I
#打印显示的左边那串数字即是你的Ipv4地址了
$ ftp 127.0.0.1
#或者 ftp 你的电脑IP地址

接下来,会显示Connected并让你输入账号名称与口令(就是第2步创建的账号ftpuser

由此连接成功!通过ls指令,就能查看该服务器中的文件或者创建目录了

3.2 通过GUI连接到FTP服务器

打开文件管理器,点击“其他位置”,在“连接到服务器”那一栏中输入 ftp://127.0.0.1(使用你的IP地址也可以),点击连接就会弹出窗口,输入你第二步创建的账号就能连接成功了。

成功连接后,就能看到直接所创建的文件了。

最新文章

  1. HoverTree开源项目已经实现管理员登录
  2. 几种任务调度的 Java 实现方法与比较
  3. iOS-图片拉伸技巧
  4. Android文本输入框(EditText)切换密码的显示与隐藏
  5. 最长不下降子序列的O(n^2)算法和O(nlogn)算法
  6. Qt之显示网络图片
  7. Cocos2d-x内存管理研究<二>
  8. JavaScript学习笔记 - 进阶篇(2)- 数组
  9. hihoCoder 1391 Countries 【预处理+排序+堆】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛)
  10. C#分析URL参数获取参数和值得对应列表
  11. .NET Core跨平台:.NET Core项目部署到linux(Centos7)
  12. 读Zepto源码之Callbacks模块
  13. iview服务不可以被访问解决办法
  14. LINUX日常操作二
  15. SVN 常见报错
  16. 知识驱动对话-Learning to Select Knowledge for Response Generation in Dialog Systems-阅读笔记
  17. 如何实现php手机短信验证功能
  18. Java Web项目总结
  19. 相见恨晚的 scala - 01 [ 基础 ]
  20. CF915E Physical Education Lessons

热门文章

  1. react-native 常见问题
  2. ansible-hoc命令行
  3. Linux 系统基于 Hadoop 安装 Hive
  4. C语言积累一点点
  5. httpx和requests之间有什么区别?
  6. Linux 环境编程:dirfd参数 有关解析
  7. 团灭 LeetCode 股票买卖问题
  8. RabbitMQ的简单封装
  9. Java入门(5)
  10. 浅谈js for循环输出i为同一值的问题