地址:https://github.com/fatedier/frp/
文档: https://github.com/fatedier/frp/blob/master/README_zh.md
三级域名例子
服务端端配置 frps.ini
假如服务端的IP地址为:121.35.99.12 token验证可去掉
修改frps.ini文件
[common]
bind_port = 7000
vhost_http_port = 9988 #由于80端口已暂用这里我们使用Nginx做端口映射到80端口来做微信开发的调试,如何映射后文会介绍
#连接池
max_pool_count = 5
#token验证
privilege_token = javen
#自定义二级域名
subdomain_host = javen.abc.com
#控制面板
dashboard_port = 9999
dashboard_user = javen
dashboard_pwd = javen
#日志
log_file = ./frps.log
log_level = info
log_max_days = 3
启动服务端
./frps -c frps.ini
客户端配置 frpc.ini
修改frpc.ini文件
[common]
server_addr = 121.35.99.12 # 服务器IP
server_port = 7000 # 服务器bind_port
privilege_token = javen
[web]
type = http
local_port = 8080 # 映射到本地的8080端口
subdomain = mac
启动客户端
sudo ./frpc -c frpc.ini
4、自定义二级域名
在多人同时使用一个 frps 时,通过自定义二级域名的方式来使用会更加方便。
通过在 frps 的配置文件中配置 subdomain_host,就可以启用该特性。之后在 frpc 的 http、https 类型的代理中可以不配置 custom_domains,而是配置一个 subdomain 参数。
只需要将 *.{subdomain_host} 解析到 frps 所在服务器。之后用户可以通过 subdomain 自行指定自己的 web 服务所需要使用的二级域名,通过 {subdomain}.{subdomain_host} 来访问自己的 web 服务。
**
假如域名为:abc.com
去域名的控制面板添加解析 *.javen
到 121.35.99.12
**
5、客户端访问
http://mac.javen.abc.com:9988/user
服务端配置了vhost_http_port = 9988 映射到本地的,客户端配置 local_port = 8080
http://localhost:8080/user
6、Dashboard
通过浏览器查看 frp 的状态以及代理统计信息展示。
http://121.35.99.12:9999
登录的用户名以及密码为服务端配置的
dashboard_user = javen
dashboard_pwd = javen
7、端口映射
这里我们使用Nginx将9988端口映射到80端口供微信开发调试使用
server {
listen 80;
server_name *.javen.abc.com;
access_log /home/nginxlog/frp_access.log;
location / {
proxy_redirect off;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $remote_addr;
client_max_body_size 20m;
client_body_buffer_size 128k;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 900;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_pass http://127.0.0.1:9988/;
}
}
二级域名例子
服务端配置
[common]
bind_port = 7000
vhost_http_port = 8888 #外网访问端口
客户端配置
[common]
server_addr = 121.42.11.33
server_port = 7000
[web]
type = http
local_port = 8080 #映射到本地端口
custom_domains = test.songboy.net #自定义域名
linux自动启动
# 移动
cd /etc/systemd/system
# 创建文件
vim frps.service
添加以下内容
[Unit]
Description=frps
After=syslog.target network.target
Wants=network.target
[Service]
Type=simple
ExecStart=/home/imba97/frps -c /home/imba97/frps.ini
Restart=always
RestartSec=1min
[Install]
WantedBy=multi-user.target
使用以下命令启动、停止、重启
service frps start
service frps stop
service frps restart
使用以下命令添加开机启动
systemctl enable frps.service
后台运行frp服务
服务端: nohup ./frps -c frps.ini >/dev/null 2>&1 &
客户端: nohup ./frpc -c frpc.ini >/dev/null 2>&1 &
说明:>/dev/null 2>&1 &,表示丢弃。