搞定了fcitx的乱码问题
Ubuntu的FF3居然升级到RC1了

vsftpd-2.0.6编码补丁

Tiger Soldier posted @ 2008年5月25日 01:24 in linux with tags vsftpd 乱码 , 5991 阅读

想在学校内开放自己的FTP,但是机子用的是UTF8,很多FTP客户端都不支持转换编码,于是只能给vsftpd打编码补丁了

在网上搜了还一下,貌似最新只有2.0.5的,所以根据LinuxSir论坛上blance在这个帖子中发布的2.0.5的补丁做了个2.0.6的

补丁文件到LinuxSir上下载吧,帖子地址是http://www.linuxsir.org/bbs/thread329793.html

打了补丁后在配置文件中可以使用新增的三个属性:

# 开启编码转换功能
charset_filter_enable=YES
# 传给客户端的编码
charset_client=GBK
# 本机编码
charset_server=UTF8

已知问题:

在客户端登录时依然会在211中发出UTF8,使得支持这一特性的FTP客户端(例如lftp和Windows的Explorer)反而会乱码

补丁使用方法:

将补丁解压到vstfpd-2.0.6的源代码目录下,输入

patch -p1 < vsftpd-2.0.6-encoding.patch

然后编译:

make

如果编译错误,可能是缺少以下开发包:libpam0g-dev libcap-dev libwrap0-dev libssl-dev(以上是Ubuntu中的包名,其他发行版中的可能有所不同)

然后理论上应该是执行如下内容(要以root身份执行):

make install

但是和我的Ubuntu中的vsftpd有冲突,所以说说它会干什么,再根据实际情况判断用不用吧:
使用make install后,其实是执行三个操作:

  1. 将vsftpd复制到/usr/local/sbin/vsftpd
  2. 设置vsftpd的xinetd配置文件
  3. 复制manpage文件

这三点在Ubuntu中可能会导致如下问题(其他系统请根据实际情况判断)

  1. Ubuntu的init.d中使用的vsftpd是安装在/usr/sbin中的(前提是之前装了vsftpd)
  2. Ubuntu使用服务而不是xinetd来启动vsftpd
  3. Ubuntu的manpage文件地址与它复制的路径不同

所以在Ubuntu下,如果之前通过apt-get安装过vsftpd的话,直接把编译生成的vsftpd复制到/usr/sbin下就行了

Ma Xiaojun 说:
Nov 20, 2012 07:21:07 AM

想不出除了(舊版)IE還有啥客戶端不支持UTF-8……


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter