外网 访问内网服务器。
通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:
frp github | bilibili 视频教程 | frp中文文档 | frp下载地址 | 官方示例
移步到官网 -> frp中文文档
frp需要配置两端,客户端和服务端,服务端是具有公网ip的服务器,客户端是内网中的服务器。
根据操作系统选择对应的版本。
目录介绍:frpc前缀的文件是内网服务需要的;frps前缀的文件是公网IP需要的。
可以查看官网示例,这里也简单的做一些介绍。
frps.ini
文件[common]
bind_port = 7000
参数描述:
frpc.ini
文件按需求进行配置信息,除基础信息配置common外,其他的根据自己需求进行摘选(每一个标签都是一个独立的模块)。
例子:
[common]
server_addr = ********
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
基础配置参数描述:
server_addr
表示公网服务器的IP/域名。[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
参数描述:
local_ip
和 local_port
配置为本地需要暴露到公网的服务地址和端口。remote_port
表示在 frp 服务端监听的端口,访问此端口的流量将会被转发到本地服务对应的端口。配置web服务
[web]
type = tcp
local_ip = 127.0.0.1
local_port = 9002
remote_port = 9002
[web2]
type = tcp
local_ip = 127.0.0.1
local_port = 9101
remote_port = 9101
参数描述:
可支持多个web服务。
local_ip
和 local_port
配置为本地需要暴露到公网的服务地址和端口。remote_port
表示在 frp 服务端监听的端口,访问此端口的流量将会被转发到本地服务对应的端口。先通过 ./frps -c ./frps.ini
启动服务端,再通过 ./frpc -c ./frpc.ini
启动客户端。如果需要在后台长期运行,建议结合其他工具使用,例如 systemd
和 supervisor
。
systemctl来控制启动
以服务端为例子:
sudo vim /lib/systemd/system/frps.service
在frps.service里写入以下内容
[Unit]
Description=fraps service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/your/path/frps -c /your/path/frps.ini
[Install]
WantedBy=multi-user.target
然后就启动frps
sudo systemctl start frps
再打开自启动
sudo systemctl enable frps
配置相关信息
不同系统,使用不同,详情需要查看官方文档。
Mac 版本
./sunny clientid 隧道id