美文网首页玩转树莓派树莓派树莓派
树莓派笔记06-利用frp进行内网穿透实现外网NAS

树莓派笔记06-利用frp进行内网穿透实现外网NAS

作者: 一技破万法 | 来源:发表于2019-10-17 23:27 被阅读0次

    家庭NAS的实用性就在于可以用最少的money实现局域网内资源共享。家庭NAS的优点有很多,比如说可以多设备同时查看或者修改同一份文档,也可以看视频、音频等。它打破了局域网内设备不能互联的状态。但是出了这个局域网就gg了,如果你有份文档存在NAS里,而你出门要用,那就有点麻烦了。。。
    不过通过frp进行内网穿透,将你的家庭NAS端口映射到公网IP上就可以实现外网访问家庭NAS了。无论你在哪儿,只要你随身携带的移动终端(笔记本、平板、手机)等有网络,就可以随时随地查看你放在家中树莓派上的文件了。


    什么是frp?

    frp是一个高性能的反向代理应用,可以帮助您轻松进行内网穿透,对外网提供服务,支持tpc,http,https等协议类型,并且web服务支持根据域名进行路由转发。

    准备:

    在使用frp之前,需要一台有公网IP的服务器,一台需要实现内网穿透的机器(树莓派),SSH工具。

    下面开始搭建外网NAS:

    1.登录云服务器,根据服务器的操作系统,在Release页面中找到对应的frp程序,然后分别在服务器和树莓派中下载它。

    下面所示范用的frp程序是基于i686CPU的云服务器和树莓派4b.

    云服务器操作:

    首先使用SSH连接上云服务器,使用wget指令下载frp程序。

    wget https://github.com/fatedier/frp/releases/download/v0.16.1/frp_0.16.1_linux_386.tar.gz
    

    使用tar指令解压tar.gz文件

    tar -zxvf frp_0.16.0_linux_386.tar.gz
    

    然后进入解压出来的文件夹

    cd frp_0.16.0_linux_386
    

    然后修改服务器配置文件,即frps.ini文件,使用nano指令对目标文件进行编辑。

    sudo nano frps.ini
    

    打开文件之后将文件里的内容改成

    [common]
    bind_port = 7000
    

    [common]部分是必须有的配置,其中bind_port是自己设定的frp服务端端口。
    保存上面的配置后,使用以下指令启动frp服务端。

    ./frps -c ./frps.ini
    

    到此服务器端的配置就告一段落。

    树莓派操作:

    树莓派安装的frp程序跟云服务器端的程序是不一样的,树莓派要选择arm版的,前一部分操作跟云服务器端是相同的。

    wget https://github.com/fatedier/frp/releases/download/v0.16.1/frp_0.16.1_linux_arm.tar.gz
    #这里版本号要相同!!!!!!
    tar -zxvf frp_0.16.0_linux_arm.tar.gz
    cd frp_0.16.0_linux_arm
    sudo nano frpc.ini
    

    客户端的配置如下:


    客户端配置

    上面的配置和服务器要一一对应起来:
    server_addr后面要填云服务器的IP
    server_port后面填云服务器的bind_port
    [ssh_pi]中的内容备注如下:
    local_ip后面填树莓派的内网IP,也可以直接用这个!
    local_port后面填树莓派的SSH端口,一般是22
    remote_port后面填的端口可以随意,但是不要占用特定端口
    [samba]中的内容备注如下:
    local_port后面填445端口(如果没有修改默认端口的话)
    lremote_port后面填4545,这是转发端口,记住用这个就对了!
    后面的可以复制粘贴了,最后是账号和密码

    保存配置,然后运行客户端

    ./frpc -c ./frpc.ini
    

    此时如果树莓派命令行出现了"start proxy success"字样,就证明连接成功了!
    如果出现connecting timed out字样,证明云服务器没有将端口放在安全组内,下面以阿里云服务器开启安全组端口为例
    打开主控台之后选择安全组,然后右上角有一个创建安全组


    创建安全组

    以打开6000端口为例


    webwxgetmsgimg.jpg
    然后再重新运行一下,就能够使客户端连接上服务端了!

    后台运行frp

    这儿使用的是nohup指令

    nohup ./frpc -c ./frpc.ini#在客户端
    nohup ./frps -c ./frps.ini#在服务端
    

    后续!!!

    考虑到每次开机都要 输入nohup命令,在这儿再接一个自启动教程

    使用systemctl来控制启动

    首先创建一个文件

    sudo vi /lib/systemd/system/frpc.service
    

    在里面内容如下:

    [Unit]
    Description=frpc.service
    After=network.target syslog.target
    Wants=network.target
    
    [Service]
    Type=simple
    #启动服务的命令(此处写你的frps的实际安装目录)
    ExecStart=/your/path/frpc -c /your/path/frpc.ini
    
    [Install]
    WantedBy=multi-user.target
    

    然后启动frpc

    #启动frpc
    sudo systemctl start frpc
    #自启动frpc
    sudo systemctl enable frpc
    #重启frpc
    sudo systemctl restart frpc
    #停止frpc
    sudo systemctl stop frpc
    

    服务器端与客户端类似的配置。
    官网参考文档




    了解更多请关注作者微信公众号:

    一技破万法

    相关文章

      网友评论

        本文标题:树莓派笔记06-利用frp进行内网穿透实现外网NAS

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