Linux安装FRP(内网穿透)

  1. 项目简介
    Linux安装FRP(内网穿透)_第1张图片
    Linux安装FRP(内网穿透)_第2张图片
  2. 需求背景
    1.FileBrowser访问地址:http://X.X.X.X:8181,该地址只能在局域网内部访问而无法通过互联网访问,想要通过互联网
    访问到该地址需要通过公网IP来进行端口转发,通常家里的路由器IP都不是公网IP,通常公司的路由器IP都是公网IP
    
    2.如果FileBrowser部署在公司局域网内的机器上,并且具有公司路由器的管理员账号密码,可以通过路由器配置端口转发,
    互联网访问地址(公司IP:外部端口)时,请求会被转发到X.X.X.X:8181,从而实现互联网访问FileBrowser,通过手机访问
    FileBrowser进行文件上传下载,功能类似个人云盘
    
    3.如果FileBrowser部署在家庭的机器上,需要进行内网穿透才可以实现互联网访问,FRPS部署在具有公网IP的机器上 例:
    云服务器,FRPC部署在FileBrowser所在机器上,通过云服务器作为媒介实现端口转发,互联网访问地址(云服务器IP:外部
    端口)时,请求会被转发到X.X.X.X:8181,从而实现互联网访问FileBrowser
  3. 安装目录
    mkdir -p /opt/frp && cd /opt/frp
  4. 安装包下载
    wget https://github.com/fatedier/frp/releases/download/v0.51.3/frp_0.51.3_linux_amd64.tar.gz
    注意:https://github.com/fatedier/frp/releases获取下载链接并替换
  5. 安装包解压
    for file in *.tar.gz; do tar -zxvf "$file" --strip-components=1; done
  6. 环境变量
    echo -e "\n# 设置frp环境变量" >> /etc/profile
    echo -e "export FRP_HOME=/opt/frp" >> /etc/profile
    echo -e "export PATH=\$FRP_HOME:\$PATH" >> /etc/profile
    source /etc/profile
  7. FRPS配置
    #----------------------------------------------------------
    sudo tee /opt/frp/frps.ini <<-'EOF'
    [common]
    bind_port = 6666
    dashboard_port = 7777
    token = AAAAAA
    dashboard_user = BBBBBB
    dashboard_pwd = CCCCCC
    EOF
    #----------------------------------------------------------
    firewall-cmd --zone=public --add-port=6666/tcp --permanent && firewall-cmd --reload
    firewall-cmd --zone=public --add-port=7777/tcp --permanent && firewall-cmd --reload
    #----------------------------------------------------------
    # 注意:云服务器防火墙与安全组打开端口6666、7777
  8. FRPS常用命令
    启动:nohup frps -c /opt/frp/frps.ini > /opt/frp/frps.log &
    查看:ps -ef | grep -i frps
    关闭:pkill -f "frps"
    注意:启动后光标复原Ctrl+C 修改配置frps.ini后需重启生效
    
    启动日志:/opt/frp/frps.log
    2023/08/27 22:36:22 [1;34m[I] [root.go:204] frps uses config file: /opt/frp/frps.ini[0m
    2023/08/27 22:36:22 [1;34m[I] [service.go:206] frps tcp listen on 0.0.0.0:7000[0m
    2023/08/27 22:36:22 [1;34m[I] [service.go:318] Dashboard listen on 0.0.0.0:7500[0m
    2023/08/27 22:36:22 [1;34m[I] [root.go:213] frps started successfully[0m
  9. FRPS开机启动
    #----------------------------------------------------------
    sudo tee /usr/bin/frps.sh <<-'EOF'
    #! /bin/bash
    nohup /opt/frp/frps -c /opt/frp/frps.ini > /opt/frp/frps.log &
    EOF
    chmod +x /usr/bin/frps.sh
    #----------------------------------------------------------
    sudo tee /etc/systemd/system/frps.service <<-'EOF'
    [Unit]
    Description=frps
    After=syslog.target network.target
    [Service]
    Type=oneshot
    RemainAfterExit=yes
    ExecStart=/usr/bin/frps.sh
    [Install]
    WantedBy=multi-user.target
    EOF
    #----------------------------------------------------------
    systemctl enable frps
    #----------------------------------------------------------
    # 启动frps
    systemctl start frps
    # 停止frps
    systemctl stop frps
    # 重启frps
    systemctl restart frps
    # 查看frps状态
    systemctl status frps
  10. FRPS面板
    http://your-server-ip:7777
    用户名:BBBBBB 密码:CCCCCC

    Linux安装FRP(内网穿透)_第3张图片

  11.  FRPC配置
    #----------------------------------------------------------
    sudo tee /opt/frp/frpc.ini <<-'EOF'
    [common]
    # FRPS服务所在机器的IP地址(公网IP)
    server_addr = Y.Y.Y.Y
    server_port = 6666
    token = AAAAAA
    [FileBrowser]
    type = tcp
    local_ip = X.X.X.X
    local_port = 8181
    # FRPS服务所在机器的访问端口(需要打开)
    remote_port = 8888
    EOF
    #----------------------------------------------------------
    firewall-cmd --zone=public --add-port=8181/tcp --permanent && firewall-cmd --reload
    #----------------------------------------------------------
    # 注意:云服务器防火墙与安全组打开端口8888
  12. FRPC常用命令
    启动:nohup frpc -c /opt/frp/frpc.ini > /opt/frp/frpc.log &
    查看:ps -ef | grep -i frpc
    关闭:pkill -f "frpc"
    注意:启动后光标复原Ctrl+C 修改配置frpc.ini后需重启生效
    
    启动日志:/opt/frp/frpc.log
    2023/08/27 23:50:05 [1;34m[I] [root.go:220] start frpc service for config file [/opt/frp/frpc.ini][0m
    2023/08/27 23:50:05 [1;34m[I] [service.go:301] [7b5ed0825c698677] login to server success, get run id [7b5ed0825c698677][0m
    2023/08/27 23:50:05 [1;34m[I] [proxy_manager.go:150] [7b5ed0825c698677] proxy added: [FileBrowser][0m
    2023/08/27 23:50:05 [1;34m[I] [control.go:172] [7b5ed0825c698677] [FileBrowser] start proxy success[0m
  13. FRPC开机启动
    #----------------------------------------------------------
    sudo tee /usr/bin/frpc.sh <<-'EOF'
    #! /bin/bash
    nohup /opt/frp/frpc -c /opt/frp/frpc.ini > /opt/frp/frpc.log &
    EOF
    chmod +x /usr/bin/frpc.sh
    #----------------------------------------------------------
    sudo tee /etc/systemd/system/frpc.service <<-'EOF'
    [Unit]
    Description=frpc
    After=syslog.target network.target
    [Service]
    Type=oneshot
    RemainAfterExit=yes
    ExecStart=/usr/bin/frpc.sh
    [Install]
    WantedBy=multi-user.target
    EOF
    #----------------------------------------------------------
    systemctl enable frpc
    #----------------------------------------------------------
    # 启动frpc
    systemctl start frpc
    # 停止frpc
    systemctl stop frpc
    # 重启frpc
    systemctl restart frpc
    # 查看frpc状态
    systemctl status frpc
  14. 访问测试
    互联网访问FileBrowser失败原因分析:
    
    1.启动顺序为先启动FRPS后启动FRPC
    
    2.FRPS与FRPC的安装包版本要一致
    
    3.FRPS与FRPC的安装包要与所在系统一致
    Linux:frp_x.x.x_linux_amd64.tar.gz
    Windows:frp_x.x.x_windows_amd64.zip
    
    4.启动日志确认FRPC与FRPS成功建立连接
    
    5.检查FRPS与FRPC防火墙是否打开端口权限
    
    6.检查云服务器安全组是否打开端口权限

    Linux安装FRP(内网穿透)_第4张图片

  15. 常用地址
    GitHub:https://github.com/fatedier/frp
     
    文档地址(官方):https://gofrp.org
    
    文档地址(个人):https://www.bookstack.cn/read/frp

你可能感兴趣的:(linux,frps,frpc,frp,服务器)