为什么使用 frp ?
通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性nginx配置域名,这包括:
更多文档,请参考官方文档
准备条件
1.云服务器(必须)
2.域名(必须)
域名及服务器配置配置域名解析
建议配置泛域名解析,一劳永逸,我的解析如下
image.png服务器放行端口
需要放行的端口在下文中的 frps.ini 配置文件中有,我目前的放行的有 18888、8888、8843
frp的下载与安装
下载地址 ,注意下载对应自己的操作系统,它的服务端和客户端是在一个包里的,所以,如果你的服务端和客户端是不同的平台,请分别下载(一般都是服务端 linux, 客户端 windows)
frp 下载服务端
解压到文件夹下就行,实际上只需要 frps 开头的文件
客户端
解压到文件夹下就行,实际上只需要 frpc 开头的文件
frp 的配置服务器的配置 (frps.ini)
[common]
#通讯端口,用于和客户端内网穿透
#传输数据的端口,可自定义
bind_port = 18888
#http监听端口,可自定义
vhost_http_port = 8888
#https监听端口,默认443,可自定义
vhost_https_port = 8843
#通过浏览器查看 frp 的状态以及代理统计
#信息展示(端口、用户名、密码),
#不建议开启,也没啥用
#dashboard_port = 8880
#dashboard_user = admin
#dashboard_pwd = 123456
#通讯令牌(客户端需和此处一致)
token = lyn4ever#jhacker
# frp日志配置
log_file = /home/frp/frps.log
log_level = info
log_max_days = 3
#全局域名,这个就是上边配置的泛解析域名
subdomain_host = np.jhacker.cn
客户端的配置 (frpc.ini)
[common]
#填写服务器公网IP地址
server_addr = xx.xx.xx.xx
#通讯端口,和服务端保持一致
#(需在厂商安全组策略中开放该端口)
server_port = 18888
#通讯令牌,和服务端保持一致
token = lyn4ever#jhacker
# 本地管理的界面的配置
admin_addr = 127.0.0.1
admin_port = 429
admin_user = admin
admin_pwd = 123456
# 以下配置就是你要代理的端口和域名配置
#其中subdomain和custom_domains只能配置一个
[web]
type = http
local_port = 8013
subdomain = test
#custom_domains = test.np.jhacker.cn
[mysql]
type = tcp
local_port = 3307
# tcp模式需要指定服务器的端口,注意这个端口需要放行
remote_port = 83307
subdomain = mysql
到此nginx配置域名,已经全部配置完毕,在你的客户端机子上的 8013 端口开着一个 http 服务,3306 端口开着 mysql。
在服务器使用 Nginx 进行反向代理访问 frp
这部分主要是为了解决每次使用内网穿透时需要添加端口的问题,比如上边的 18888 端口。nginx 的安装请自行解决,这里只给出反代的配置
server {
listen 80;
server_name *.np.jhacker.cn;
client_max_body_size 10240m;
location / {
# 配置服务器的frp的端口
proxy_pass http://127.0.0.1:18888;
keepalive_timeout 0;
# 剩下的不要动,直接复制
proxy_set_header Host $host;
# proxy_set_header Host $http_host:8007; # 对于 ngrok 需要用这句
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
add_header X-Cache $upstream_cache_status;
add_header Cache-Control no-cache,public; # 设置浏览器协商缓存
expires 12h; # 设置 nginx 缓存 12 小时
}
}
这样配置之后,像上边的 test 服务,可以直接使用域名,而不需要带端口访问了。直接使用
限时特惠:本站每日持续更新海量设计资源,一年会员只需29.9元,全站资源免费下载
站长微信:ziyuanshu688
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。