6
8月
2020
10:36

将大文件从智能手机传输到Linux下的PC

6 8月 2020 10:36

任务:Wi-Fi将照片从智能手机上传到运行Linux的个人计算机。

不幸的是,决定使用SH程序传输文件的决定arEIT不合适 - 没有linux客户端,只有仿真。
带有“云”的选项(disk.yandex.ru, Google Drive,、Mail.ru 云)由于间接费用而没有考虑 - 通过Internet转移到第三方服务器,然后从中下载。 蓝牙不合适 - 太慢。 我选择了使用FTP的经过验证的版本。

程序:

  1. 在计算机上升起的 ftp服务器proftpd :

sudo apt-get install proftpd

更改PROFTPD配置文件如下:

sudo nano /etc/proftpd.conf

Include /etc/proftpd/modules.conf
UseIPv6 off
IdentLookups off
ServerName "我的计算机名称"
ServerType standalone
DeferWelcome off

MultilineRFC2228 on
DefaultServer on
ShowSymlinks off

TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200

DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions "-l"

DefaultRoot /home/vladimir/ftp #根目录FTP的名称

<Directory /home/vladimir/ftp> #根目录FTP
Umask 022 022
AllowOverwrite off
<Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD>
DenyAll
</Limit>
</Directory>

<Directory> /home/vladimir/ftp/upload/> #subdir “上传” - 用于录制,阅读,删除
Umask 022 022
AllowOverwrite on
<Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD>
AllowAll
</Limit>
</Directory>

AllowStoreRestart on

Port 21 #标准端口,但您可以将其更改为您的

<IfModule mod_dynmasq.c>
</IfModule>

MaxInstances 8

User proftpd
Group nogroup

Umask 022 022
AllowOverwrite on

TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log

<IfModule mod_quotatab.c>
QuotaEngine off
</IfModule>

<IfModule mod_ratio.c>
Ratios off
</IfModule>

<IfModule mod_delay.c>
DelayEngine on
</IfModule>

<IfModule mod_ctrls.c>
ControlsEngine off
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
</IfModule>

<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>

<Limit LOGIN>
AllowUser vladimir2 #FTP的附加登录
DenyALL #对于其余的,禁止入口
</Limit>

UserAlias ftp vladimir2 #登录FTP作为化名VLadimir2

Include /etc/proftpd/conf.d/

*还更改了外壳文件,添加了nologin
执行 sudo nano /etc/shells 添加了最后一行

# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/sbin/nologin

*更改了用户的密码FTP:

sudo passwd ftp

*检查了服务的配置:

<code><pre>sudo /etc/init.d/proftpd check-config</pre></code>

*启动了Proftpd服务:

<code><pre>sudo /etc/init.d/proftpd start</pre></code>

*我从客户端检查了与服务器的连接工作:

<code><pre>ftp my_IP-address</pre></code>

介绍了用户的名称 ftp ”,然后输入了目录的FTP用户密码 - 一切都在井井有条。

  1. 在手机和安卓系统下 从 Google Play Market 安装 文件管理器: filemanager
    另一个强大的FTP客户端 -andftp
  2. 这两个设备 - PC和智能手机都连接到同一本地网络(通过WI -FI或电线 - 无论如何)。
  3. 通过智能手机 的“文件管理器”-“远程服务”图标通过其 IP 地址(输入登录名和密码)连接到 FTP 服务器,并将文件传输到计算机。

用PC卸载文件不是电话(从01.10.2021增加到电话):

如果启用了配置文件的限制,则不可能将文件从PC传输到智能手机。
从FTP上的“上传”文件夹中读取和删除文件的限制如下:

<Directory /home/vladimir/ftp/upload/>
<Limit READ DELE>
DenyAll
</Limit>

首先,我使用了这些指令,但然后从文件中删除 proftpd.conf,因为通常是必要的,并从PC到手机加载。 现在,FTP工作的负载和卸载。

访问问题的解决方案 - 增加04.10.2021

通过FTP连接后,不可能在FTP服务器上创建文件或目录

我在SP操作系统中遇到了这个问题arky Linux (选项 Debian)。

症状:
在Debian控制下的PC上,连接到FTP服务器后,无法创建文件或目录将文件从智能手机上传到PC。 同时,FTP客户端在屏幕“访问”或“找不到文件”上写入错误。

基本错误和问题的问题:
1. 路径问题
*检查文件p中的路径是否proftpd.conf 到“公共”或“上传”目录与用户计算机上文件夹的实际路径和名称匹配(例如, /home/vladimir/ftp/upload 等)。

2. 访问权限不正确(没有写入或创建权限)
*在控制台中遵循命令:

<code><pre>sudo chmod -R 0775 /home/user/ftp</pre></code>

在哪里 user - 用户帐户的工作目录名称。此命令表示所有者及其所属的组可以读取、写入和执行 ftp 目录中的文件。

3. 为目录分配“所有者”
该问题在OS Debian中找到。
*遵循终端中的命令:

<code><pre>sudo chown -R ftp:users /home/user/ftp</pre></code>

ftp是p的帐户roftpd, userS是“所有用户”组。

或者,为了更严格的权利限制:

sudo chown -R user:user /home/user/ftp

注意 :默认所有者 user:user
在哪里 user - 您的用户名和群组。

启动proftpd в Debian带有来自Ubuntu的配置文件发生错误

有必要在配置文件中删除(sudo nano /etc/proffd.conf)线:
IdentLookups off

服务P的问题Proftpd в Linux Mint 21 "Vanessa“和他们的决定(23.08.2022)

切换到Linux Mint 21 “Vanessa" 出现了第一个问题——安装程序指向与 Mint 21 不兼容的软件包 "proftpd”。
我必须在更新之前将其删除。mint-update“:

sudo apt-get remove prOFTPD

成功过渡到LM 22后,我尝试安装程序,然后出现第二个问题-PROFTPD安装错误:

fatal: LoadModule: error loading module 'mod_tls.c'

解决问题:

sudo nano /etc/proftpd/modules.conf

十字架 许多模块。 我只剩下几块。 这是文件 modules.conf 禁用其中的行后:

ModulePath /usr/lib/proftpd
ModuleControlsACLs insmod,rmmod allow user root
ModuleControlsACLs lsmod allow user *
LoadModule mod_ctrls_admin.c
LoadModule mod_load.c
LoadModule mod_dynmasq.c
LoadModule mod_exec.c
LoadModule mod_ratio.c
LoadModule mod_site_misc.c
LoadModule mod_facl.c
LoadModule mod_unique_id.c
LoadModule mod_copy.c
LoadModule mod_deflate.c
LoadModule mod_ifversion.c
LoadModule mod_ifsession.c

然后,在主要配置文件中rpftpd 注释掉名称对应的行 "IdentLookups”:

sudo nano /etc/proftpd/proffd.conf

# If set on you can experience a longer connection delay in many cases.
#IdentLookups off

最后一个中风 - 卸下了系统面具 proftpd 服务

sudo systemctl unmask proftpd.service

现在,服务的安装毫无问题:

sudo apt-get install prOFTPD

PROFTPD服务的包含和启动也没有“事件”:

systemctl enable proftpd.ser副
systemctl start proftpd.ser副
systemctl status proftpd.ser副

呢我使用JOU命令跟踪错误rnalctl -xeu:

journalctl -xeu proftpd.ser副

!!!!结论:使用PROFTPD从智能手机到PC的数据传输也可以在Linux Mint 22中使用。

检查 - 使用程序从智能手机连接 “文件经理+” - 远程 - 使用已知用户名和密码,FTP 连接 PC IP 地址。目录已读取,文件已传输。


链接:

  • [配置文件 /etc /p的指令roftpd.conf](http://www.proftpd.org/docs/directives/linked/by-name.html)
  • [支持的命令proftpd](http://www.proftpd.org/docs/howto/FTP.html)
  • [设置示例proftpd](http://www.proftpd.org/docs/howto/Limit.html)

    下载配置文件proftpd.conf:
    [proftpd.conf.zip](proffd.conf.zip)-Linux Mint
    proftpd_debian.zip - Debian



相关出版物