0%

树莓派搭建 frp 实现内网穿透

前言

准备做个小东西,但是没有公网 IP 无法在外网访问。这里使用 frp 实现内网穿透,无需公网 IP 即可 SSH 连接。

准备

  1. 一台有公网 IP 的服务器
  2. frp

步骤

要修改的配置文件 frps.iniserverfrpc.iniclient

  1. 服务端

    1
    2
    3
    4
    5
    6
    7
    # 下载安装,选择合适架构的包
    wget https://github.com/fatedier/frp/releases/download/v0.16.1/frp_0.16.1_linux_amd64.tar.gz
    # 解压
    tar xvf frp_0.16.1_linux_amd64.tar.gz
    # 编辑配置文件
    cd frp_0.16.1_linux_amd64/
    vi frps.ini

    修改配置

    [common]
    bind_port = 7000 //client 一会要用到
    vhost_http_port = 8080
    dashboard_port = 7001 //网页控制台
    dashboard_user = admin
    dashboard_pwd = admin
    privilege_token = 12345

    服务器 frp 自启动

    1
    2
    3
    4
    5
    vi /etc/rc.local
    # 末尾添加 frps 路径
    /root/frp_0.16.1_linux_amd64/frps -c /root/frp_0.16.1_linux_amd64/frps.ini
    # 可以先手动运行看 frp 是否正常运行
    公网 IP:dashboard_port
  2. 客户端(树莓派)

    1
    2
    3
    4
    5
    6
    7
    # 下载安装,树莓派用 arm 架构的包
    wget https://github.com/fatedier/frp/releases/download/v0.16.1/frp_0.16.1_linux_arm.tar.gz
    # 解压
    tar xvf frp_0.16.1_linux_arm.tar.gz
    # 编辑配置文件
    cd frp_0.16.1_linux_arm/
    vi frpc.ini

    修改配置

    [common]
    server_addr = 公网 IP
    server_port = 7000 //和 server 一致
    privilege_token = 12345 //和 server 一致
    login_fail_exit = false

    [ssh]
    type = tcp
    local_ip = 局域网 IP
    local_port = 22
    remote_port = 5000 //SSH 连接要使用

    客户端 frp 自启动

    1
    2
    3
    sudo vi /etc/rc.local
    # exit 0 之前添加 frpc 路径(可以先手动运行看 frp 是否正常运行)
    /home/pi/frp_0.16.1_linux_arm/frpc -c /home/pi/frp_0.16.1_linux_arm/frpc.ini
  3. 外网连接树莓派

    1
    ssh -oPort=remote_port pi@公网 IP