开发微信小程序,如果后台服务在本机,手机真机调试无法连通本机服务,需要通过内外网穿透访问。
网上教程穿透http的多,穿透https的不容易找,没有一个可以直接参照成功的。以下是本人经多方尝试后的实现步骤:
一、服务器安装frps:
cd /usr/local
wget https://github.com/fatedier/frp/releases/download/v0.47.0/frp_0.47.0_linux_amd64.tar.gz
tar zxf frp_0.47.0_linux_amd64.tar.gz
mv frp_0.47.0_linux_amd64 /usr/local/frp
二、配置frps.ini:
[common]
bind_port = 7000
vhost_http_port = 2080
vhost_https_port = 2443
subdomain_host = freedeman.top
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = XXX
log_file = /usr/local/frp/frps.log
log_level = info
log_max_days = 3
三、申请二级域名和ssl证书:
例如腾讯云上申请testfrp.freedeman.top
四、nginx反向代理:
server {
listen 443 ssl;
server_name testfrp.freedeman.top;
ssl_certificate /etc/nginx/conf.d/cert/testfrp.freedeman.top_bundle.crt;
ssl_certificate_key /etc/nginx/conf.d/cert/testfrp.freedeman.top.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECC-ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
proxy_pass https://testfrp.freedeman.top:2443; #要点是要用域名,不是127.0.0.1,要不然外网设备只能带2443端口访问
proxy_ssl_server_name on;
proxy_set_header Host $http_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;
}
}
五、安装windows客户端frpc,并配置frpc.ini:
[common]
server_addr = xx.xx.xx.xx #公网服务器ip
server_port = 7000
[https]
type = https
local_ip = 127.0.0.1
local_port = 12345 #本地https的端口号
remote_port = 2443
subdomain = testfrp
#custom_domains = testfrp.freedeman.top
#use_encryption = true
#use_compression = true
[http]
type = http
local_ip = 127.0.0.1
local_port = 80
remote_port = 2080
subdomain = testfrp
#custom_domains = testfrp.freedeman.top