基于frp实现内网穿透

minilife 发布于 2024-07-29 10593 次阅读


基于frp实现内网穿透

环境

  1. 公网服务器CentOS
  2. 内网服务器Windows
  3. 可以管理的域名

步骤描述

  1. 在外网服务器上配置并启动 Frp 服务端。
  2. 在内网服务器上配置并启动 Frp 客户端。

配置frp服务端

  • 下载:frp Github地址 Linux版本

  • 解压:

    # 解压地址、文件名称自定义
    tar -zxvf frp_0.xx.x_linux_amd64.tar.gz
    cd frp_0.xx.x_linux_amd64
  • 修改frps.ini

    [common]
    bind_port = 7000
    # 配置 HTTP 服务,使用 7001 端口处理 HTTP 流量
    # 因为选择Nginx 中配置 HTTPS。所以这里只配置vhost_http_port
    vhost_http_port = 7001
  • 启动

    # 后台运行并输出日志
    nohup ./frps -c frps.ini > frps.log 2>&1 &
    # 查看日志
    tail -f frps.log
  • 停止

    # 查看进程ID
    ps aux | grep frps
    # 关闭进程
    kill pid
  • Nginx

    server {
    listen 80;
    listen 443 ssl http2;
    server_name yourdomain.com;
    
    ssl_certificate /path/to/your/fullchain.pem;
    ssl_certificate_key /path/to/your/privkey.pem;
    # 启用了HSTS,浏览器会自动将 HTTP 请求升级为 HTTPS
    add_header Strict-Transport-Security "max-age=31536000";
    
    location / {
      proxy_pass http://127.0.0.1:7001;
      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-Scheme $scheme;
      proxy_set_header X-Forwarded-Protocol $scheme;
      proxy_set_header X-Forwarded-Proto $scheme;
      # 支持 WebSocket
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
    }
    }

配置frp客户端

  • 下载 frp Github地址 Windows版本

  • 解压文件

  • 创建并编辑frpc.ini配置文件

    [common]
    server_addr = YOUR_SERVER_IP  # 替换为你的外网服务器公网 IP 地址
    server_port = 7000  # 这里是与 Frp 服务端的 bind_port 相同的端口
    [web]
    type = http
    local_port = 8000  # 替换为你希望暴露的本地服务端口
    custom_domains = yourdomain.com  # 替换为你的域名
  • 启动
    创建bat可执行文件并写入以下内容:

    @echo off
    REM 设置 Frp 客户端可执行文件和配置文件的路径
    set FRP_CLIENT_PATH=C:\path\frp\frpc.exe
    set FRP_CONFIG_PATH=C:\path\frp\frpc.ini
    REM 启动 Frp 客户端
    %FRP_CLIENT_PATH% -c %FRP_CONFIG_PATH%
    REM 等待用户输入以关闭窗口
    pause
最后更新于 2024-12-31