Rumah Operasi dan penyelenggaraan operasi dan penyelenggaraan linux ftp主动模式与被动模式——为什么连接不上FTP服务器

ftp主动模式与被动模式——为什么连接不上FTP服务器

Nov 21, 2020 pm 05:33 PM
ftp

ftp不同于一般的服务,该服务需要同时开启两个端口,一个端口是命令通道,另一个端口为数据传输通道。根据数据传输通道建立的不同,分为了主动模式和被动模式。这里,详细的讲述下主动模式的工作流程,以及碰到问题如何去解决。

主动模式流程

命令通道的建立。客户端会随机取出一个大于1024的端口与服务器端的21端口建立连接,当连接建立好的以后,客户端就可以通过该连接来对ftp服务执行命令,比如查询文件名、上传文件、下载文件等命令都是通过该通道来执行的。

通知服务端使用主动模式。21端口只是用来进行命令的执行,对于真正需要文件的传输则需要另起端口来操作。客户端会随机再开启一个端口用于文件传输,然后通过21端口告知ftp服务器两个信息,客户端用户文件传输的端口,采用主动模式进行文件传输。

ftp服务器主动向客户端建立连接。当ftp服务端知道了两个信息后,会主动的通过20端口与客户端建立连接。该连接建立好之后,文件就可以通过该连接进行传输。

主动模式可能遇到的问题

主动模式下连接不了ftp服务器,可能有以下几种情况:

  • 服务端端口未启动

  • 服务端防火墙

  • 客户端所在局域网有nat转换

主动模式下,一般开启的端口为21(命令通道)、20(文件传输通道)。两个端口缺一不可。另外防火墙也需要放行这两个端口。针对客户端主机,可以通过telnet来测试这两个端口是否开放。

对于端口及防火墙的问题比较容易解决,而NAT转换问题就很难解决了。我们再来看nat转换是如何导致问题的出现的,对于命令通道的建立因为是由客户端发起的,所以该通道可以成功建立。但是在由服务端主动向客户端建立数据通道时,因为服务端知道的是NAT的IP,并不是客户端的IP。因此服务端会以20端口向NAT的其中一个端口(例如1042端口)发送主动连接的请求。但是NAT并没有开启那个端口,所以主动连接建立失败。那么,如何解决这个问题呢?使用被动模式即可。

被动模式流程

命令通道的建立。这个阶段和主动模式一样。

客户端发出PASV的链接请求。客户端通过命令通道,向服务端发送PASV被动模式的请求,并等待服务端的响应。

服务端启动数据端口,并告知客户端。当服务端收到客户端的PASV请求后,那么就会启动一个端口用作数据传输。这个端口可以是随机的(1024~65535)、也可以指定。然后,通过命令通道告知客户端。

客户端启动数据端口,与服务端建立连接。客户端收到了服务端的信息,知道了服务端用于数据传输的端口,这个时候客户端就会随机开启一个大于1024的端口,然后通过这个端口与服务端建立连接。

更多相关技术文章,请访问linux系统教程栏目!

Atas ialah kandungan terperinci ftp主动模式与被动模式——为什么连接不上FTP服务器. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menyediakan pelayan ftp proksi terbalik nginx Bagaimana untuk menyediakan pelayan ftp proksi terbalik nginx May 17, 2023 am 09:31 AM

1. Pasang nginx 2. Pasang vsftpd 3. Ubah suai fail konfigurasi nginx nginx.conf 3.1 Tambah pengguna ftp userftpuser dalam baris pertama 3.2 Konfigurasi pelayan laluan yang berkaitan { listen80; images{ root /home/ftpuser; #Laluan mutlak folder ftp server indexftpuser proksi #Tetapkan halaman selamat datang

Menggunakan FTP dalam Go: Panduan Lengkap Menggunakan FTP dalam Go: Panduan Lengkap Jun 17, 2023 pm 06:31 PM

Dengan perkembangan pesat Internet, File Transfer Protocol (FTP) sentiasa menjadi kaedah pemindahan fail yang penting. Dalam bahasa Go, menggunakan FTP untuk memindahkan fail mungkin memerlukan banyak pembangun. Namun, mungkin ramai yang tidak tahu cara menggunakan FTP dalam bahasa Go. Dalam artikel ini, kami akan meneroka cara menggunakan FTP dalam bahasa Go, daripada menyambung ke pelayan FTP kepada pemindahan fail dan cara mengendalikan ralat dan pengecualian. Cipta sambungan FTP Dalam bahasa Go, kita boleh menggunakan pakej "bersih" standard untuk menyambung ke FTP

PHP dan FTP: merealisasikan perkongsian fail antara pelbagai jabatan dalam pembangunan laman web PHP dan FTP: merealisasikan perkongsian fail antara pelbagai jabatan dalam pembangunan laman web Jul 28, 2023 pm 01:01 PM

PHP dan FTP: Mencapai perkongsian fail antara pelbagai jabatan dalam pembangunan laman web Dengan perkembangan Internet, semakin banyak syarikat mula menggunakan platform laman web untuk pengeluaran maklumat dan promosi perniagaan. Namun, masalah yang timbul ialah bagaimana untuk mencapai perkongsian fail dan kerjasama antara pelbagai jabatan. Dalam kes ini, PHP dan FTP menjadi salah satu penyelesaian yang paling biasa digunakan. Artikel ini akan memperkenalkan cara menggunakan PHP dan FTP untuk mencapai perkongsian fail antara pelbagai jabatan dalam pembangunan laman web. 1. Pengenalan kepada FTP FTP (FileTransferPr

Apakah arahan ftp di bawah linux? Apakah arahan ftp di bawah linux? Mar 21, 2023 am 09:59 AM

Perintah ftp di bawah Linux termasuk: 1. perintah ftp; 3. perintah putuskan sambungan; perintah ;10. perintah rhelp; 11. perintah ascii

Bagaimana untuk membandingkan direktori dan fail pada pelayan FTP melalui PHP Bagaimana untuk membandingkan direktori dan fail pada pelayan FTP melalui PHP Jul 28, 2023 pm 02:09 PM

Bagaimana untuk membandingkan direktori dan fail pada pelayan FTP melalui PHP Dalam pembangunan web, kadangkala kita perlu membandingkan fail tempatan dengan fail pada pelayan FTP untuk memastikan konsistensi antara kedua-duanya. PHP menyediakan beberapa fungsi dan kelas untuk melaksanakan fungsi ini. Artikel ini akan memperkenalkan cara menggunakan PHP untuk membandingkan direktori dan fail pada pelayan FTP, dan memberikan contoh kod yang berkaitan. Pertama, kita perlu menyambung ke pelayan FTP. PHP menyediakan fungsi ftp_connect() untuk mewujudkan pelayan FTP

Apakah maksud linux ftp 530? Apakah maksud linux ftp 530? Mar 14, 2023 am 10:16 AM

linux ftp530 bermaksud ralat log masuk linux ftp 530. Penyelesaiannya ialah: 1. Semak "cat /etc/shells" untuk melihat sama ada direktori utama pengguna anda dan shell log masuk. Jika tidak, tambahkan "/var /log /secure" dan tetapkan semula masa tamat tempoh kata laluan.

Bagaimana untuk melaksanakan bar kemajuan muat naik fail FTP menggunakan PHP Bagaimana untuk melaksanakan bar kemajuan muat naik fail FTP menggunakan PHP Jul 30, 2023 pm 06:51 PM

Cara menggunakan PHP untuk melaksanakan bar kemajuan muat naik fail FTP 1. Pengenalan latar belakang Dalam pembangunan laman web, muat naik fail adalah fungsi biasa. Untuk muat naik fail besar, untuk meningkatkan pengalaman pengguna, kami selalunya perlu memaparkan bar kemajuan muat naik kepada pengguna untuk memberitahu pengguna proses muat naik fail. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan fungsi bar kemajuan muat naik fail FTP. 2. Idea asas untuk melaksanakan bar kemajuan muat naik fail FTP Bar kemajuan muat naik fail FTP biasanya dikira dengan mengira saiz fail yang dimuat naik dan saiz fail yang dimuat naik.

Cara menggunakan FTP untuk memuat naik fail dalam Python Cara menggunakan FTP untuk memuat naik fail dalam Python Apr 29, 2023 am 09:49 AM

Pengenalan kepada FTP FTP ialah File Transfer Protocol (FileTransferProtocol), yang merupakan protokol standard untuk pemindahan fail pada rangkaian. Pelanggan FTP boleh memuat naik fail dari tempatan ke pelayan atau memuat turun dari pelayan ke tempatan. Modul ftplib Python menyediakan perpustakaan standard ftplib untuk melaksanakan fungsi klien FTP dalam Python. Menggunakan ftplib, kami boleh menyambung ke pelayan FTP dan melakukan pelbagai operasi FTP, seperti memuat naik dan memuat turun fail, dsb. Penjelasan kod Berikut ialah contoh kod untuk memuat naik fail melalui FTP menggunakan Python: fromftplibimportFTPimportargparsed

See all articles