macos - Mac 利用 pureftp 搭建 ftp 服务器失败?

 

问题描述:

方法一

参考一:https://www.eltyun.com/newsview?id=25492
参考二:https://www.ancii.com/azhljxp7w/

我的步骤

  1. port sudo port install pure-ftpd
  2. sudo /opt/local/sbin/pure-ftpd -A -j -Y 2 -p 30000:30009 -P 172.22.142.232

    1. 结果报错pure-ftpd: invalid option -- Y 421 Unknown run-time option
  3. 改成sudo /opt/local/sbin/pure-ftpd -A -j -p 30000:30009 -P 172.22.142.232

    1. 没返回结果,应该成功了
  4. Safari 测试 172.22.142.232:21,blank
  5. Finder 测试 ftp://172.22.142.232,(客人和注册用户我也不知道什么情况,选择了客人),连上了
  6. 第三方 Ftp 连接软件,用户名和密码不知道怎么填,感觉很奇怪,Finder 为什么有两个选项

问题

  1. 不知道 ftp 服务器储存的文件根目录在哪,网上查资料说 ftpuser 下,全部地方都找了没了,搜也搜不到
  2. 上传不了文件
  3. 我在网上搜索时看到有人说要开这个(详见参考二)sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist 莫名其妙,我也没开

方法二 —— 利用 Docker

参考:chat-gpt

我的步骤

  1. docker pull stilliard/pure-ftpd
  2. 运行以下代码

    docker run -d \
    --name myftp \
    -p 21:21 \
    -p 30000-30009:30000-30009 \
    -e PUBLICHOST=localhost \
    -e FTP_USER_NAME=myuser \
    -e FTP_USER_PASS=mypassword \
    -v /Users/本人用户名:/home/ftpusers/ftp \
    stilliard/pure-ftpd
  1. Finder 无法连接、第三方 Ftp 连接软件也无法连接

 

第 1 个答案:

  1. brew安装了pure-ftpd后,应该是可以直接用brew services start xxx 管理的。
  2. 安装好了之后,你应该去修改配置文件:/usr/local/etc/pure-ftpd.conf (可能是这个路径,我自己的mac很久没开机了,查证不了)
  3. 然后根据你的需要的配置去修改配置文件,配置文件上每个配置项都有说明,选择你要的几个设置一下就好了。
  4. 配置好了之后,使用brew services xxx 去启动pure-ftpd服务。
  5. 开始使用

===
我这里看发一下我之前用到过的配置:

AllowAnonymousFXP            no
AllowUserFXP                 no
AltLog                     clf:/var/log/pureftpd.log
AnonymousCanCreateDirs       no
AnonymousCantUpload         no
AnonymousOnly                no
AntiWarez                    yes
AutoRename                   no
BrokenClientsCompatibility   no
ChrootEveryone               yes
CustomerProof                yes
Daemonize                    yes
DisplayDotFiles              yes
DontResolve                  yes
ForcePassiveIP               x.x.x.x
LimitRecursion               10000 8
MaxClientsNumber             200
MaxClientsPerIP              100
MaxDiskUsage                 99
MaxIdleTime                  15
MaxLoad                      8
MinUID                       1000
NoAnonymous                  yes
PAMAuthentication             no
PassivePortRange               63001 64001
PerUserLimits                  200:400
ProhibitDotFilesRead         no
ProhibitDotFilesWrite        no
PureDB                          /etc/pure-ftpd/pureftpd.pdb
SyslogFacility               ftp
Umask                        022
UseFtpUsers no
VerboseLog                   yes

这里会涉及到登录的就是PureDB /path/to/puredb.pdb ,需要指定用什么方式认证以及db数据来源,我这里是默认的PureDB,你可以看情况去做修改。

生成 puredb.pdb文件,需要用到pure-pw pure-pwuseradd

===

最后,你可以看看连接时的错误日志,定位一下哪里出问题了。


由于全局解释器锁的存在,python3的多线程是伪并行的。现在看进程。如果一个CPU仅仅有4个核,我在设置pool的时候,设置Pool(5),此时,有5个并行的进程在同时运行,这个说法 ...