美文网首页树莓派小无相系列巨人的工具
树莓派使用frp实现内网穿透 | 树莓派小无相系列

树莓派使用frp实现内网穿透 | 树莓派小无相系列

作者: 涂涂涂w | 来源:发表于2018-04-26 17:45 被阅读164次

    如果没有公网ip,但又想随时随地都能连接到树莓派,我们可以使用 frp 来实现。

    准备条件

    我们需要一台 vps,以便做转发的服务端。

    服务端配置 - frps

    frp 的服务器端,一般名为 frps,配置文件是 frps.ini。可以在 frp 官方页面 获取到最新版本的下载链接(此处以 frp_0.17.0_linux_amd64 为例)。接着使用 ssh 登录 vps 端操作,命令行如下:

    wget https://github.com/fatedier/frp/releases/download/v0.17.0/frp_0.17.0_linux_amd64.tar.gz
    tar -zxvf frp_0.17.0_linux_amd64.tar.gz
    cd frp_0.17.0_linux_amd64
    nano frps.ini
    

    配置文件内容如下:

    [common]
    bind_port = 7000
    vhost_http_port = 80
    dashboard_port = dashboard_port_number
    dashboard_user = dashboard_user_name
    dashboard_pwd = dashboard_pwd_value
    privilege_token = privilege_token_value
    

    ctrl+o 保存,之后 回车 确认,然后 ctrl+x 退出。

    参数说明

    • bind_port:绑定的端口,需要与客户端中 server_port 参数保持一致
    • vhost_http_port:虚拟主机运行在本机的端口,如果 vps 有服务占用了端口,应当更换
    • dashboard_port:frp 后台服务页面的端口,如果设置 8000,便可通过 http://yourip:8000 来访问 frps 的后台页面
    • dashboard_user:frp 后台服务页面的管理员用户名
    • dashboard_pwd:frp 后台服务页面的管理员密码
    • privilege_token:自定义值,必须与客户端中的 privilege_token 保持一致

    配置完成之后,便可以通过如下命令启动 frps:

    ./frps -c ./frps.ini
    

    为了让服务器一直运行 frp 服务,这里还可以将它添加到开机自启脚本中,命令行如下:

    sudo nano /etc/rc.local
    

    exit 0 前一行,写上命令,其中 <your_frp_path> 为你 frp 存放的目录位置,即:

    <your_frp_path>/frps -c <your_frp_path>/frps.ini
    

    ctrl+o 保存,之后 回车 确认,然后 ctrl+x 退出。

    客户端配置 - frpc

    frp 的客户端,一般名为 frpc,配置文件是 frpc.ini。同样可以在 frp 官方页面 获取到最新版本的下载链接(此处以 frp_0.17.0_linux_arm 为例)。接着使用 ssh 登录 vps 端操作,命令行如下:

    wget https://github.com/fatedier/frp/releases/download/v0.17.0/frp_0.17.0_linux_arm.tar.gz
    tar -zxvf frp_0.17.0_linux_arm.tar.gz
    cd frp_0.17.0_linux_arm
    nano frpc.ini
    

    配置文件内容如下:

    [common]
    server_addr = your_server_ip
    server_port = 7000
    privilege_token = privilege_token_value
    login_fail_exit = false
    
    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    
    remote_port = remote_port_number
    

    ctrl+o 保存,之后 回车 确认,然后 ctrl+x 退出。

    参数说明

    • server_addr:服务器端的 ip
    • server_port:服务器端的端口,即 bind_port
    • privilege_token:同服务器端的 privilege_token 保持一致
    • login_fail_exit:失败时自动重连
    • remote_port:远程端口,即 ssh 连接树莓派时的端口

    配置完成之后,便可以通过如下命令启动 frps:

    ./frpc -c ./frpc.ini
    

    为了让树莓派一直运行 frp 服务,这里还可以将它添加到开机自启脚本中,命令行如下:

    sudo nano /etc/rc.local
    

    exit 0 前一行,写上命令,其中 <your_frp_path> 为你 frp 存放的目录位置,即:

    <your_frp_path>/frps -c <your_frp_path>/frps.ini
    

    ctrl+o 保存,之后 回车 确认,然后 ctrl+x 退出。

    ssh 连接

    以上配置完成之后,就可以远程 ssh 连接到树莓派了。命令行如下:

    ssh -oPort=<remote_port_number> pi@<your_server_ip>
    

    其中,<remote_port_number> 为树莓派配置中的 remote_port 参数值,<your_server_ip> 为服务器 ip。

    系列说明

    小无相功是小说《天龙八部》中「逍遥派」的一门内功,讲究不着形相,无迹可寻,熟悉后再了解其他武功招式便可依仗威力习得,甚至青出于蓝而胜于蓝。而树莓派形似小无相功,同具无限可能,了解一些基础便可轻松上手,去探寻其他更多未知。因此,系列以此为题,带来一系列树莓派相关的教程,同时也是对个人长期折腾树莓派以来的一个归档整理。

    注:本作品采用知识共享署名-非商业性使用-禁止演绎 3.0 未本地化版本许可协议进行许可。

    相关文章

      网友评论

      • 10af1362d08d:还有,树莓派的remote_port是服务器的vhost_http_port么?还是随便写一个🤔
        涂涂涂w:vhost_http_port 我的理解是 frp 后台运行在 vps 上的端口,可以是任意端口,只要不与服务器其他服务占用端口冲突就行,我设置的是 7763。
      • 10af1362d08d:privilege_token是随便写一个数字么?
        涂涂涂w:privilege_token 可以是任意字符,比如 pass123 等等,只要两端保持一致就行。

      本文标题:树莓派使用frp实现内网穿透 | 树莓派小无相系列

      本文链接:https://www.haomeiwen.com/subject/rfymlftx.html