剛剛重新編譯了新版的vsftpd,
因為WL700ge上面的vsftpd太過老舊,
也並沒有完整 support UTF8,
似乎是 asus 的 RD 有更改過原始碼。
所以去下載最新的 vsftpd 來編譯,
編譯過程,比較麻煩的是要先有 openssl ,
所以還得先編譯 openssl ,
這個問題不多,
./Configure shared no-zlib no-asm linux-elf
剩下的,只需要把 gcc 改用 mipsel-linux-gcc 去編譯就可以了。
然後把編譯出來的 libcrypto.so 和 libssl.so 放到
/opt/brcm/hndtools-mipsel-linux/mipsel-linux/lib 底下去,
當然 header files 則是放到
/opt/brcm/hndtools-mipsel-linux/mipsel-linux/include/openssl 下。
再來就可以編譯 vsftpd ,
先把 builddefs.h 裡面的
#undef VSF_BUILD_SSL
改成
#define VSF_BUILD_SSL
再來改 Makefile 裡的
GCC = gcc
改成
GCC = mipsel-linux-gcc
以及
LIBS = `./vsf_findlibs.sh`
改成
LIBS = -lcrypt -ldl -lnsl -lresolv -lutil -lcrypto -lssl
剩下只需要 make 就可以了。
把 vsftpd 編譯好後,也放上WL700gE執行了。
當然有enable SSL。
但卻發生不知道應該用那個 ftp client 來連線。
使用 putty 的 psftp 來連線,
卻告訴我以下訊息,
[C:\]PSFTP.EXE 192.168.1.1
login as: xxx
xxx@192.168.1.1's password:
/opt/libexec/sftp-server: not found
Fatal: unable to initialise SFTP: could not connect
看到 /opt/libexec/sftp-server ,
還以為是 vsftpd 還需要其他的軟體來 support ,
找了老半天,都沒有發現到任何痕跡。
才用 UltraEdit 把 psftp.exe 打開來找找看
有沒有這字串 /opt/libexec/sftp-server ,
原來這串字真的是 psftp 丟出來的。
才在用自己常用的 Filezilla 來連線,
因為它有分伺服器種類 FTP/SFTP/FTPS/FTPES,
試了老幾次,
總算在最後一種的 FTPES 連線成功了。
原來 vsftpd support ssl 是所謂的 FTPES 啊~~~
附註:我所用的 hndtools-mipsel-linux 事實上是 hndtools-mipsel-linux-3.2.3
印象中 hndtools-mipsel-linux-3.0 在編譯某些軟體似乎有問題。