frp(Fast Reverse Proxy)是一款高性能的反向代理应用,支持TCP、UDP、HTTP、HTTPS等多种协议,通过内网穿透技术,可以将内网服务安全、便捷地暴露到公网上,本文将详细介绍如何在拥有公网IP的服务器上安装和配置frp服务端,并结合Nginx实现多子域名转发服务,特别是二级域名的配置和使用。
一、安装并配置frp服务端
1. 下载并安装frp
在具有公网IP的服务器上,首先下载frp官方最新版本的二进制文件,可以使用以下命令进行下载:
wget https://github.com/fatedier/frp/releases/download/v0.61.0/frp_0.61.0_linux_amd64.tar.gz
如果下载失败,可以尝试使用镜像地址:
wget https://mirrors.bfsu.edu.cn/frp/releases/download/v0.61.0/frp_0.61.0_linux_amd64.tar.gz
下载完成后,解压文件并将其移动到指定目录:
mkdir -p /bin/frp tar -xvf frp_0.61.0_linux_amd64.tar.gz -C /bin/frp
2. 创建systemctl服务
为了方便管理frp服务端的启动和停止,可以创建一个systemctl服务:
nano /lib/systemd/system/frps.service
在文件中添加以下内容:
[Unit] Description=frps service After=network.target syslog.target Wants=network.target [Service] Type=simple ExecStart=/bin/frp/frp_0.61.0_linux_amd64/frps -c /bin/frp/frp_0.61.0_linux_amd64/frps.toml [Install] WantedBy=multi-user.target
保存并退出编辑器,然后启动并启用frp服务:
sudo systemctl start frps sudo systemctl enable frps
3. 配置服务端
编辑frp服务端的配置文件frps.toml
:
bindAddr = "0.0.0.0" bindPort = 7000 subdomainHost = "frp.xxxxxx.xxx" vhostHTTPPort = 7000 vhostHTTPSPort = 7000 auth.method = "token" auth.token = "xxxxxx" webServer.addr = "0.0.0.0" webServer.port = 7500 webServer.user = "xxxxx" webServer.password = "xxxxxxxx"
subdomainHost
用于指定二级域名的主机名,例如frp.example.com
,确保将*.frp.example.com
解析到服务器的公网IP地址。
4. 启动与管理frp服务端
启动frp服务端:
sudo systemctl start frps
查看日志:
sudo systemctl status frps
重启服务:
sudo systemctl restart frps
停止服务:
sudo systemctl stop frps
二、申请并安装SSL证书
为了实现HTTPS访问,需要为域名申请SSL证书,这里以Let's Encrypt为例,申请泛域名及根域名证书:
acme.sh --issue --dns dns_ali -d frp.xxxxxx.xxx -d '*.frp.xxxxxx.xx'
安装证书:
acme.sh --install-cert -d frp.xxxxxx.xxx --key-file /etc/nginx/ssl/frp.xxxxxx.xxx/key.pem --fullchain-file /etc/nginx/ssl/frp.xxxxxx.xxx/fullchain.pem --reloadcmd "nginx -s reload"
三、配置SSL相关设置
编辑Nginx的SSL参数配置文件:
nano etc/nginx/snippets/ssl-params.conf
添加以下内容:
ssl_session_cache shared:SSL:10m; ssl_session_timeout 60m; ssl_session_tickets on; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.4.4 8.8.8.8 valid=300s; resolver_timeout 10s; ssl_prefer_server_ciphers on;
四、配置Nginx反向代理frp
编辑Nginx的配置文件,添加反向代理规则:
nano /etc/nginx/conf.d/default.conf
添加以下内容:
server { listen 80; server_name *.frp.xxxxxx.xxx; location / { proxy_pass http://127.0.0.1:7000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
保存并退出编辑器,然后重新加载Nginx配置:
nginx -s reload
五、配置frpc客户端
在本地电脑上下载并解压frp客户端,编辑frpc.ini
配置文件:
[common] server_addr = frp.xxxxxx.xxx server_port = 7000 token = xxxxxx [web] type = http local_ip = 127.0.0.1 local_port = 8080 custom_domains = subdomain.frp.xxxxxx.xxx
启动frp客户端:
frpc -c frpc.ini
Q1: 如何更改frp服务的监听端口?
A1: 可以在frps.toml
配置文件中修改bindPort
的值,例如将bindPort = 7000
改为bindPort = 8080
,然后重新加载frp服务端配置即可。
Q2: 如果遇到SSL证书无法正常申请的问题,怎么办?
A2: 确保DNS解析正常,并且检查Let's Encrypt的ACME挑战响应是否正常,可以尝试更换DNS服务商或者使用其他CA签发的证书。
以上内容就是解答有关“frps二级域名”的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/751184.html