frp是一个高性能的反向代理应用,用于将位于内网的服务通过代理暴露到公网。以下是其基本使用步骤:
准备工作
- 拥有一台具有公网IP的服务器,作为frp的服务端。
- 在内网中需要被穿透的设备上安装frp客户端。可从frp官方网站下载适合你操作系统的版本。
服务端配置(toml)
- 下载并解压frp服务端软件到服务器上的指定目录,如
/usr/local/frp
。 - 编辑服务端配置文件
frps.toml
,以下是一个基本的配置示例:
bindPort = 7000 # 服务端监听的端口,可自行修改
- 在服务器上启动frp服务端,执行
./frps -c frps.toml
命令。如果是Windows系统,则在解压目录下找到frps.exe
文件,在命令行中执行frps.exe -c frps.toml
。
客户端配置(toml)
- 下载并解压frp客户端软件到内网设备上的指定目录。
- 编辑客户端配置文件
frpc.toml
,示例配置如下:
serverAddr = "serverip"
serverPort = 7000
[[proxies]] #第一个代理地址
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 4001
remotePort = 6000
[[proxies]] #第二个代理地址
name = "test-tcp2"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8080
remotePort = 6001
上述配置表示将本地的SSH服务(默认端口22)通过frp映射到公网服务器的6000端口。你可以根据实际需求修改配置,以穿透不同的服务。例如,如果要穿透本地的Web服务,假设本地Web服务运行在80端口,只需将local_port
改为80,并根据需要设置remote_port
。
- 在内网设备上启动frp客户端,执行
./frpc -c frpc.toml
命令(Windows系统执行frpc.exe -c frpc.toml
)。
访问内网服务
客户端启动成功后,你就可以通过公网服务器的IP地址和配置的remote_port
来访问内网中的服务。例如,使用SSH客户端连接到your_server_ip:6000
,就可以访问到内网设备上的SSH服务。
以上是frp的基本使用方法,实际应用中可根据具体需求对配置进行调整和扩展。例如,配置HTTP或HTTPS协议的穿透、设置子域名访问等。同时,为了保证安全性,建议合理设置防火墙规则,限制对frp服务端和映射端口的访问。
使用ini文件配置
服务端:
[common]
bind_port = 7000 # 服务端监听的端口,可自行修改
token = your_token # 设置一个用于客户端和服务端认证的令牌,需替换为你自己的字符串
客户端,定义了2个穿透:
[common]
server_addr = your_server_ip # 替换为服务端的公网IP地址
server_port = 7000 # 与服务端配置中的bind_port一致
token = your_token # 与服务端配置中的token一致
[ssh] # 定义一个名为ssh的穿透规则,可自行命名
type = tcp # 协议类型为TCP
local_ip = 127.0.0.1 # 本地需要被穿透服务的IP地址
local_port = 22 # 本地服务的端口,这里以SSH服务为例
remote_port = 6000 # 公网访问的端口,可自行修改
[devices] # 定义一个名为devices的穿透规则,可自行命名
type = tcp # 协议类型为TCP
local_ip = 127.0.0.1 # 本地需要被穿透服务的IP地址
local_port = 4001 # 本地服务的端口,这里以SSH服务为例
remote_port = 6001 # 公网访问的端口,可自行修改