一、什么是FRP
frp 是一個(gè)可用于內(nèi)網(wǎng)穿透的高性能的反向代理應(yīng)用,支持 tcp, udp, http, https 協(xié)議。主要他是一個(gè)開源的。
https://github.com/fatedier/frp
本篇文章目標(biāo):
1、自定義二級(jí)域名做本地端口映射
2、要求支持80端來做微信開發(fā)調(diào)試
3、能查看端口的連接狀態(tài)
二、使用案列
服務(wù)器端系統(tǒng): Ubuntu 16.04 64位
內(nèi)網(wǎng)端系統(tǒng):Windows 10 64位
第一步:下載frp
下載frp
第二步:配置服務(wù)器端frp的frps.ini
[common]
bind_port = 7000
#由于80端口已暫用這里我們使用Nginx做端口映射到80端口來做微信開發(fā)的調(diào)試,如何映射后文會(huì)介紹
vhost_http_port = 9988
#連接池
max_pool_count = 5
#token驗(yàn)證
privilege_token = javen
#自定義二級(jí)域名
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 請(qǐng)?jiān)诜?wù)器中的安全規(guī)則添加信任放行
第三步:配置內(nèi)網(wǎng)端frp的frpc.ini
假如服務(wù)端的公網(wǎng)IP地址為:121.35.99.12
[common]
# 服務(wù)器IP
server_addr = 121.35.99.12
# 服務(wù)器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
備注
自定義二級(jí)域名
假如域名為:abc.com
去域名的控制面板添加解析 *.javen 到 公網(wǎng)IP(121.35.99.12)
第四步:?jiǎn)?dòng) frpc
服務(wù)器端
./frps -c ./frps.ini
內(nèi)網(wǎng)端
使用powershell
./frpc -c ./frpc.ini
第五步:訪問
在瀏覽器訪問http://win.javen.abc.com:9988
實(shí)際上是映射到本地的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/;
}
}