Linux下开启FTP的21端口


通常情况下,我们会使用SFTP与服务器进行文件的传输,但是若服务器采取的为最小安装模式,则可能不存在FTP服务,那么21端口也就默认关闭,所以在服务器上部署使用了FTP上传的代码时,上传功能则无法正常工作。

步骤
  • 查看vsftpd服务状态:
1
2
[root@lemonlzy ~]# systemctl status vsftpd
Unit vsftpd.service could not be found.
  • 可以发现服务器没有vsftpd服务,那么先安装vsftpd服务:
1
2
3
4
5
[root@lemonlzy ~]# yum install -y vsftpd
...
已安装:
vsftpd.x86_64 0:3.0.2-27.el7
完毕!
  • 然后运行vsftpd服务:
1
[root@lemonlzy ~]# systemctl start vsftpd
  • 通过iptables开放21端口,先查看iptables设置:
1
[root@lemonlzy ~]# iptables -nL
  • 防止防火墙未开放21端口,所以将21端口插入到INPUT的ACCEPT中:
1
[root@lemonlzy ~]# iptables -I INPUT 5 -p tcp --dport 21 -j ACCEPT
  • 插入到INPUT的ACCEPT后查看,21端口已加入防火墙放行规则:
1
2
[root@lemonlzy ~]# iptables -nL --line-numbers | grep 21
5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:21
  • 搭建FTP服务,加载ip_conntrack_ftp,完成搭建
1
[root@lemonlzy ~]# modprobe ip_conntrack_ftp
  • 搭建完成后,需注意要添加ftp用户组的用户,正常安装不进行配置的话root用户是无法进行ftp上传服务的:

    1
    2
    [root@lemonlzy vsftpd]# usermod add lemonlzy
    [root@lemonlzy vsftpd]# usermod -G lemonlzy ftp
  • 更改新创建用户密码:

    1
    2
    3
    4
    5
    [root@lemonlzy vsftpd]# passwd lemonlzy
    更改用户 lemonlzy 的密码 。
    新的 密码:
    重新输入新的 密码:
    passwd:所有的身份验证令牌已经成功更新。
  • 到此ftp已正常搭建完毕。

Windows下验证服务器的FTP功能是否正常


1、windows下使用cmd、powershell可直接使用ftp访问服务器进行文件的上传,命令也很简单,直接键入ftp即可进入ftp界面,使用open ip即可连接远程服务器:

1
2
3
4
5
6
7
8
9
C:\Users\lzy>ftp
ftp> open 192.168.44.128
连接到 192.168.44.128
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.44.128:(none)): lemonlzy
331 Please specify the password.
密码:
230 Login successful.

2、登录完成后,可直接使用put命令验证服务器FTP功能是否搭建成功,我这里以D盘下Work目录的test文件为例:

1
2
3
4
5
ftp> put D:\Work\test.txt
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
ftp: 发送 4 字节,用时 0.004000.00千字节/秒。

3、可以看到上传文件已经成功了,那么是否真正上传到了服务器呢,上传到了服务器的哪个目录下呢?

  • 使用ftp上传的文件,会默认上传至使用ftp的默认用户目录下,比如我使用的ftp用户是lemonlzy,那么就会上传文件到/home/lemonlzy目录下:

4、登录服务器,进入/home/lemonzy目录下,可见文件已经上传成功:

1
2
3
4
5
[root@lemonlzy lemonlzy]# cd /home/lemonlzy/
[root@lemonlzy lemonlzy]# ls
test.txt
[root@lemonlzy lemonlzy]# cat test.txt
test

5、powershell、cmd下退出ftp模式,键入即可:

1
2
3
ftp> !
Microsoft Windows [版本 10.0.18363.836]
(c) 2019 Microsoft Corporation。保留所有权利。