为什么使用 frp ?

通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性nginx配置域名,这包括:

更多文档,请参考官方文档

准备条件

1.云服务器(必须)

2.域名(必须)

域名及服务器配置配置域名解析

建议配置泛域名解析,一劳永逸,我的解析如下

nginx 配置多个域名访问_nginx多个域名配置_nginx配置域名

image.png服务器放行端口

需要放行的端口在下文中的 frps.ini 配置文件中有,我目前的放行的有 18888、8888、8843

frp的下载与安装

下载地址 ,注意下载对应自己的操作系统,它的服务端和客户端是在一个包里的,所以,如果你的服务端和客户端是不同的平台,请分别下载(一般都是服务端 linux, 客户端 windows)

nginx多个域名配置_nginx配置域名_nginx 配置多个域名访问

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