令人头疼的vsftpd,ftp端口修改设置配置

这么个小小的软件花费了不成正比的时间去弄他,十分令人头疼,简单记录几点重要的设置

1
vim /etc/vsftpd.conf

vsftpd 配置文件:
https://gnu-linux.readthedocs.io/zh/latest/Chapter02/90_vsftpd.html

修改ftp的端口

ftp的监听和实际数据传输是两个端口,如果要改最好都改

1
2
3
connect_from_port_20=NO
ftp_data_port=12520
listen_port=12521

pasv模式时的端口范围设置,假如用docker运行这些端口都要转出来

1
2
3
pasv_promiscuous=YES
pasv_min_port=31100
pasv_max_port=31110

我至今没太搞明白ftp的主动与被动模式的区别,以及能不能只用其中一种模式来工作..

另外还有系统的services里

1
2
3
4
5
6
vim /etc/services

#ftp-data 20/tcp
#ftp-data 20/udp
ftp-data 12520/tcp
ftp-data 12520/udp

这个不确定是否必要但还是改了吧

中文乱码

一篇不错的配置说明
https://blog.starryvoid.com/archives/1044.html
主要提到了utf8的编码问题

utf8_filesystem=YES

如果这样还没解决,考虑是要修改容器本身的LANG
可以直接进入容器然后类似:
export LANG=C.UTF-8
或者
export LANG=en_US.UTF-8
输入locale查看结果
当然这样关了这个sh就没了,所以可以直接加到docker启动时的环境变量里
https://zihengcat.github.io/2018/09/10/change-locale-system-encoding-in-docker-container/
然后你猜怎么着,做完这些设置以后中文依然显示为乱码,但是在FileZilla里看却没问题

现在高度怀疑是VScode的这个SFTP同步插件的锅