作者falcon (falken)
看板Windows
标题[问题] Windows 上架设的 FTP 伺服器问题
时间Mon Jul 15 03:41:46 2024
使用 vsftpd 架设 FTP 伺服器
环境为 Podman on Windows
之所以使用容化是为了方便管理
只需两个步骤就能启动或关闭所有伺服器端程式
不想在实体机上执行一堆常驻背景的程式
先附上 Docker Compose 档案内容
```yaml
version: "3"
services:
vsftpd:
image: fauria/vsftpd
container_name: vsftpd
environment:
- FTP_USER=username
- FTP_PASS=password
restart: always
ports:
- 20:20
- 21:21
- 21100-21110:21100-21110
volumes:
- ./home:/home/vsftpd
- ./logs:/var/log/vsftpd
```
首先是客户端问题
在 Windows 主机中使用档案总管开启 ftp://127.0.0.1 时发生 FTP 资料夹错误
在其他装置 Android 中使用 MiXplorer 开启 ftp://电脑名称 则没有问题
**Windows 档案总管错误讯息**
```
关启FTP伺服器的资料夹时发生错误。请确定您有存取这个资料夹的权限。
详细资料:
200 Switching to ASCII mode.
227 Entering Passive Mode (10,89,8,1,82,112).
```
尝试了网路上查到的方法
关闭「使用被动 FTP(以与防火墙及 DSL 数据机相容)」
结果无效
第二个问题则是要如何将其他目录或磁碟区挂载到 FTP 根目录下的子资料夹
vsftpd 似乎本身不支援为同一使用者指定多个目录
於是我尝试过了两种方式
在 FTP 根目录下建立了
- 挂接目标磁碟区的资料夹
- 目标目录的符号连结
https://i.imgur.com/v4TTAUZ.png
在 Android 使用 MiXplorer 开启 ftp://电脑名称
点开前者内容为空
点进後者弹出错误讯息 "Failed to change directory."
请乡民大大们帮忙解惑
--
Sent from
PTTopia
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 39.9.196.178 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Windows/M.1720986108.A.382.html
※ 编辑: falcon (39.9.196.178 台湾), 07/15/2024 03:51:28
1F:→ smallreader: 内建的SMB不好用吗~07/15 04:08
映像中是遇到路径字元问题才统一改用 ftp
好像是某个 Android 上的 App
存取长 Unicode 路径的档案会失败
详细情形已经忘了…
※ 编辑: falcon (39.9.196.178 台湾), 07/15/2024 04:33:01
问题二找到解法了
volumes:
- ./logs:/var/log/vsftpd
- ./home:/home/vsftpd
- /mnt/d/Media:/home/vsftpd/username/Media
- /mnt/f:/home/vsftpd/username/ExternalMedia
我发现当卦载来源如果是根目录时
由於其中存在 $RECYCLE.BIN 这个系统资料夹
它不会被忽略,容器的 LOG 会有一连串与其子目录相关的没有权限讯息
chown: cannot read directory '/home/vsftpd/username/f/$RECYCLE.BIN/...':
Permission denied
不知道是不是因此影响 FTP 启动时间?
之前耐心不够还以为失败了
现在大问题只剩 Windows 档案总管为何无法开启 FTP 根目录
※ 编辑: falcon (39.9.196.178 台湾), 07/16/2024 01:00:14