Network Configuration
Setting up network components for FTP is not trivial for use outside your LAN (Local Area Network). Since so many firewalls and routers exist, it is impractical to give detailed step-by-step instructions suitable for every user. It is important to understand the basics of the FTP protocol in order to configure FileZilla and the routers and/or firewalls involved. This documentation describes the history of the FTP protocol and how some aspects of the protocol work. Reading it carefully will save you a lot of trouble setting up FTP.
Background
Bagian ini memberikan gambaran tentang latar belakang historis dan teknis dari protokol FTP. Untuk rinci dalam informasi mendalam lihat spesifikasi.
Latar Belakang Sejarah === ===
Dalam dunia yang hidup cepat internet, File Transfer Protocol tidak hanya tua, itu kuno. Draft awal protokol kembali sejauh 1971, dan spesifikasi saat ini dari tahun 1985. Protokol bahkan mungkin lebih tua dari Anda!
Kembali kemudian, internet terutama digunakan oleh universitas-universitas dan pusat penelitian. Masyarakat itu kecil, banyak pengguna saling kenal dan semuanya berkolaborasi bersama. Internet adalah tempat yang ramah dan percaya. Keamanan tidak banyak perhatian.
Banyak yang telah berubah sejak saat itu. Internet sekarang di mana-mana, dengan jutaan pengguna berkomunikasi dengan satu sama lain dalam berbagai cara. Ini juga merupakan tempat yang lebih bermusuhan. Ketersediaan dan keterbukaan telah menarik pengguna yang jahat yang mengeksploitasi keterbatasan desain, implementasi lengkap, bug, dan pengalaman dari pengguna lain. Sebuah perangkat lunak terkenal perusahaan yang berlokasi di Redmond, WA tentu memainkan bagian dalam.
Beberapa upaya telah dilakukan untuk mengatasi masalah ini:
- NAT (Network Address Translation) router. Banyak host dan router di internet menggunakan IPv4 protokol. Jumlah host yang terhubung ke internet telah mencapai batas desain IPv4 untuk jumlah alamat (IPv6 dirancang untuk meringankan ini). NAT router memungkinkan beberapa sistem dalam LAN untuk menghubungkan ke dunia luar dengan satu alamat IP eksternal.
- Personal firewall mencoba untuk melindungi komputer pribadi dari serangan oleh pengguna yang jahat.
Sayangnya, baik NAT dan firewall pribadi konflik dengan FTP lebih sering daripada tidak. Untuk membuat hal-hal buruk, beberapa cacat diri mereka sendiri, menyebabkan masalah tambahan mengenai FTP.
=== Teknis === latar belakang
Apa yang membedakan FTP dari protokol lain kebanyakan adalah penggunaan koneksi sekunder untuk transfer file. Bila Anda terhubung ke server FTP, Anda benar-benar membuat dua koneksi. Pertama, koneksidisebutkontrol didirikan, di mana FTP perintah dan balasan mereka ditransfer. Kemudian, dalam rangka untuk mentransfer file atau daftar direktori, client mengirimkan perintah tertentu melalui koneksi kontrol untuk mendirikan'koneksi data.
Sambungan data dapat dibentuk dua cara yang berbeda, menggunakan modus aktif'atau'modus pasif.
Dalam mode pasif, yang direkomendasikan (lihat di bawah), client mengirimkan perintah PASV ke server, dan server merespon dengan alamat. Klien kemudian mengeluarkan perintah untuk mentransfer file atau untuk mendapatkan daftar direktori, dan membentuk sambungan sekunder ke alamat dikembalikan oleh server.
Dalam mode aktif, klien membuka soket pada mesin lokal dan memberitahu alamat ke server menggunakan perintah PORT. Setelah klien mengeluarkan perintah untuk mentransfer file atau daftar, server akan terhubung ke alamat yang diberikan oleh klien.
Dalam kedua kasus, file yang sebenarnya atau daftar ini kemudian ditransfer melalui koneksi data.
Umumnya, membangun koneksi keluar memerlukan kurang konfigurasi pada router / firewall terlibat daripada membangun koneksi masuk. Dalam mode pasif, sambungan keluar pada sisi client dan masuk pada sisi server dan dalam mode aktif ini terbalik. Perhatikan bahwa perbedaan hanya dalam membangun koneksi. Setelah didirikan, koneksi dapat digunakan untuk upload atau download.
Pengaturan jaringan yang umum mungkin terlihat seperti ini:
Dalam mode pasif, router dan firewall di sisi server harus dikonfigurasi untuk menerima koneksi masuk dan maju. Di sisi klien, bagaimanapun, hanya koneksi keluar harus diperbolehkan (yang sudah akan terjadi sebagian besar waktu).
Analog, dalam modus aktif, router dan firewall di sisi klien harus dikonfigurasi untuk menerima koneksi masuk dan maju. Hanya koneksi keluar harus diperbolehkan pada sisi server.
Karena dalam kebanyakan kasus satu server menyediakan layanan bagi banyak pengguna, lebih mudah untuk mengkonfigurasi router dan firewall di sisi server sekali untuk mode pasif daripada mengkonfigurasi router klien / firewall untuk setiap klien individu dalam modus aktif. Oleh karena itu, modus pasif direkomendasikan dalam banyak kasus.
NAT router ==== ====
Sebagian besar pengguna broadband akan memiliki NAT (Network Address Translation) router antara komputer mereka dan internet. Ini mungkin merupakan sebuah perangkat router mandiri (mungkin router nirkabel), atau dibangun ke modem DSL atau kabel. Dalam lingkungan NAT, semua sistem di belakang router NAT bentukJaringan Area Lokal (LAN), dan setiap sistem di LAN memiliki alamat IP lokal (dikenali sebagai empat angka yang dipisahkan oleh titik kecil). Router NAT itu sendiri memiliki alamat IP lokal juga. Selain itu, router NAT juga memiliki alamat IP eksternal dengan yang diketahui ke Internet.
Sebuah sistem contoh mungkin terlihat seperti ini:
Alamat IP internal hanya berlaku di dalam LAN, karena mereka akan masuk akal sedikit ke sistem remote. Pikirkan tentang sebuah server di belakang router NAT. Bayangkan apa yang mungkin terjadi jika klien permintaan mode pasif, tetapi server tidak tahu alamat IP eksternal dari router NAT. Jika server mengirimkan alamat internal untuk klien, dua hal bisa terjadi:
- Jika klien tidak di belakang NAT, klien akan membatalkan karena alamat tidak valid.
- Jika klien berada di belakang NAT, alamat yang diberikan oleh server mungkin sama sebagai sebuah sistem di LAN klien sendiri.
Jelas, dalam kedua kasus mode pasif akan mustahil.
Jadi jika server berada di belakang router NAT, perlu mengetahui alamat IP eksternal dari router dalam mode pasif. Dalam hal ini, server akan mengirimkan alamat eksternal router ke klien. Klien kemudian menetapkan koneksi ke router NAT, yang pada gilirannya rute koneksi ke server.
=== === Firewall
'Personal firewall yang diinstal pada banyak sistem untuk melindungi pengguna dari kerentanan keamanan di sistem operasi atau aplikasi yang berjalan di atasnya. Melalui internet, malware seperti cacing mencoba untuk mengeksploitasi kelemahan untuk menginfeksi sistem Anda. Firewall dapat membantu untuk mencegah infeksi. Namun, firewall dan aplikasi keamanan lainnya kadang dapat mengganggu non-berbahaya transfer file.
Terutama jika menggunakan FTP, pengguna firewall kadang-kadang mungkin melihat pesan seperti ini dari firewall mereka:
Trojan Netbus diblokir pada port 12345 yang digunakan oleh FileZilla.exe
Dalam banyak kasus, ini adalah alarm palsu. Setiap program dapat memilih port yang diinginkannya untuk komunikasi melalui internet. Filezilla, kemudian, dapat memilih port yang kebetulan juga port default dari sebuah trojan atau malware lainnya sedang dilacak oleh firewall Anda. FileZilla adalah bersih dari malwareasalkan di-download dari situs resmi.
Berbahaya router, firewall dan sabotase Data
Beberapa router dan firewall berpura-pura pintar. Mereka menganalisis koneksi dan, jika mereka berpikir mereka mendeteksi FTP, mereka diam-diam mengubah data dipertukarkan antara klien dan server. Jika pengguna tidak secara eksplisit mengaktifkan fitur ini, perilaku ini pada dasarnya adalah data yang sabotase dan dapat menyebabkan berbagai masalah.
Sebagai contoh, bayangkan sebuah klien di belakang router NAT mencoba untuk menyambung ke server. Mari kita lebih lanjut mengasumsikan bahwa klien ini tidak tahu itu berada di belakang NAT dan ingin menggunakan modus aktif. Jadi mengirimkan perintah PORT dengan alamat lokal pengguna, un-routable IP untuk server:
PORT 10,0,0,1,12,34
Perintah ini memberitahu server untuk menghubungkan ke alamat 10.0.0.1 di port 12 * 34 = 256 3106
Router NAT melihat ini dan diam-diam perubahan perintah untuk memasukkan alamat IP eksternal. Pada saat yang sama, router NAT juga akan membuat port forwarding sementara untuk sesi FTP, mungkin pada port yang berbeda bahkan:
PORT 123,123,123,123,24,55
Perintah di atas memberitahu server untuk menghubungkan ke alamat 123.123.123.123 pada port 24 * 256 +55 = 6199
Dengan perilaku ini, router NAT memungkinkan klien tidak benar dikonfigurasi untuk menggunakan modus aktif.
Jadi mengapa perilaku ini buruk? Pada dasarnya, hal itu dapat menyebabkan sejumlah masalah jika diaktifkan secara default, tanpa izin pengguna eksplisit. Koneksi FTP dalam bentuk yang paling dasar muncul untuk bekerja, tapi begitu ada beberapa penyimpangan dari kasus dasar, semuanya akan gagal, sehingga pengguna bingung:
- Router NAT membabi buta mengasumsikan beberapa koneksi menggunakan FTP berdasarkan kriteria seperti port target atau respon server awal:
- Protokol yang digunakan terdeteksi sebagai FTP, namun tidak ada jaminan bahwa hal ini benar (apalsupositif). Meskipun tidak mungkin, dapat dibayangkan bahwa revisi masa depan protokol FTP mungkin mengubah sintaks dari perintah PORT. Sebuah router NAT memodifikasi perintah PORT kemudian akan diam-diam mengubah hal-hal itu tidak mendukung dan dengan demikian merusak sambungan.
- Deteksi protokol router dapat gagal untuk mengenali koneksi FTP (sebuah'negatif palsu). Katakanlah router hanya terlihat di pelabuhan sasaran, dan jika 21, mendeteksi sebagai FTP. Dengan demikian, koneksi modus aktif dengan klien tidak benar dikonfigurasi untuk server yang berjalan pada port 21 akan bekerja, tetapi koneksi ke server lain pada port non-standar akan gagal.
- Jelas, router NAT tidak bisa lagi mengutak-atik dengan koneksi secepat sesi FTP terenkripsi digunakan, lagi-lagi meninggalkan pengguna clueless mengapa ia bekerja untuk FTP normal tetapi tidak untuk FTP dienkripsi.
- Katakanlah klien di belakang router NAT mengirimkan "PORT 10,0,0,1,12,34". Bagaimana router NAT tahu klien dikonfigurasi tidak benar? Hal ini juga kemungkinan bahwa klien dikonfigurasi dengan benar, namun hanya ingin memulai sebuah FXP (server ke server) transfer antara server yang terhubung ke dan mesin lain dalam jaringan lokal sendiri server.
Oleh karena itu, memiliki fitur protokol tertentu diaktifkan di router NAT secara default dapat menciptakan masalah yang signifikan. Solusi untuk semua ini, maka, adalah untuk mengetahui pengaturan router Anda, dan untuk mengetahui kemampuan konfigurasi router sebelum Anda memasangnya. Sebuah router NAT yang baik selalu harus sepenuhnya protokol-agnostik. Pengecualian adalah jika Anda sebagai pengguna secara eksplisit telah mengaktifkan fitur ini, yang tahu semua konsekuensinya.
Meskipun bagian ini hanya membahas kombinasi dari router NAT di sisi klien dengan modus aktif, yang sama berlaku untuk server di belakang router NAT dan jawaban untuk perintah PASV.
Menyiapkan == == Klien filezilla
Jika Anda menjalankan filezilla 3, direkomendasikan Anda menjalankan wizard konfigurasi jaringan. Ini akan memandu Anda melalui langkah-langkah yang diperlukan dan dapat menguji konfigurasi Anda setelah set-up.
Jelas, jika Anda ingin terhubung ke server apapun, Anda perlu memberitahu Anda bahwa filezilla firewall seharusnya diizinkan untuk membuka koneksi ke server lain. FTP server menggunakan port yang paling normal 21, SFTP server menggunakan port 22 dan FTP melalui SSL / TLS (modus implisit) menggunakan port 990 secara default. Port ini tidak wajib, bagaimanapun, jadi yang terbaik untuk memungkinkan koneksi keluar ke port jauh sewenang-wenang.
Karena banyak server di internet yang terkonfigurasi dan tidak mendukung kedua modus transfer, itu disarankan agar Anda mengkonfigurasi modus transfer kedua pada akhir Anda.
=== === Modus pasif
Dalam mode pasif, klien tidak memiliki kontrol atas apa port server memilih untuk sambungan data. Oleh karena itu, untuk menggunakan mode pasif, Anda harus mengizinkan koneksi keluar ke semua port di firewall Anda.
=== === Modus Aktif
Dalam, modus aktif, Klien Membuka socket server yang murah Menunggu UNTUK membangun koneksi transfer.
Secara default, FileZilla Client meminta Operasi SISTEM UNTUK alamat IP mesin murah Jumlah Yang pelabuhan bebas. Konfigurasi ini dapat bekerja jika Hanya terhubung ke internet ANDA secara Langsung Tanpa router NAT, murah jika ANDA Telah mengatur firewall ANDA UNTUK membolehkan koneksi masuk PADA Semua pelabuhan Lebih gede Dari 1024.
Jika ANDA memiliki router NAT, ANDA njaluk alamat IP memberitahu filezilla eksternal ANDA UNTUK Rangka Dalam, modus koneksi aktif UNTUK DENGAN server yang bekerja di Luar Jaringan Lokal Anda:
- Jika alamat IP ANDA memiliki Tetap eksternal, ANDA dapat memasukkannya Dalam, dialog Konfigurasi filezilla ITU.
- Jika alamat IP ANDA memiliki Dinamis, ANDA dapat mengotorisasi filezilla mendapatkan alamat IP UNTUK ANDA Dari situs eksternal web Khusus. Akan terjadi ini secara Otomatis setiap kali filezilla dimulai. Tidak ada Informasi Yang Akan disampaikan ke situs web (terlepas Dari versi filezilla).
Jika Ragu, gunakan pilihan kedua.
Jika ANDA Tidak Ingin mengizinkan koneksi masuk PADA Semua port, atau jika ANDA memiliki router NAT, ANDA UNTUK njaluk memberitahu filezilla menggunakan Berbagai pelabuhan tertentu UNTUK modus koneksi aktif. ANDA Akan Membuka port yang memiliki UNTUK ANDA Dalam, firewall. Jika ANDA memiliki router NAT, ANDA UNTUK Maju njaluk pelabuhan ini UNTUK JUAL filezilla Lokal diinstal disimpan. Tergantung model router PADA ANDA, ANDA dapat Maju Berbagai pelabuhan atau ANDA UNTUK Maju njaluk Semua port individu.
Pelabuhan Yang dapat berlaku 1-65535, namun, port Kurang Dari 1024 dicadangkan UNTUK protokol lain. Cara Terbaik UNTUK Puyeng adalah pelabuhan Yang Lebih Dari gede atau sama DENGAN 50000 UNTUK FTP modus aktif. KARENA Sifat TCP (protokol transportasi Yang mendasari), port Tidak dapat digunakan Segera Kembali Masing-Masing setelah sambungan. Oleh KARENA ITU, Berbagai pelabuhan Tidak boleh Terlalu Kecil UNTUK mencegah kegagalan beberapa mentransfer Kecil file. Berbagai pelabuhan 50 Harus Cukup Dalam, kebanyakan Kasus.
[[Gambar: Settings_activemode.png | Screenshot dari dialog pengaturan filezilla 3 menampilkan halaman konfigurasi untuk mode aktif].]
Menyiapkan dan pengujian filezilla Server
Menyiapkan server sangat mirip dengan pengaturan klien, dengan perbedaan utama adalah bahwa peran modus aktif dan pasif dibalik.
Sebuah kesalahan umum, terutama oleh pengguna dengan router NAT, yang dalam pengujian server. Jika Anda berada dalam jaringan lokal Anda, Anda hanya dapat menguji menggunakan alamat IP lokal server. Menggunakan alamat eksternal dari dalam mungkin akan gagal, dan salah satu dari berikut dapat terjadi:
- Ini benar-benar bekerja (mengherankan - dan itu mungkin berarti sesuatu yang lain yang salah ...)
- Blok router akses ke alamat eksternal dari dalam, karena mengidentifikasi sebagai kemungkinan serangan
- Router meneruskan koneksi ke ISP, yang kemudian blok itu sebagai kemungkinan serangan
Bahkan jika tes bekerja, tidak ada jaminan bahwa pengguna eksternal benar-benar dapat terhubung ke server Anda dan mentransfer file. Satu-satunya cara yang dapat diandalkan untuk menguji server Anda adalah untuk mencoba menghubungkan dari sebuah sistem eksternal,'di luar LAN Anda.
=== === Modus Aktif
Pastikan FileZilla Server diperbolehkan untuk membangun koneksi keluar ke port sewenang-wenang, karena klien kontrol port yang digunakan.
Di ujung sambungan lokal, filezilla Server mencoba untuk menggunakan port yang kurang dari koneksi kontrol (misalnya port 20 jika server mendengarkan pada port 21). Namun, hal ini tidak selalu mungkin - jadi jangan bergantung pada itu.
=== === Modus pasif
Konfigurasi server sangat mirip dengan konfigurasi klien untuk mode aktif. Dalam mode pasif, server membuka socket dan menunggu klien untuk menyambung ke.
Secara default, FileZilla Server meminta sistem operasi untuk alamat IP mesin, dan untuk sejumlah pelabuhan bebas. Konfigurasi ini hanya dapat bekerja jika Anda terhubung ke internet secara langsung tanpa router NAT dan jika Anda telah mengatur firewall Anda untuk membolehkan koneksi masuk pada semua port lebih besar dari 1024.
Jika Anda memiliki router NAT, Anda perlu memberitahu FileZilla Server alamat IP eksternal atau koneksi pasif mode tidak akan bekerja dengan klien di luar jaringan lokal Anda:
- Jika Anda memiliki alamat IP tetap eksternal, Anda dapat memasukkannya dalam dialog konfigurasi filezilla Server.
- Jika Anda memiliki alamat IP dinamis, Anda dapat membiarkan filezilla server mendapatkan alamat IP eksternal Anda dari situs web khusus secara otomatis. Kecuali versi FileZilla Server, tidak ada informasi akan diserahkan ke situs web itu.
Jika ragu, gunakan pilihan kedua.
Jika Anda tidak ingin mengizinkan koneksi masuk pada semua port, atau jika Anda memiliki router NAT, Anda perlu memberitahu Server filezilla untuk menggunakan berbagai port tertentu untuk koneksi mode pasif. Anda akan memiliki untuk membuka port dalam firewall Anda. Jika Anda memiliki router NAT, Anda perlu untuk maju port ini untuk mesin filezilla lokal Server diinstal pada. Tergantung pada model router Anda, Anda dapat maju berbagai port atau Anda perlu untuk maju semua port individual.
Port yang valid dapat 1-65535, namun port kurang dari 1024 dicadangkan untuk protokol lain. Cara terbaik adalah untuk memilih port> = 50000 untuk FTP mode pasif. Karena sifat TCP (protokol transport yang mendasari), port tidak dapat digunakan kembali segera setelah masing-masing sambungan. Oleh karena itu berbagai port tidak boleh terlalu kecil atau transfer beberapa file kecil bisa gagal. Berbagai port 50 harus cukup dalam kebanyakan kasus.
[[Gambar: Serversettings_passive.png | Screenshot dari dialog seting Server filezilla menampilkan halaman konfigurasi untuk mode pasif].] </ Div>
Troubleshooting
The following are a few troubleshooting suggestions:
Unfortunately, many personal firewalls and consumer routers are flawed or in some cases, even actively sabotage FTP (e.g. SMC Barricade V1.2). First of all, as with all software, you should keep everything updated. This includes the firewall software as well as the firmware version of your router.
If that does not help, you might want to try to uninstall your firewall to see what happens. Simply disabling your firewall might not work, as some firewalls cannot be fully disabled.
If possible, try to connect directly to the internet without a router.
If you are trying to setup a server and it works fine within your LAN but is not reachable from the outside, try changing the listening port. Some ISPs don't like their customers to host servers and they may block ports with numbers under 1024.
Another issue may occur if you are hosting an FTP server on default port 21. There might be a firewall at the ISP side of your connection which can do odd things like changing the port for PASV commands. Try using another non-default port for your FTP server.
If you encounter "cannot open data connection" on a random basis (i.e., the ftp client can connect to the ftp server without problem for many connections until it encounters this problem), one possible reason may be that your client PC anti-virus software is configured to block outgoing connections on certain ranges of ports. When your ftp connections are running in pasv mode, the client-side outgoing ports are selected randomly and some of those randomly selected ports may be blocked by the anti-virus software. To identify this problem, read your anti-virus log on the client. In general, any software that can block certain ranges of outgoing ports (such as PC firewalls) can cause similar FTP grief.
Timeouts on large files
If you can transfer small files without any issues, but transfers of larger files end with a timeout, a broken router and/or firewall exists between the client and the server and is causing a problem.
As mentioned above, FTP uses two TCP connections: a control connection to submit commands and receive replies, and a data connection for actual file transfers. It is the nature of FTP that during a transfer the control connection stays completely idle.
The TCP specifications do not set a limit on the amount of time a connection can stay idle. Unless explicitly closed, a connection is assumed to remain alive indefinitely. However, many routers and firewalls automatically close idle connections after a certain period of time. Worse, they often don't notify the user, but just silently drop the connection. For FTP, this means that during a long transfer the control connection can get dropped because it is detected as idle, but neither client nor server are notified. So when all data has been transferred, the server assumes the control connection is alive and it sends the transfer confirmation reply. Likewise, the client thinks the control connection is alive and it waits for the reply from the server. But since the control connection got dropped without notification, the reply never arrives and eventually the connection will timeout.
In an attempt to solve this problem, the TCP specifications include a way to send keep-alive packets on otherwise idle TCP connections, to tell all involved parties that the connection is still alive and needed. However, the TCP specifications also make it very clear that these keep-alive packets should not be sent more often than once every two hours. Therefore, with added tolerance for network latency, connections can stay idle for up to 2 hours and 4 minutes.
However, many routers and firewalls drop connections that have been idle for less than 2 hours and 4 minutes. This violates the TCP specifications (RFC 5382 makes this especially clear). In other words, all routers and firewalls that are dropping idle connections too early cannot be used for long FTP transfers. Unfortunately manufacturers of consumer-grade router and firewall vendors do not care about specifications ... all they care about is getting your money (and only deliver barely working lowest quality junk).
To solve this problem, you need to uninstall affected firewalls and replace faulty routers with better-quality ones.
Setting up FileZilla Server with Windows Firewall
If you are having problems with setting up FileZilla Server to run behind Windows Firewall (specifically, it fails on "List" and the client receives a "Failed to receive directory listing" error), you must add the FileZilla Server application to Windows Firewall's Exceptions list. To do this, follow these steps:
- Open Windows Firewall under Control Panel.
- If using Vista, click "Change Settings"
- Select the "Exceptions" tab.
- Click "Add program..."
- Do NOT select "FileZilla Server Interface" from the list, instead click on "Browse..."
- Locate the directory you installed FileZilla Server to (normally "C:\Program Files\FileZilla Server\")
- Double click or select "FileZilla server.exe" and press open (Once again, NOT "FileZilla Server Interface.exe")
- Select "FileZilla server.exe" from the list and click "Ok"
- Verify that "FileZilla server.exe" is added to the exceptions list and that it has a check mark in the box next to it
- Press "Ok" to close the window
Passive mode should now work. If you are still having problems connecting (from another computer or outside the network), check your router settings or try to add the port number in the Windows Firewall settings located in the Exceptions tab.
See the Microsoft kb article 931130 about running FileZilla with the "Routing and Remote Access" or the "Application Layer Gateway" service enabled. http://support.microsoft.com/kb/931130