ftp 被动模式可以指定一个端口吗?
作者:互联网
如何在 vsftpd 中配置被动模式端口范围的步骤:
配置 vsftpd 以指定被动模式端口范围
-
编辑 vsftpd 配置文件: 打开
/etc/vsftpd.conf
文件,使用你喜欢的文本编辑器(如nano
或vim
)进行编辑。sudo nano /etc/vsftpd.conf
Shell -
添加或修改被动模式端口范围: 在配置文件中添加或修改以下配置项,指定你希望使用的端口范围。例如,指定端口范围为 10000 到 10100:
# 启用被动模式 pasv_enable=YES # 指定被动模式端口范围 pasv_min_port=10000 pasv_max_port=10100
Conf -
保存并关闭配置文件: 保存对配置文件的修改并退出编辑器。
-
重启 vsftpd 服务: 使配置更改生效,需要重启 vsftpd 服务。
sudo systemctl restart vsftpd
Shell
配置防火墙
确保防火墙允许指定的被动模式端口范围通过。例如,使用 ufw
配置防火墙:
-
允许 FTP 控制端口(21):
sudo ufw allow 21/tcp
Shell -
允许被动模式端口范围:
sudo ufw allow 10000:10100/tcp
Shell -
重新加载防火墙规则:
sudo ufw reload
Shell
测试 FTP 被动模式
使用 FTP 客户端(如 FileZilla)连接到你的 FTP 服务器,并确保客户端配置为使用被动模式。以下是一个简单的 PHP 脚本示例,用于连接到 FTP 服务器并设置被动模式:
<?php
$ftp_server = "your_ftp_server";
$ftp_user = "ftpuser";
$ftp_pass = "your_password";
// 连接到 FTP 服务器
$conn_id = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
// 登录到 FTP 服务器
if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) {
echo "Connected as $ftp_user@$ftp_server\n";
} else {
echo "Could not connect as $ftp_user\n";
exit;
}
// 设置被动模式
ftp_pasv($conn_id, true);
// 上传文件
$file = "localfile.txt";
$remote_file = "/files/remotefile.txt";
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
echo "Successfully uploaded $file\n";
} else {
echo "There was a problem while uploading $file\n";
}
// 关闭连接
ftp_close($conn_id);
?>
标签: 来源: