frp建立ftp穿透
由于ftp不止使用了1个端口,包括连接时候使用的控制端口和数据传输时候使用的数据端口. 并且ftp协议本身会发送ip地址和数据端口号(而不是用frp服务器的端口号),所以frp配置有些与众不同.
要点:
- ftp服务器使用Passive被动模式, 并且配置被动模式端口范围
- frp端口映射中, ftp控制端口数字可以和frp服务器映射端口不一致(如一个使用2121, 另一个使用3131), 但ftp数据端口必须和frp服务器映射端口数字一致(如使用3333就必须都是用3333).
- 非必须: ftp服务器配置net转换地址. 这个似乎在filezilla客户端上不是必须的, filezilla会自动对NAT前的地址替换为服务器地址.
ftp服务器配置命令, 以pyftplib为例(如果需要服务器可写,再加上选项-w
):
python -m pyftpdlib -r 3333-3334
frpc.ini配置:
[ftp_data1]
type =tcp
local_ip = 127.0.0.1
local_port = 3333
remote_port = 3333
[ftp_data2]
type =tcp
local_ip = 127.0.0.1
local_port = 3334
remote_port = 3334
[ftp_control]
type =tcp
local_ip = 127.0.0.1
local_port = 2121
remote_port = 3131