视频教程

司波图视频教程: https://www.bilibili.com/video/BV1J74117714

简介

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

资源

中文文档:https://gofrp.org/docs/

GitHub主项目:https://github.com/fatedier/frp

GitHub安装包:https://github.com/fatedier/frp/releases

安装说明

  1. 首先在“GitHub安装包”链接中找到适合自己服务器架构的版本。

    例如:

    wget https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_amd64.tar.gz
  2. 解压下载好的文件

    例如:

    tar -zxvf frp_0.38.0_linux_amd64.tar.gz
  3. 更改文件名(可选)并打开文件夹
  4. 文件夹内有两套文件,其中文件frpc.inifrps.ini是需要修改的配置文件。frpc.ini是客户端配置文件,应该在本地运行(在需要被穿透的服务器上运行)。frps.ini是服务端配置文件,应该在具有公网IP的服务器上运行(可以是阿里云、腾讯云、Google Cloud)。

    frpc_full.inifrps_full.ini是官方的演示配置,可以打开探索Frp的许多新功能。

服务端

  1. frps.ini示例配置文件

    [common]
    #客户端连接服务端的端口
    bind_port = 7000
    #客户端连接服务端所需的密码
    token = password
  2. 运行Frp脚本(一次性运行,关闭SSH后服务会被终止)

    ./frps -c frps.ini
  3. 注意你服务器的防火墙配置,无论是运营商的硬件防火墙(比如阿里云的安全组),还是软件防火墙(iptables、ufw,firewall),需要开启相对应的端口。上面配置文件用到了7000端口,可以将7000-7020端口打开,供客户端和服务端使用。
  4. 设置Systemctl进程守护(让Frp服务端在后台一直运行)
  5. 创建一个新frpc.service文件

    nano /lib/systemd/system/frps.service
  6. 输入下列脚本(注意:ExecStart=后要写你放Frp的路径)

    [Unit]
    Description=fraps service
    After=network.target syslog.target
    Wants=network.target
    
    [Service]
    Type=simple
    ExecStart=/root/frp/frps -c /root/frp/frps.ini
    
    [Install]
    WantedBy=multi-user.target
  7. 管理脚本

    # 设置开机启动
    systemctl enable frps
    
    # 启动服务
    systemctl start frps
    
    # 停止服务
    systemctl stop frps
    
    # 重启服务
    systemctl restart frps
    
    # 查看状态
    systemctl status frps

客户端

  1. frpc.ini示例配置文件

    [common]
    #服务端公网IP
    server_addr = 127.0.0.1
    #服务端设置的端口
    server_port = 7000
    #服务器设置的密码
    token = password
    
    [ssh]
    #连接类型(注:不同连接类型设置不同,请查看frpc_full.ini文件)
    type = tcp
    #需要映射出去的机器内网IP(127.0.0.1是指本机localhost,其他机器的IP比如可以是192.168.1.1)
    local_ip = 22
    #外网访问本机的端口,访问格式为:http://$服务器IP:7001
    remote_port = 7001
  2. 运行Frp脚本(一次性运行,关闭SSH后服务会被终止)

    ./frpc -c frpc.ini
  3. 设置Systemctl进程守护(让Frp服务端在后台一直运行)
  4. 创建一个新frpc.service文件

    nano /lib/systemd/system/frpc.service
  5. 输入下列脚本(注意:ExecStart=后要写你放Frp的路径)

    [Unit]
    Description=frapc service
    After=network.target syslog.target
    Wants=network.target
    
    [Service]
    Type=simple
    ExecStart=/root/frp/frpc -c /root/frp/frpc.ini
    
    [Install]
    WantedBy=multi-user.target
  6. 管理脚本

    # 设置开机启动
    systemctl enable frpc
    
    # 启动服务
    systemctl start frpc
    
    # 停止服务
    systemctl stop frpc
    
    # 重启服务
    systemctl restart frpc
    
    # 查看状态
    systemctl status frpc