14
2024
08
09:26:59

frp内网穿透配置泛域名

?前言

之前配置的好好的frp,结果到用的时候不能用了,直接影响了我早上的一堆rss订阅源不能用,群里的新闻简报也没有正常推送,今天又翻出来捋了一下,发现之前配置的都忘记了,重新理理之后在这里做个备忘录吧。

?配置如下

如题所示,配置代码如下:

 # frp内网穿透反向代理配置
   server {
    listen 80; 
    server_name *.xxx.xyz; #泛域名

    location / {
        proxy_pass http://xxx.xyz:8600;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
      }
    }

上面的配置,需要注意这么几个地方:

  1. 泛域名:*.xxx.com,这个你需要在你的域名下面解析一条泛域名,记录为:*.xxx.com,记录值为你frps(内网穿透公网)的ip

  2. 8600端口,是你在frps.toml文件里面配置的vhostHTTPPort端口,简单点来说,所有请求你泛域名的8600端口,都会直接转发到frpc客户端上。

    比如我现在想要请求:nas.xxx.com:8600,我只需要在浏览器里面输入nas.xxx.com即可;想要请求:docker.xxx.com:8600,我只需要在浏览器里面输入docker.xxx.com即可;因为我在nginx已经配置了转发。

?frps.toml服务端配置

附加,`frps.toml`的配置文件:
# 云服务器和内网工作站之间的连接建立端口bindPort  = 8601# http域名的端口vhostHTTPPort = 8600# 通讯口令,写复杂一些auth.token = "xxxxx"webServer.addr = "0.0.0.0"webServer.port = 8602webServer.user = "xxxx"webServer.password = "xxxxx@2024.@"# frp日志配置log.to = "/var/local/frps.log"log.level = "info"toml

?frpc客户端配置

在客户端我们就可以这么配置,来区分不同的域名访问不同的端口啦:

serverAddr = "公网ip"serverPort = 8601webServer.addr = "0.0.0.0"webServer.port = 8602webServer.user = "xxxx"webServer.password = "xxxxx@2024.@"auth.method = "token"auth.token = "xxxx"[[proxies]]name = "qunhui-nas"type = "http"localIP = "192.168.1.100"localPort = 5000customDomains = ["nas.xxx.com"][[proxies]]name = "qunhui-tongbu"type = "tcp"localIP = "192.168.1.100"localPort = 6690remotePort = 6690[[proxies]]name = "qunhui-ssh"type = "tcp"localIP = "192.168.1.100"localPort = 45322remotePort = 8606[[proxies]]name = "qunhui-file"type = "http"localIP = "192.168.1.100"localPort = 5005customDomains = ["file.xxx.com"][[proxies]]name = "qunhui-dockage"type = "http"localIP = "192.168.1.100"localPort = 8608customDomains = ["docker.xxx.com"][[proxies]]name = "qunhui-wxrss"type = "http"localIP = "192.168.1.100"localPort = 4000customDomains = ["wxrss.xxx.com"][[proxies]]name = "qunhui-rsshub"type = "http"localIP = "192.168.1.100"localPort = 1200customDomains = ["rsshub.xxx.com"][[proxies]]name = "qunhui-beikong"type = "http"localIP = "192.168.1.100"localPort = 5555customDomains = ["beikong.xxx.com"]toml

然后就可以啦,本来之前配置好了,结果今天又不行了,然后之前配置的都忘记了,这下备份了应该不会忘记了。

?https配置

有些情况下,我们需要开启https配置,其实有很多种方式,我这边只介绍一种最简单的吧,那就是: 通过nginx配置就可以,加入ssl的配置如下:

 # frp内网穿透反向代理配置
       server {
        listen 80; 
        listen       443 ssl http2;
        server_name *.xxxx.team; #泛域名
        
         if ($server_port !~ 443){
            rewrite ^(/.*)$ https://$host$1 permanent;
        }
        
        #证书地址
        ssl_stapling on;
        ssl_stapling_verify on;
        ssl_prefer_server_ciphers on;
        ssl_certificate      /home/project/https/fullchain16888.pem;
        ssl_certificate_key   /home/project/https/private16888.key;
        
        location / {
            proxy_pass http://nas.xxxx.com:8600;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
           
             # 添加了websocket支持
           proxy_http_version  1.1;
           proxy_set_header Upgrade $http_upgrade;
           proxy_set_header Connection "upgrade";
           proxy_headers_hash_max_size 51200;
           proxy_headers_hash_bucket_size 6400;
           # websocket配置完成
          }
      }

##green## ? 至此,此文over。




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/7568.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: