使用Frp穿透内网服务

前几天在我自己的主机上部署了一个Seafile,作为个人使用。但是这个主机连接的是校园网,于是乎需要进行穿透以便我在外使用。
之前有看到过花生壳等等,但是鉴于我有一台公网服务器,因此这次我采用经典的Frp直接将服务代理到公网。

部署方法

  1. 到Github上下载Frp的Release并解压将文件夹传到公网服务器和内网服务器
     网址:https://github.com/fatedier/frp/releases
    
  2. 修改文件夹的名字,日后维护的时候你会感谢你自己的这个举手之劳
    1
    mv frp_0.xx.0_linux_amd64 frp
  3. 配置服务端(公网服务器)
    • 打开该文件夹
      
    • 编辑frps.ini
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      [common]
      #用于客户端和服务端连接的端口
      bind_port =
      # 反向代理的http端口
      vhost_http_port =
      # 反向代理的https端口
      vhost_https_port =
      # 控制界面端口
      dashboard_port =
      # 控制界面用户名
      dashboard_user =
      # 控制界面密码
      dashboard_pwd =
      # 若要使用frp,需要提供令牌以确保安全
      token =
      # 日志文件路径
      log_file = ./frps.log

      # 日志记录错误级别,分为:trace, debug, info, warn, erro
      log_level = warn

      # 日志保存最大天数
      log_max_days = 30
      # 代理的网站域名
      subdomain_host = https://your_domain
    • 后台开启运行
      1
      nohup ./frps -c frps.ini &
    • 查看输出日志,如果有success就说明成功了
      1
      tail -f nohup.out
  4. 配置客户端(内网服务器)
    • 打开该文件夹
      
    • 编辑frpc.ini
      注意:这里我使用了nginx在内网服务器做代理转发,所以没有ssl信息,直接代理http
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      [common]
      # 填写服务器实际IP
      server_addr =
      # 用于客户端和服务端连接的端口
      server_port =
      # 向服务器出示令牌
      token =

      # 代理的服务名称,这个是自己随便起的
      # 做一个穿透到公网的网站
      [web]
      # 代理的协议类型
      type = http
      # 服务在本地的位置
      local_port =
      # 代理该服务端公网域名
      custom_domains = https://your_domain

      # 代理的服务名称,这个是自己随便起的
      # 做一个远程 ssh 服务
      [ssh]
      # 代理的协议服务
      type = tcp
      # 本机 ip
      local_ip =
      # 这个服务在本机的位置,如果是 ssh 默认就是 22
      local_port = 22
      # 占用公网服务器的端口号,不用在服务端约定好,但要避免重复
      remote_port =
    • 后台开启运行
      1
      nohup ./frpc -c frpc.ini &
    • 查看输出日志,如果有success就说明成功了
      1
      tail -f nohup.out
  5. 试试效果,如果可以访问,就大功告成
    这里要指出 frp 服务端可以为多个客户端服务,但是一定要避免端口冲突
  6. 关闭一个 frp 服务的方法
    使用以下命令查看 frp 的进程
    1
    ps -aux|grep frp| grep -v grep
    然后根据输出的进程编号杀掉这个进程
    1
    kill xxxx

使用Frp穿透内网服务
https://www.tomcatdeng.cn/undefined/使用Frp穿透内网服务-shi-yong-frp-chuan-tou-nei-wang-fu-wu/
Author
Bowen Deng
Posted on
October 22, 2022
Licensed under