非常識なほど貧弱なFTPサーバー。
ほとんどの人には無用です。
今だけ別のPCに1個かそこらのファイルを送り込みたい。しかしUSBメモリ等の媒体が使えず、ネットワークには繋がっているならば、共有フォルダやFTPを利用したくなると思います。
ただそのためだけに共有フォルダを作ったり、IISや著名なFTPサーバーをセットアップするのって、とても面倒くさいですよね。今だけ、たった1個のファイルの送受信を行いたいだけなのに!
そんな、シンプルに今だけファイルを送受信したいニーズに応えるFTPサーバーです。
もちろんTFTPが利用できれば、そっちがいいと思います。
C言語のみで書かれており、ソケットAPIを用いている他は特別なライブラリを使用しておらず、非常に軽量で実行ファイル単体で多くのOSで動くと思います。
動作確認したOSを列挙します。
- Microsoft Windows 11
- FreeBSD 14.4
- LinuxMint 22.2
- Haiku OS R1/B5
FTPサーバーにしたいPCで、次のようにして起動します。
$ poorftpd ファイル名
ファイル名はサーバー側に存在するファイルを指定します。そのファイルがFTPクライアントが唯一発見できてダウンロードできるファイルとなります。
ファイル名を省略すれば、全くファイルを発見できず、何もダウンロードできません。
指定以外のファイルのダウンロードはもちろん、ディレクトリ移動も、削除や属性変更なども一切できません。
ユーザー名、パスワードは何でも通ります。
FTPクライアントからは任意のファイルをアップロード可能です。アップロード先はサーバー側のカレントディレクトリ固定です。
終了させるには、Ctrl-C等で終了させるか、クライアントが切断すれば終了します。
次のオプションがあります。
-p ポート番号
接続するポート番号をデフォルトの21から変更できます。
-pp パッシブモードの待ち受けポート番号
パッシブモード時はデフォルトで60000で待ち受けますが、これを変更します。
$ poorftpd -p 8255 -pp 62256 FileName.txt
この例では、待ち受けポート番号8255、パッシブモード待ち受けポート番号62256という意味です。
前述の通り認証はありませんので、poorftpdが動いている間は、これ自体がセキュリティホールとなりえます。使い終えたら、速やかに終了させてください。
複数クライアントからの同時接続はできません。
FTPS(File Transfer Protocol over SSL/TLS)には対応していません。
その他、多くのFTPサーバーが備えている機能の多くが使えません。
ビルドは基本的にCMakeを使います。
Makefileは、Haiku OS専用です。
おま環かもしれませんが、CMakeがインストールできない事がありましたので、Makefile-Engineを使ったMakefileも準備しました。