frp配置内网穿透

228 阅读1分钟

www.freebuf.com/articles/ne…

背景

  • 服务器:阿里云

     ssh root@公网ip
    
  • 添加防火墙端口,每个端口通过frp去对应本地的端口

image-20240321003056171.png

公网

  • 执行命令下载太慢,直接去github下linux版本并迁移到阿里云服务器指定目录(/opt/frp)

    这里用0.52.3版本 frp_0.52.3_linux_amd64.tar.gz

  • frps.toml代码

     bindPort = 7000 #服务端与客户端通信端口
     ​
     auth.token = "public"      # 身份验证令牌,frpc要与frps一致
     transport.tls.force = true # 服务端将只接受 TLS链接
     ​
     # Server Dashboard,可以查看frp服务状态以及统计信息
     webServer.addr = "0.0.0.0"        # 后台管理地址
     webServer.port = 7500             # 后台管理端口
     webServer.user = "admin"        # 后台登录用户名
     webServer.password = "admin"    # 后台登录密码
    
  • 执行

    • 命令 ./frps -c frps.toml

    • 脚本:自启动

       #!/bin/bash
       # sudo nohup bash -c '/opt/frp/frps -c /opt/frp/frps.toml' > /opt/frp/log.txt 2>&1 &
       ​
       ./frps -c frps.toml 
      

      执行权限问题 chmod u+x *.sh

  • 展示: 服务器公网+webServer.port

image-20240321003719648.png

本地

  • github下载window版本

  • frpc.toml代码

     # frpc.toml
     transport.tls.enable = true        # 从 v0.50.0版本开始,transport.tls.enable的默认值为 true
     serverAddr = "公网"
     serverPort = 7000                 # 公网服务端通信端口
     ​
     ​
     [[proxies]]
     name = "test-http"
     type = "tcp"  # 协议类型
     localIP = "127.0.0.1"            # 需要暴露的服务的IP
     localPort = 8080                # 将本地8080端口的服务暴露在公网的4100端口
     remotePort = 4100                 # 暴露服务的公网入口
     ​
     [[proxies]]
     name = "ssh"
     type = "tcp"
     localIP = "127.0.0.1"
     localPort = 22
     remotePort = 6000
    
  • 执行代码

    • 命令 ./frpc -c frpc.toml