Nginx反向代理Frp内网穿透神器

内网穿透说起来也算不上什么高深的技术,随着近些年微信公众号、支付宝生活号、小程序等新形态应用的持续火热,处于内网开发环境外网无法访问一直困扰着不少开发者。如何将内网服务暴露给外网访问?早些年的国产代表作有花生壳(收费),Github上开源产品有Ngrok、Frp等,本篇主要介绍如何在Linux上使用Nginx反向代理Frp公用80端口。

安装Frps

1.出门右拐百度:Frp一键安装脚本

2.使用AppNode:强力推荐(目前免费)

优雅的使用AppNode可视化配置

AppNode是一款完全免费完全可视化的Linux运维控制面板,基于Go语言开发占用极低的内存消耗,极大的方便了我们使用Linux操作系统。

Frps服务器端配置

[common]
bind_port             = 65535
bind_addr             = 0.0.0.0
kcp_bind_port         = 65535
subdomain_host        = frp.xuchengen.cn
privilege_token       = !@xuchengen@!
privilege_allow_ports = 65000-65999
dashboard_port        = 65534
dashboard_user        = demo
dashboard_pwd         = demo
vhost_http_port      = 8080
max_pool_count        = 128
tcp_mux               = true

Nginx反向代理Frps服务

server {
    listen       80;
    server_name  *.frp.xuchengen.cn;

    location / {
        proxy_pass        http://127.0.0.1:8080;
        proxy_set_header  X-Real-IP $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header  Host $host:8080;
    
        location ~* \.(js|css|jpg|gif|png|bmp|swf)$ {
            expires  30d;
        }
    
        location ~* \.(zip|rar|jpg|gif|png|bmp|swf|flv)$ {
            valid_referers  none blocked server_names;
        }
    }
}