1.ftp(file transfer protocol)
ftp是基於tcp的服務,使用兩個埠,命令埠和資料埠,命令埠是21,資料埠在主動模式下為20,在被動模式隨機分配。
ftp協議有主動模式和被動模式兩種。
主動模式
伺服器端,需要安裝vsftpd來完成ftp的設定
sudo apt-get install vsftpd
sudo /etc/init.d/vsftpd restart
客戶端,用python裡的ftplib庫
from ftplib import ftp
ftp = ftp()
ftp.connect('127.0.0.1', 21)
ftp.login('username', 'passwd')
ftp.quit()
被動模式
伺服器端,修改vsftpd.conf
sudo vim /etc/vsftpd.conf
pasv_enable=yes # 開啟被動模式
pasv_min_port=10004 # 可以選擇埠範圍
pasv_max_port=10004
sudo /etc/init.d/vsftpd restart
客戶端
from ftplib import ftp
ftp = ftp()
ftp.set_pasv(1) #被動模式
ftp.connect('127.0.0.1', 21)
ftp.login('username', 'passwd')
ftp.quit()
2.ftps相當於加密的ftp
伺服器端,修改vsftpd.conf
sudo vim /etc/vsftpd.conf
ssl_enable=yes
require_ssl_reuse=no
force_local_data_ssl=yes
force_local_logins_ssl=yes
ssl_tlsv1=yes
ssl_sslv2=no
ssl_sslv3=no
sudo /etc/init.d/vsftpd restart
客戶端
from ftplib import ftp_tls
ftp = ftp_tls()
ftp.connect('127.0.0.1', 21)
ftp.login('username', 'passwd')
ftp.prot_p()
ftp.quit()
3.frp內網穿透ftp內網穿透需要採用被動模式,伺服器用於資料傳輸的隨機埠需要用pasv_max_port』 和 『pasv_min_port』 設定範圍
伺服器端,修改vsftpd.conf
sudo vim /etc/vsftpd.conf
pasv_enable=yes
pasv_min_port=10004
pasv_max_port=10004
pasv_address=公網ip
sudo /etc/init.d/vsftpd restart
修改frpc.ini
[ftp21]
type = tcp
local_ip = 127.0.0.1
local_port = 21
remote_port = 10003
[ftpdata]
type = tcp
local_ip = 127.0.0.1
local_port = 10004
remote_port = 10004
TCP協議接收與傳送資料
tcp 建立連線通道 資料無限制 速度慢可靠 tcp協議傳送資料 1 建立傳送端的socket物件 這一步如果成功,就說明連線已經建立成功了。2 獲取輸出流,寫資料 3 釋放資源 public static void main string args throws ioexception tcp協議...
協議傳送流程
tcp sendmsg tcp write xmit tcp mtu probe palyload checksum tcp transmit skb ip queue xmit sk dst check ipv4 dst check rt is expired 當路由資訊有變化時,會通過rt ca...
檔案傳送協議
檔案傳送協議ftp是網際網路上使用得最廣泛的檔案傳送協議。ftp遮蔽了各計算機系統的細節,因而適合於在異構網路中任意計算機之間傳送檔案。ftp 基於tcp tftp 簡單檔案傳送協議,基於udp 檔案傳送協議ftp只提供檔案傳送的一些基本的服務,它使用tcp可靠的運輸服務。ftp的主要功能樹減少或消...