frp内网穿透的安装和使用(亲测)

微信公众号开发需要访问公网地址,每次开发的代码需要部署到公网上才能看到效果,不便于调试。于是就有了内网穿透。就是可以通过公网域名访问内网本地服务,这样就可以随时在本地调试程序了。 

首先,到这里下载最新版本的frp

https://github.com/fatedier/frp/releases

我的服务端(公网)是CentOs系统的,所以选择下载frp_0.20.0_linux_amd64.tar.gz

我的客户端(本地)是Win7系统(64位)的,所以选择下载frp_0.20.0_windows_amd64.zip

分别在linu系统和windows系统解压duiy对应的文件。

在linux上配置frps.ini如下:

[common]
bind_port = 7000
vhost_http_port = 8888
log_file = ./frps.log
token = sd@89Qi

启动脚本:

./frps -c ./frps.ini &

在Windows系统上配置frpc.ini如下:

[common]
server_addr = 140.143.233.182
server_port = 7000
token = sd@89Qi


[web]
type = http
local_port = 8082
custom_domains = sub.xxx.com #你自己的公网可访问域名
#用户访问时会要求输入用户名和密码
#http_user = admin
#http_pwd = 123456
 

启动脚本:

frpc.exe -c frpc.ini

把你本地的8082端口服务跑起来,比如我跑的是java web服务,然后在浏览器里访问http://sub.xxx.com:8888,发现访问到你本地的服务了。

如果不想带端口,可以在linux的frps.ini中配置vhost_http_port = 80

如果你的linx上有nginx,只需在nginx.conf里面配置映射到8888端口即可。

upstream backend_tomcat_local {
    server 127.0.0.1:8888
    }

server {
        listen       80;
        server_name  sub.xxx.com;
        charset UTF-8;

        location / {
            
        proxy_pass http://backend_tomcat_local;
        #rewrite ^(.*)$  https://$host$1 permanent;
        proxy_redirect off;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        }

    
     }
 

server {
        listen       443 ssl;
        server_name  sub.xxx.com;

        ssl_certificate      /home/cert/certificate.crt;
        ssl_certificate_key  /home/cert/private.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

    

    location / {
            
        proxy_pass http://backend_tomcat_local;
        #rewrite ^(.*)$  https://$host$1 permanent;
        proxy_redirect off;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme; #用于判断客户端和nginx之间使用的协议
        }

    }

重载nginx服务,访问http://sub.xxx.com试试,应该可以了。我的nginx有时候没生效,就再次重载一下./nginx -s reload

附官方文档:https://github.com/fatedier/frp/blob/master/README_zh.md

猜你喜欢

转载自blog.csdn.net/keketrtr/article/details/81170563