一、什么是FRP
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。主要他是一个开源的。
https://github.com/fatedier/frp
本篇文章目标:
1、自定义二级域名做本地端口映射
2、要求支持80端来做微信开发调试
3、能查看端口的连接状态
二、使用案列
服务器端系统: Ubuntu 16.04 64位
内网端系统:Windows 10 64位
第一步:下载frp
第二步:配置服务器端frp的frps.ini
[common]
bind_port = 7000
#由于80端口已暂用这里我们使用Nginx做端口映射到80端口来做微信开发的调试,如何映射后文会介绍
vhost_http_port = 9988
#连接池
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
备注:所涉及端口,如7000,9988,9999 请在服务器中的安全规则添加信任放行
第三步:配置内网端frp的frpc.ini
假如服务端的公网IP地址为:121.35.99.12
[common]
# 服务器IP
server_addr = 121.35.99.12
# 服务器bind_port
server_port = 7000
privilege_token = javen
[web]
type = http
# 映射到本地的8080端口
local_port = 8080
subdomain = win
# 如果不使用SSH可以将其注释掉
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
备注
自定义二级域名
假如域名为:abc.com
去域名的控制面板添加解析 *.javen 到 公网IP(121.35.99.12)
第四步:启动 frpc
服务器端
./frps -c ./frps.ini
内网端
使用powershell
./frpc -c ./frpc.ini
第五步:访问
在浏览器访问http://win.javen.abc.com:9988
实际上是映射到本地的http://localhost:8080
备注:Nginx端口映射
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/;
}
}