51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

一键脚本自建 Frp 内网穿透访问家里 NAS 和软路由

最近买了一台二手的群晖 NAS,虽然自带 quickconnect 可以免费进行内网穿透,但是这个小水管实在是非常勉强,于是又折腾了一遍 Frp 来做内网穿透。在之前的文章中也已经记录过了搭建 Frp 的过程,这次新增了访问 NAS 部分的内容,以及反向代理子域名来访问内网服务,更加便捷。
目录

  1. Frp 的搭建
  2. NAS 设置
  3. Openwrt 软路由设置
  4. 反向代理一个域名
  5. 注意
  6. 后记
  7. 参考文章

Frp 的搭建 {#rtoc-1}

  1. SSH 进入 VPS 后台,

  2. 创建一个文件夹
    mkdir ~/data/frp
    进入该文件夹
    cd~/data/frp

  3. 一键脚本进行搭建

    wget https://raw.githubusercontent.com/mvscode/frps-onekey/master/install-frps.sh -O ./install-frps.sh
    chmod 700 ./install-frps.sh
    ./install-frps.sh install
    
  4. 按照脚本引导进行安装就好

    Please select frps download url: [1].gitee [2].github (default) Enter your choice (1, 2 or exit. default [github]): 2

        Your select: 2    
    

    Please input frps bind_port [1-65535](Default Server Port: 5443):[按需修改] frps bind_port: [按需修改]

    Please input frps vhost_http_port [1-65535](Default : 80): frps vhost_http_port: [按需修改]

    Please input frps vhost_https_port [1-65535](Default : 443): frps vhost_https_port: [按需修改]

    Please input frps dashboard_port [1-65535](Default : 6443): frps dashboard_port: [按需修改]

    Please input frps dashboard_user(Default : admin): frps dashboard_user: [修改成自己的]

    Please input frps dashboard_pwd(Default : [修改成自己的] frps dashboard_pwd: [修改成自己的]

    Please input frps token(Default : tX5atsFBeqfcucGD):[修改成自己的] frps token: [修改成自己的]

    Please input frps subdomain_host(Default : x.x.x.x): frps subdomain_host: [默认就行]

    Please input frps max_pool_count [1-50] (Default : 5):[默认就行] frps max_pool_count: 5

    Please select log_level 1: info (default) 2: warn 3: error 4: debug 5: trace

    Enter your choice (1, 2, 3, 4, 5 or exit. default [1]): [默认就行] log_level: info

    Please input frps log_max_days [1-15] (Default : 3 day):[默认就行] frps log_max_days: 3

    Please select log_file 1: enable (default) 2: disable

    Enter your choice (1, 2 or exit. default [1]): [默认就行] log_file: enable

    Please select tcp_mux 1: enable (default) 2: disable

    Enter your choice (1, 2 or exit. default [1]): [默认就行] tcp_mux: true

    Please select transport protocol support 1: enable (default) 2: disable

    Enter your choice (1, 2 or exit. default [1]): [默认就行]

    Please input frps kcp_bind_port [1-65535](Default kcp bind port: 6443):[按需修改] frps kcp_bind_port: [按需修改]

    Please input frps quic_bind_port [1-65535](Default quic bind port: 6081):[按需修改] frps quic_bind_port: [按需修改]

    transport protocol support: enable>)


  1. 搭建完成后,浏览器通过 http://ip+dashboard_port 就可以访问 frp 的面板,账号密码都是刚刚设置的内容。如果后面 NAS 或者软路由成功连接上这台 VPS,在面板中是可以看到的,除此之外面板平时不会用到。

NAS 设置 {#rtoc-2}

  1. 进入群晖,找一个或创建一个新文件夹用于存放配置文件(稍后会用到)。例如/docker_data/frp,然后在电脑中创建一个文本文件内容填写如下:

    [common]

    server_addr = 000.111.222.333 (你的VPS IP)

    server_port = 5443(VPS 上搭建 frp 时设置的 bind_port)

    token = 你的token

    [NAS]

    type = tcp

    local_ip = 192.168.1.10 (NAS 的局域网ip)

    local_port = 5000 (群晖一般默认5000)

    remote_port = 9001 (与 VPS 通信的端口,需填写一个新的,不要与前面的冲突)

    use_encryption = true

    [emby] (如果没有,可以删除这部分)

    type = tcp

    local_ip = 192.168.1.23

    local_port = 8096

    remote_port = 9002 (再填写一个新的)

    use_encryption = true


并保存为名为frpc.toml的文件,记得把括号及括号内的内容删掉,将文件上传/docker_data/frp目录下。

  1. Container Manager中搜索Frpc,并找到stilleshan/frpc下载。
  2. 下载完成后运行容器,有两个地方需要设置
    1. 记得开启启用自动重新启动
    2. 存储空间设置处,点击添加文件(不是添加文件夹),左边选择刚刚上传的文件/docker_data/frp/frpc.toml,右边填入 /frp/frpc.toml 即可。
  3. 现在回到 frp dashboard 就可以看到建立连接的信息了,并且通过 vps的ip + 刚刚填入的 remote_port 就可以访问 NAS 了。

Openwrt 软路由设置 {#rtoc-3}

  1. 进入 openwrt 软路由后台,点击服务--Frp内网穿透
  2. 按照截图内容输入对应的参数,服务器填写VPS的IP地址端口填写binding_porthttp穿透服务端口填写vhost_http_porthttps穿透服务端口填写vhost_https_port
  3. 在服务列表下方点击添加,按照截图填入配置。Frp协议类型选择TCP远端端口填入一个新的端口不要与其他冲突,比如9003内网主机地址选择软路由后台地址的IP内网主机端口填写80
  4. 结束后点击保存&应用即可,现在在 frp dashboard 中可以看到新的连接,并且通过 vps的ip + 刚刚填入的远端端口 就可以访问软路由后台了。

软路由后台设置 软路由后台设置

反向代理一个域名 {#rtoc-4}

这一步不是必须的,只是因为使用 ip+端口号的形式远程访问不太方便,可以通过反向代理后使用子域名来访问我们内网的服务。

  1. 解析一个或多个子域名到我们的 VPS,取决你有几个远程服务,以一台 NAS 为例。
  2. 通过宝塔面板、1Panel、NPM等工具对这个子域名 nas.example.com 进行反向代理,代理的地址为 http://127.0.0.1:9001 (端口号与前面 NAS 配置文件中的 remote_port 一致,如果是反向代理的软路由后台,就与远端端口保持一致即可),并且配置 SSL 证书。
  3. 完成后即可通过 nas.example.com直接访问内网服务了。

注意 {#rtoc-5}

  1. 以上的端口号不用冲突,可以在 SSH 后终端里输入 lsof -i:端口号来确认该端口号是否被占用,如果没有被占用则不会返回任何结果,如果有返回结果说明该端口已被其他服务所占用,就换一个。
  2. 记得在防火墙处放行上面所有用到的端口,特别是使用阿里云、腾讯云的 VPS。

后记 {#rtoc-6}

本人使用的是阿里云香港的服务器,在下午 6 点左右测试,观看内网 emby 的电影速度可以达到 3M/s,速度还是不错的,足够使用了。

另外,我也尝试过搭建 tailscale 做内网穿透,速度没有 Frp 快,而且 tailscale 需要下载一个客户端,每次使用还需要开启这个客户端,不太方便,但是 tailscale 看上去更加安全保险一些。如果你想尝试 tailscale 的搭建,可以参考这篇文章

参考文章 {#rtoc-7}

赞(0)
未经允许不得转载:工具盒子 » 一键脚本自建 Frp 内网穿透访问家里 NAS 和软路由