pyftpdlib adalah library FTP server pada Python yang menyediakan antarmuka yang mudah dan portabel sehingga hanya dengan menuliskan konfigurasi dalam satu baris saja kita dapat membuat FTP server. Ini adalah implementasi FTP server RFC-959 terlengkap yang tersedia untuk bahasa pemrograman Python.
Cara Install
Sebelum menginstall pastikan dulu bahwa sistem yang ada pada OS kita sudah terpasang Python 3, dan paket managernya yakni pip3
. Jika pip3 belum terpasang, Anda dapat menginstallnya dengan perintah:
sudo apt install python3-pip
Dengan asumsi bahwa komputer sudah terpasang Python 3 dan pip3
, gunakan perintah berikut ini untuk menginstall:
pip3 install pyftpdlib

Contoh Penggunaan
Contoh Sederhana
Jika instalasi berhasil, kita dapat langsung menjalankan ftp server kita dengan perintah:
python3 -m pyftpdlib
Dengan perintah tersebut di atas, maka server ftp kita sudah jalan. Adapun penyimpanan yang lokasi yang dapoat diakses oleh klien FTP adalah direktlori dimana perintah di atas dieksekusi. FTP server yang sudah kita jalankan dapat diakses oleh klien melalui alamat:
ftp://alamat-ip:2121
Menampilkan bantuan
Untuk melihat semua fitur yang ada pada pyftpdlib, cobalah untuk mencari tahu dengan melihat dokumentasi bantuan yang dibawa oleh pyftpdlib. Caranya adalah:
python3 -m pyftpdlib --help
Maka akan ditampilkan bantuannya, dengan isi kurang lebih:
ubejo2004-arh@ubejo2004arh:~$ python3 -m pyftpdlib --help
Usage: python -m pyftpdlib [options]
Start a stand alone anonymous FTP server.
Options:
-h, --help
show this help message and exit
-i ADDRESS, --interface=ADDRESS
specify the interface to run on (default all interfaces)
-p PORT, --port=PORT
specify port number to run on (default 2121)
-w, --write
grants write access for logged in user (default read-only)
-d FOLDER, --directory=FOLDER
specify the directory to share (default current directory)
-n ADDRESS, --nat-address=ADDRESS
the NAT address to use for passive connections
-r FROM-TO, --range=FROM-TO
the range of TCP ports to use for passive connections (e.g. -r 8000-9000)
-D, --debug
enable DEBUG logging evel
-v, --version
print pyftpdlib version and exit
-V, --verbose
activate a more verbose logging
-u USERNAME, --username=USERNAME
specify username to login with (anonymous login will be disabled and password required if supplied)
-P PASSWORD, --password=PASSWORD
specify a password to login with (username required to be useful)
Parameter | Fungsi |
---|---|
-h atau--help |
menampilkan help atau bantuan |
-i ADDRESS atau--interface=ADDRESS |
jika dalam koputer kita terdapat lebih dari satu perangkat jaringan, maka kita bisa menentukan dari perangkat jaringan mana server FTP dapat diakses. Jika parameter ini tidak diisi maka server FTP dapat diakses dari perangkat jaringan manapun.eits, mohon kireksi jika penjelasan saya ini salah |
-p PORT atau --port=PORT |
untuk menentukan, FTP server kita berjalan dan dapat diakses dari port berapa. Jika parameter ini tidak digunakan server FTP dapat diakses dari port 2121. |
-w atau--write |
Untuk memberikan kewenangan baca dan tulis kepada klien yang mengakses. Jika parameter ini tidak digunakan maka hanya dapat membaca saja. |
-d FOLDER atau--directory=FOLDER |
Untuk menentukan folder mana yang akan dishare oleh FTP server. Jika tidak ditentukan maka folder yang dishare adalah folder dimana perintah ini dieksekusi |
-n ADDRESS atau--nat-address=ADDRESS |
alamat NAT yang akan digunakan untuk koneksi pasif |
-v atau--version |
Menampilkan versi pyftpdlib |
-u USERNAME atau--username=USERNAME |
menentukan username yang digunakan untuk login ke FTP server |
-p PASSWORD atau--password=PASSWORD |
menentukan password yang digunakan untuk login ke FTP server |
Contoh Lain
Contoh 1
ubejo20@bejodesktop:~/Documents$ python3 -m pyftpdlib
Penjelasan:
Saat ini user ubejo20 berada pada directory Documents dan menjalankan python3 -m pyftpdlib,
- server FTP berjalan tanpa keamanan username dan password,
- dapat diakses melalui semua alamat IP yang tersemat pada semua perangkat jaringan (LAN card dll) yang terpasang pada komputer,
- port yang dipakai port 2121,
- folder yang dishare adalah folder Documents,
- klien yang mengakses hanya dapat membaca saja.
Contoh 2
ubejo20@bejodesktop:~/Documents$ python3 -m pyftpdlib --port=2598 --username=bejo --password=123456789 --directory=Berbagi
Penjelasan:
- Saat ini user bernama ubejo21 berada pada directory Documents dan menjalankan python3 -m pyftpdlib
- server FTP berjalan pada port 2598
- dapat diakses melalui semua alamat IP yang tersemat pada semua perangkat jaringan (LAN card dll) yang terpasang pada komputer,
- forder yang dibagikan adalah folder Berbagi di dalam folder Documents user ubejo20
- untuk masuk ke server FTP diperlukan username bejo dan password 123456789
- klien yang mengakses hanya dapat membaca saja
Contoh 3
ubejo20@bejodesktop:~/Documents$ python3 -m pyftpdlib --write --port=2598 --username=bejo --password=123456789 --directory=Berbagi
Penjelasan:
Sama dengan contoh 2 di atas, dengan tambahan klien yang mengakses tidak hanya bisa membaca, namun juga bisa menulis dan menghapus apa yang ada di dalam folder yang dibagikan.
Mengakses Server FTP
Bagaimana cara kita mengakses server FTP?
Kita dapat mengakses server FTP menggunakan FTP klien seperti FileZilla, file manager dan bahkan web browser. Hanya saja jika kita menggunakan web browser, maka hanya bisa membaca saja server FTP memperbolehkan baca tulis.
Untuk mengakses kita hanya perlu memasukkan alamat server FTP kita. Berikut ini adalah tangkapan layar beberapa aplikasi klien yang sedang mengakses server FTP yang kita buat.

