前段时间觉得自己的硬盘不够用,而且有一些远程访问资源和远程下载任务的需求; 跟女朋友商量一下, 批了资金买了一个群辉 NAS; 因为家里的网络条件没有公网 ip, 光猫拨号上网, 群辉自带的 quickconnect 连接速度太慢了; 趁着国庆在家就研究了一下内网穿透的技术;想通过内网穿透来访问家里的群辉

关于内网穿透

本来打算用路由器做内网穿透,然后给 nas 做端口转发, 但是华硕 AC66U-B1刷了梅林之后打游戏老掉包, 于是就在 nas 上做了内网转发; 内网穿透的服务有好几种: eg: * 花生壳 —–> 死贵 * nat123 —–> 没用过 * ngork —–> 刚开始用的这个, 但是找了好几个帖子,提供的客户端的配置文件和应用程序都不能下载了(不想花钱); 放弃了; * frp —–> 当前使用的 * 还有一些淘宝上的盒子, 都比较贵 选择 frp 是因为之前购买的 vps 除了 ss 服务没有其他业务运行, 放着也是浪费, 而且测了一下连接速度很快,不得不提我这个 vps速度真的很快, vultr的vps加了 bbr 之后在线看4K无压力的 ;

需要准备的材料

  • 一台有独立 IP 的服务器 (例如:vps, 阿里ECS)
  • 一台 NAS 或者需要做内网穿透的客户端
  • frp 文件

安装

服务器端配置

  1. 登录到服务器,选择适合自己服务器的文件下载, 点击下载

    1
    2
    eg: 我的服务器是 arm64, 系统版本是 linux-centOS
    wget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_arm64.tar.gz
  2. 下载后完成解压

    1
    tar -xzf  frp_0.21.0_linux_arm64.tar.gz
  3. 进入到服务器 frp 目录,并删除无用文件

    1
    2
    3
    4
    cd frp_0.21.0_linux_arm64
    //frpc 开头的是客户端的配置文件和资源, 服务端可删除
    //frps 开头的是服务端的配置文件和资源, 客户端可删除
    rm -f frpc.ini frpc_full.ini
  4. 编辑服务端配置文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    [common]
    bind_port = 7000
    vhost_http_port = 8080
    dashboard_port = 7500
    dashboard_user = you's name
    dashboard_pwd =
    max_pool_count = 5
    authentication_timeout = 900
    subdomain_host = lekee.cc
    [ssh]
    listen_port = 6000
    auth_token = you's token,(客户端的保持一致)
    /**
    [common] 必填的
    bind_port Frp 服务端口(可自定义)
    vhost_http_port http 访问端口(可自定义)
    dashboard_port dashboard 界面端口
    dashboard_user 登录 dashboard 用户名
    dashboard_pwd 登录 dashboard 密码
    max_pool_count 最大连接池数量
    authentication_timeout 超时验证时间
    subdomain_host 自定义二级域名
    [ssh]
    listen_port ssh 访问端口
    auth_token 用户身份认证
    */

    如果需要更详细的,可以参考官方文档

  5. 保存配置文件, 然后运行

    1
    2
    ./frps -c ./frps.ini
    也可以通过 screen 或者 nohup 命令进行后台运行

客户端配置

客户端配置与服务端很相似, 区别在于配置文件的不同; frp 客户端支持 windows, Mac, 路由器,和linux 内核设备;群辉 nas 是基于 linux 的, 可以使用 linux 版本的 frp 客户端;

  1. 开启 shh 登录,控制面板打开终端机和 SNMP, 勾选启动 ssh ;

  2. 登录到 nas ,下载 frp

    1
    2
    3
    4
    5
    6
    7
    8
    9
    eg:
    ssh xiaoxiaosu@192.168.xxx.xxx
    ssh user@ipAdd
    //下载
    wget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_arm64.tar.gz
    //解压
    tar -xzf frp_0.21.0_linux_arm64.tar.gz
    //删除无用配置文件
    rm -f frps.ini frps_full.ini
  3. 编辑客户端配置文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    vi frpc.ini
    [common]
    server_addr = xxx.xxx.xxx.xxx(服务器的 ip)
    server_port = 7000
    auth_token = password
    pool_count = 1
    [ssh]
    type = tcp
    local_ip = xxx.xxx.xxx.xxx(NAS 的局域网ip)
    local_port = 22
    remote_port = 6000
    [nas]
    type = http
    local_port = 5000
    subdomain = nas

    [common] 必填的 server_addr —–>服务器端公网 server_port —–>frp 服务端口,和服务器端 bind_port 一致 auth_token —–> 和前面服务器端 [ssh] auth_token 一致 pool_count —–>连接池数量 [ssh] type —–> 服务类型(tcp、http、https、udp) local_ip —–> NAS 本地局域网内网 ip local_port —–> NAS 开启 ssh 服务端口号,默认 22 remote_port —–> 服务器端 ssh 端口,和服务器端 [ssh] listen_port 配置一致 [nas] NAS 管理界面 subdomain —–> 二级域名 nas.52smile.vip 访问 NAS type = http —–> 服务类型为 http local_port —–> NAS 默认端口 5000 [web] NAS web Station 服务,没用可以不用设置 type = http —–> 类型为 http local_port = 80 —–> NAS web 服务端口 subdomain = web —–> 二级域名 web.52smile.vip tip: 使用自定义二级域名的时候,域名 52smile.vip 要解析到服务器 IP

  4. 保存配置文件, 然后运行

    1
    2
    ./frpc -c ./frpc.ini
    也可以通过 screen 或者 nohup 命令进行后台运行

到此就完成了;

我测试了一下在线观看视频, 包括下载文件的速度.都是可以的.