Frp 简单的尝试~

以前一直使用的是ngrok,但是由于配置总是失败,用了frp发现配置比ngrok要简单快多了。

如果一个方向老是错误,不如换个方向试试看,也许会是捷径呢~ (●’◡’●)

环境

  • Linux 服务器

  • 域名 [已备案]

  • Visual Studio Code

    • Remote - SSH

服务器

  1. 进入服务器

    Frp 简单的尝试~_第1张图片

    如果连接不成功,也可能是服务器22端口未开放,去购买服务器的平台进行开发22端口即可。

    Frp 简单的尝试~_第2张图片

    Frp 简单的尝试~_第3张图片

    我这里连接的是root文件夹

  2. 新建frp文件夹

  3. 在文件夹下新建frps.ini文件

    [common]
    bind_port = 7000
    vhost_http_port = 7001
    token = [令牌]
    subdomain_host = [二级域名][例:frp.linyisonger.cn]
    dashboard_port = 7002
    dashboard_user = [管理平台用户名]
    dashboard_pwd = [管理平台密码]
    enable_prometheus = true
    
  4. 在文件夹下新建docker-compose.yml文件

    version: '3'
    services:
        frps:
            container_name: docker_frps
            image: snowdreamtech/frps
            network_mode: "host"
            volumes:
                - ./frps.ini:/etc/frp/frps.ini
            restart: always
    
  5. 在文件下执行

    docker-compose up --force-recreate --build -d
    
  6. 配置nginx

    内网ip:可以通过 ip addr获取

    server {
        listen       80;
        server_name  frp.linyisonger.cn; 
    
        location / {
          proxy_pass http://[内网ip]:7002;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection keep-alive;
          proxy_set_header Host $host;
          proxy_cache_bypass $http_upgrade;
        }
        
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    
    }
    
    server {
        listen       80;
        server_name  *.frp.linyisonger.cn; 
    
        location / {
          proxy_pass http://[内网ip]:7001;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection keep-alive;
          proxy_set_header Host $host;
          proxy_cache_bypass $http_upgrade;
        }
        
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    
    }
    

    连接不成功可能7000/7001端口未开放

客户端

  1. https://github.com/fatedier/frp/releases 下载对应版本,我这里是win系统,以win为例。

  2. 目录结构如图

    Frp 简单的尝试~_第4张图片

  3. 编辑frpc.ini文件

    [common]
    server_addr = [服务器IP或域名][例linyisonger.cn]
    server_port = 7000
    token = [令牌][需与服务器端一致]
    
    [aaa]
    type = http
    local_ip = localhost
    local_port = 8080
    subdomain = c
    remote_port = 7001
    
  4. 启动客户端

    .\frpc -c frpc.ini
    
  5. 日志

    PS C:\Users\ASUS\Desktop\frp_linyisonger> .\frpc -c frpc.ini
    2022/03/18 09:46:14 [I] [service.go:327] [cee1faf63cd66d2c] login to server success, get run id [cee1faf63cd66d2c], server udp port [0]
    2022/03/18 09:46:14 [I] [proxy_manager.go:144] [cee1faf63cd66d2c] proxy added: [aaa]
    2022/03/18 09:46:14 [I] [control.go:181] [cee1faf63cd66d2c] [aaa] start proxy success
    
  6. 进入服务器管理面板http连接中则会增加一条记录Frp 简单的尝试~_第5张图片

  7. 本地起一个前端项目端口为8080,通过http://c.frp.linyisonger.cn即可访问。

    Frp 简单的尝试~_第6张图片

拓展知识点

泛域名配置

以阿里云为例

Frp 简单的尝试~_第7张图片

Frp 简单的尝试~_第8张图片

Frp 简单的尝试~_第9张图片

记录值写上对应的服务器公网IP即可。

参考

https://www.jianshu.com/p/c0d7cb4cb00f

https://www.itcoder.tech/posts/docker-frp/

你可能感兴趣的:(Docker,CentOS,linux,docker,nginx)