一台公网服务器,有自己的域名,有域名证书
安装frp内网穿透服务端和客户端可以参考这篇文章:frp内网穿透之实现内网linux主机访问
公网服务器(frp服务端所在的服务器)安装nginx(略)
假设对域名aaa.bbb.com
开通https访问,将aaa.bbb.com
指向到公网服务器
准备完毕后,接着进行下面的配置
登录服务器,前往frps安装目录
cd /usr/local/frp_0.27.0_linux_amd64/
打开配置文件
vim frps.ini
设置虚拟端口,新增如下内容:
vhost_http_port = 7171
保存退出,重启frp
systemctl restart frps
配置https证书,将pem,key两个证书文件放在/etc/nginx/ssl_files文件夹下,命名为server.pem
,server.key
创建nginx配置文件
cd /etc/nginx/conf.d/
新增一个conf文件(https_aaa.bbb.com.conf),输入如下配置:
# frp的接收https请求的反向代理
server {listen 443 ssl http2;listen [::]:443 ssl http2;# 访问的域名server_name aaa.bbb.com;# 配置https证书ssl_certificate "/etc/nginx/ssl_files/server.pem";ssl_certificate_key "/etc/nginx/ssl_files/server.key";ssl_session_cache shared:SSL:1m;ssl_session_timeout 10m;ssl_ciphers HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers on;location / {# 7171对应vhost_http_portproxy_pass http://127.0.0.1:7171;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 Upgrade $http_upgrade;proxy_set_header Connection "upgrade";# Expect for dorisproxy_set_header Expect $http_expect;proxy_connect_timeout 7d;proxy_send_timeout 7d;proxy_read_timeout 7d;}
}
其中aaa.bbb.com为需要开通https的域名
保存文件
检查Nginx配置是否正确:
nginx -t
出现success字样表示配置成功
重启nginx
nginx -s reload
假设将本地1.1.1.1开发服务器中的80端口绑定到aaa.bbb.com域名,即https://aaa.bbb.com → http://1.1.1.1:80
登录1.1.1.1服务器,安装frpc客户端
cd /usr/local/frp_0.27.0_linux_amd64/
vim frpc.ini
新增如下配置:
[http-aaa]
type = http
local_port = 80
custom_domains = aaa.bbb.com
保存,重启frpc
systemctl restart frpc
浏览器访问:https://aaa.bbb.com
进行验证