【FRP】Frp内网穿透 + Nginx域名无端口访问(一)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【FRP】Frp内网穿透 + Nginx域名无端口访问(一),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4663字,纯文字阅读大概需要7分钟。
内容图文
![【FRP】Frp内网穿透 + Nginx域名无端口访问(一)](/upload/InfoBanner/zyjiaocheng/927/24a1db42c6b644a1b7db94b35b1dbc20.jpg)
Frp + Nginx 内网穿透
介绍
通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:
- 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
- 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
- 代理组间的负载均衡。
- 端口复用,多个服务通过同一个服务端端口暴露。
- 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理* 等),便于独立使用 frp 客户端完成某些工作。
- 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
- 服务端和客户端 UI 页面。
Frp项目及下载
GitHub项目:https://github.com/fatedier/frp
下载连接:https://github.com/fatedier/frp/releases
【V0.35.1】文件链接: https://pan.baidu.com/s/1g_1sgr4Gcw8qd_FVtz2Xtg
密码: q46f
环境
1. 具有公网IP的服务器
主要是以这一台服务器跑Frps服务
我是用的是Linux系统的服务器
2.域名
最终会通过使用域名和泛级域名的方式来访问客户端服务
部署
1.下载并解压Frp项目
# 下载frp v0.35.1
wget https://github.com/fatedier/frp/releases/download/v0.35.1/frp_0.35.1_linux_amd64.tar.gz
# 解压
tar zxf ./frp_0.35.1_linux_amd64.tar.gz
cd ./frp_0.35.1_linux_amd64.tar.gz
2.编辑Frp服务端配置
- frps.ini 文件
//vim frps.ini
[common]
bind_port = 8500 // Frp 服务启用的的端口
dashboard_port = 8501 // Frp 服务的界面端口
dashboard_user = admin // Frp 服务的界面账号
dashboard_pwd = abcd1234 // Frp 服务的界面密码
vhost_http_port = 8502 // Frp 服务监听 HTTP 请求端口
vhost_https_port = 8503 // Frp 服务监听 HTTPS 请求端口
subdomain_host = frp.yujiansheng.com // Frp 服务的服务端域名
token = test1234 // 权限验证,客户端需要设置一样的值才能鉴权通过
- frps.service 文件
[Unit]
Description=Frp Server Service
After=network.target
[Service]
Type=simple
User=root
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/bin/frps -c /etc/frps.ini
[Install]
WantedBy=multi-user.target
3.安装服务
sudo cp ./frps /usr/local/bin/frps
sudo cp ./frps.ini /etc/frps.ini
sudo cp ./systemd/frps.service /usr/lib/systemd/system/frps.service
systemctl enable frps
systemctl start frps
开机启动frps
systemctl enable frps
启动frps:
systemctl start frps
停止frps:
systemctl stop frps
重启frps:
systemctl restart frps
查看frps状态:
systemctl status frps
删除服务的命令
systemctl stop frps
sudo rm /usr/local/bin/frps
sudo rm /etc/frps.ini
sudo rm /usr/lib/systemd/system/frps.service
域名 及 Nginx配置
1.域名(添加域名解析)
1、 frp.yujiansheng.cn做A记录,解析至IP;
2、 *.frp.yujiansheng.cn做A记录,解析至IP;
3、 Nginx 配置文件
// frpc http
server {
listen 80;
server_name *.frp.yujiansheng.cn;
location / {
proxy_pass http://127.0.0.1:8502;
proxy_set_header Host $host:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_hide_header X-Powered-By;
}
}
// frpc https
server {
listen 443 ssl;
server_name *.frp.yujiansheng.com; #填写绑定证书的域名
ssl_certificate cert/4751921__yujiansheng.com.pem;
ssl_certificate_key cert/4751921__yujiansheng.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
ssl_prefer_server_ciphers on;
location / {
proxy_pass https://127.0.0.1:8503;
}
}
// frpc web [界面面板]
server {
listen 80;
server_name frp.yujiansheng.cn;
location / {
proxy_pass http://127.0.0.1:8501;
proxy_set_header Host $host:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_hide_header X-Powered-By;
}
}
4.客户端
[common]
server_addr = xxx.xx.xx.xx // 部署Frps的云机IP
server_port = 8500 // Frps服务的端口
token = coro1234 // 鉴权
[frp_http] // 一个客户端示例 名称唯一就可以
type = http // 类型 有 http https 等
local_port = 7001 // 当前这个示例对应的端口
subdomain = server // 子域名 (与服务端subdomain_host配合使用,这里就表示访问的是 server.frp.yujiansheng.com)
// custom_domains = f.yujiansheng.com // 自定义域名
// 自定义域名 与 子域名 只使用一个就行
[frp_https]
type = https
local_port = 7001
subdomain = server
plugin = https2http // https 插件
plugin_local_addr = 127.0.0.1:7001
plugin_host_header_rewrite = 127.0.0.1
plugin_header_X-From-Where = frp
plugin_crt_path = ./cert/4751921__coro-sh.com.pem
plugin_key_path = ./cert/4751921__coro-sh.com.key
开启命令
//服务端
./frps -c ./frps.ini
//客户端
./frps -c ./frps.ini
在使用Https 的时候,必须要有二级域名frp.yujiansheng.com的SSL证书,不然会提示TLS失败
内容总结
以上是互联网集市为您收集整理的【FRP】Frp内网穿透 + Nginx域名无端口访问(一)全部内容,希望文章能够帮你解决【FRP】Frp内网穿透 + Nginx域名无端口访问(一)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。