FTP FTPS frp(傳送協議與內網穿透)

2021-09-01 15:17:08 字數 2313 閱讀 1222

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的主要功能樹減少或消...