LINUX随笔六 FTP端口限制和ftpsftp脚本连接

Posted 哭泣的馒头

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LINUX随笔六 FTP端口限制和ftpsftp脚本连接相关的知识,希望对你有一定的参考价值。

一、ftp主被动介绍

FTP主动模式

1. 在主动模式下,客户端会开启N和N+1两个端口,N为客户端的命令端口,N+1为客户端的数据端口。

第一步,客户端使用端口N连接FTP服务器的命令端口21,建立控制连接并告诉服务器我这边开启了数据端口N+1。

第二步,在控制连接建立成功后,服务器会使用数据端口20,主动连接客户端的N+1端口以建立数据连接。这就是FTP主动模式的连接过程。

这里需要补充下,客户端的命令端口和数据端口实际中并不是有些文章写道的N和N+1的关系,两个端口比较接近而已。

2. 主动模式有什么利弊呢?

主动模式对FTP服务器的管理有利,因为FTP服务器只需要开启21端口的“准入”和20端口的“准出”即可。

但这种模式对客户端的管理不利,因为FTP服务器20端口连接客户端的数据端口时,有可能被客户端的防火墙拦截掉。

FTP被动模式

上面所讲的是FTP主动模式,简单的理解就是服务器的数据端口20主动连接客户端的数据端口,来建立数据连接,用来传输数据,这个数据连接的建立有可能被客户端防火墙拦截掉。

为了解决这个问题就衍生出另外一种连接模式---被动模式。被动模式也称为passive模式。

1. 被动模式是如何运作的呢

第一步,客户端的命令端口N主动连接服务器命令端口21,并发送PASV命令,告诉服务器用“被动模式”,控制连接建立成功后,服务器开启一个数据端口P,通过PORT命令将P端口告诉客户端。

第二步,客户端的数据端口N+1去连接服务器的数据端口P,建立数据连接。

默认情况

vsftp如果没做设置,默认情况下是被动模式,如果自己这边通过ftp连接服务器,那么自己机器就是通过21连接端口连接对方,使用20数据端口传输数据

二、用户创建及开启ftp

useradd tom -s /sbin/nologin

如果别的机器无法通过账号tom登录,可以查看服务器cat /etc/shells

添加

/sbin/nologin

三、端口限制

默认主动模式,连接端口21,数据端口20

有些时候因为安全限制,不允许开启20和21端口给ftp使用

/etc/vsftpd/vsftpd.conf
pasv_enable=YES ##允许开启被动模式
anonymous_enable=NO ##关闭匿名用户登录
connect_from_port_20=NO #不使用20作为数据端口
listen_port=9999 ##作为连接端口
pasv_min_port=10000 #最小数据端口
pasv_max_port=10000 #最大数据端口,当最大最小都一样的时候,表示数据端口只能使用1000

重启vsftpd服务

systemctl restart vsftpd

此时如果使用配置好的ftp连接默认服务器

就会本地开启9999连接端口连接对方的21

本地开始10000数据端口连接对方的20

如果数据端口最大最小值是一个范围,则会随机使用范围内的数据端口连接对方20

四、脚本编写

ftp方式


ftp -n <<EOF
open $host $port
user $username $pwd
passive #开启被动
binary #设置二进制传输类型
cd /tmp #远程服务器文件目录
prompt off #交互提示,off取消下载文件询问
get test.txt #下载test.txt到当前目录
mget test* #批量下载开头为test的文件
close
bye
EOF

sftp方式

sftp无法直接像ftp似的使用命令登录,他的格式是:

sftp -P 端口 test@192.168.10.128回车在输入密码

可以使用lftp解决这个问题,lftp既可以直接连接ftp也可以连接sftp

new_ftp="lftp -u $username,$pwd ftp://$host:$port"

​new_ftp="lftp -u $username,$pwd sftp://$host:$port"

new_ftp="lftp -u $username,$pwd sftp://$host:$port"
$new_ftp <<EOF
cd /tmp
set xfer:clobber on #支持断点续传
get test.txt #下载test.txt到当前目录
mget test* #批量下载开头为test的文件
bye
EOF

以上是关于LINUX随笔六 FTP端口限制和ftpsftp脚本连接的主要内容,如果未能解决你的问题,请参考以下文章

FTPSFTP文件下载内容校验

文件传输协议FTPSFTP和SCP

怎样修改登陆ftp的端口?

centos7ftp限制文件夹大小

ftp 上传文件内容为空

linux ftp 端口是多少