frp外网穿透ftp服务

frp外网穿透ftp服务,第1张

FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。如果要用ftp外网穿透,需要使用被动模式。

被动模式(PASV)连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。
所以,在使用ftp的时候,不仅需要转发默认的21端口,还需要转发数据端口。

考虑到frp转发的情况,所以数据端口最好是固定的,所以这里需要修改ftp服务器的配置,这里以vsftpd服务为例。修改 vsftpdconf 文件,固定被动模式端口范围

这里只开启了50000、50001、50002三个端口,意思就是同时只能有三个用户连接,如果需要更多用户可以配置更多的端口。

在frp的配置中,需要添加默认端口21和被动数据端口50000、50001、50002四个端口配置

[必须]标识头
[common]
是不可或缺的部分
[必须]服务器IP
bind_addr = 0000
0000为服务器全局所有IP可用,假如你的服务器有多个IP则可以这样做,或者填写为指定其中的一个服务器IP,支持IPV6
[必须]FRP通讯端口
bind_port = 7000
用于和客户端内网穿透传输数据的端口,可自定义。
用于KCP协议UDP通讯端口
kcp_bind_port = 7000
也可以和“bind_port”共用同一端口,如果没有设置,则kcp在frps中被禁用,可自定义。
UDP通讯端口
bind_udp_port = 7001
以帮助使UDP打洞穿透NAT,可自定义。
[必须]连接认证密钥-特权模式
privilege_token = > 如果你想支持>方法/步骤
安装FTP服务
开始--》管理工具--》服务器管理器
安装IIS/FTP角色
打开服务器管理器,找到添加角色,然后点击,d出添加角色对话框,选择下一步
选择Web服务器(IIS),然后选择FTP服务,直到安装完成。
在IIS中查看,如果能够右键创建FTP站点,则表明FTP服务安装成功
创建Windows用户名和密码,用于FTP使用。
开始--》管理工具--》服务器管理器,添加用户,如下图:本实例使用ftptest
在服务器磁盘上创建一个供FTP使用的文件夹,创建FTP站点,指定刚刚创建的用户FtpTest,赋予读写权限
步骤阅读
7
客户端测试。直接使用ftp://服务器ip地址:ftp端口,如图。d出输入用户名和密码的对话框表示配置成功,正确的输入用户名和密码后,即可对FTP文件进行相应权限的 *** 作。

Frp的TCP模式问题,这里主要存在2个问题。

试想一下,frp的tcp模式相当于你的设备直接向公网暴露了一个tcp端口。任何设备都可以尝试连接这个端口。这里就会有很大的安全风险。

我的所有请求都需要进行frp的服务器进行中转,这里势必会造成比较大的网络延时。以及耗掉服务器流量,这对我们的服务响应速度和经济价值会造成较大影响。

对于安全问题,frp的思路是,既然这些服务有可能被坏人攻击,那我们只要限制特定设备能够使用这个端口就好了。

那么问题来了,我怎么知道哪些设备是允许使用的呢?

服务端配置?那就又陷入了内网穿透的问题。

最简单的方法是使用密钥验证。这就是frp的Secret TCP(stcp)模式的思路。

如下图所示,frp客户端1需要暴露一个tcp端口。于是他在向服务端注册时,额外传了一个密钥。

所有其他设备期望访问这个端口,必须要先验证这个密钥。

这样一来,我们就需要在发起请求的设备上也配置一个frp客户端,通过这个客户端带着密钥发起请求。
# frpcini 配置:

[common]

# 你的frp服务器的公网ip

server_addr = xxxx

# 你的frp服务器的默认端口

server_port = 7000

[rdp]

type = stcp

# 只有 sk 一致的用户才能访问到此服务

sk = abcdefg

local_ip = 127001

# 远程桌面的本地端口号

local_port = 3389

# frpcini

[common]

# 你的frp服务器的公网ip

server_addr = xxxx

# 你的frp服务器的默认端口

server_port = 7000

[rdp_visitor]

type = stcp

# stcp 的访问者

role = visitor

# 要访问的 stcp 代理的名字

server_name = rdp

# 只有 sk 一致的用户才能访问到此服务

sk = abcdefg

# 绑定本地端口用于访问 远程桌面 服务

bind_addr = 127001

bind_port = 6000

此时,你在客户端2,使用127001:6000即可访问客户端1的远程服务。
思考一下,我们的frp服务器主要目的是为了解决两台设备相互识别的情况。在正式运行时,其实并不需要服务端做什么事情。

frp客户端就好比两个相亲的对象,frp服务端是媒婆。媒婆介绍完之后,就应该有相亲对象自己聊天了。

这个就是点对点模式(p2p)。在frp中,这个可以通过设置xtcp实现。

服务端:配置需要增加一个udp端口 7001,增加完之后就是如下

# frpsini

[common]

bind_port = 7000

bind_udp_port = 7001

# frpcini

[common]

# 你的frp服务器的公网ip

server_addr = xxxx

# 你的frp服务器的默认端口

server_port = 7000

[rdp]

type = xtcp

# 只有 sk 一致的用户才能访问到此服务

sk = abcdefg

local_ip = 127001

# 远程桌面的本地端口号

local_port = 3389

# frpcini

[common]

# 你的frp服务器的公网ip

server_addr = xxxx

# 你的frp服务器的默认端口

server_port = 7000

[rdp_visitor]

type = xtcp

# stcp 的访问者

role = visitor

# 要访问的 stcp 代理的名字

server_name = rdp

# 只有 sk 一致的用户才能访问到此服务

sk = abcdefg

# 绑定本地端口用于访问 远程桌面 服务

bind_addr = 127001

bind_port = 6000
此时,你在客户端2,使用同样的方式,以127001:6000即可访问客户端1的远程服务。

不过需要注意的是,目前frp的p2p服务还不完善,很多nat设备还是不能够穿透的。

此时大家还是需要切换回stcp来使用。

[TOC]

由于没有公网IP,无法远程连接家里的电脑,搜到了 frp 这个项目,尝试使用后发现效果不错,所以写出安装过程分享。
frp是一个反向代理工具,可以将流量转发到目标主机,包括TCP,UDP,>对于frp特殊网址的配置,首先要确定frp服务器的地址以及端口。然后,在服务器的配置文件中添加一个子域名映射,如“vpsmyservercom”,将其指向服务器的IP地址,使用特定端口提供外网访问服务,比如“8080”。最后,访问你设定的特殊网址,即可连接到服务器

1、前期准备:一个刷过梅林固件的路由、一个云服务器或者VPS

2、安装命令:wget --no-check-certificate >

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10620361.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存