NAS中使用frp实现互联网访问

群晖配置内网穿透

Posted by xtong on July 1, 2022

黑群晖实现互联网访问

2013年购买的联想Y510P笔记本电脑,在2017年退役了。它的经历也挺丰富的:

  • 刚买回来自带 win8 系统,觉得不好用
  • 重新安装 win7 系统,两年后,慢慢地不那么流畅了
  • 增加内存条续命
  • 安装 win7 & Ubuntu 双系统
  • 升级 win7 到 win10 系统,比 win7 好一点,但也很卡
  • 双系统中,Ubuntu 成为主力操作系统,工作两年后被 小米pro取代,一直吃灰

而在2021年10月,吃灰4年后的它,被我想起。决定用它做一个黑群晖系统。于是在2021年10月10日,它又以全新的面貌——NAS,继续发光发热。

黑群晖安装成功后,我开始研究如何让他互联网可以访问到。终于,找到了一套方案,很适合我的方案。

准备工作:

  • 一台互联网云服务器(Linux系统)
  • 一个个人域名

云服务器我使用的是腾讯云服务器,安装系统 CentOS 7.6。

这个是我在2021年腾讯云618活动,以 74元/年 的价格购买的

  • 2核4G
  • 80G硬盘
  • 8M带宽(1200G/月)

的轻量云服务器,很划算,跑 frps 很够用 。

当然,今年腾讯云618,我在6月30日又买了一台(新用户,认证一下家人朋友的身份证),128元/年 没有去年划算,但也是超值,

  • 2核4G
  • 60G硬盘
  • 6M带宽(1000G/月)

活动地址:https://cloud.tencent.com/act/pro/618season?cps_key=2583216d4824b110a9a8c6a48659a874&from=618season

域名是在阿里云买的,好像并没有什么优惠。

1 域名配置

在域名服务商解析域名到云服务器IP。

注意:防火墙端口打开【5000,5001,7000】,后面会用到。

2 服务器上安装 frps

远程到云服务器上,执行

1
2
3
wget https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_amd64.tar.gz

tar -zxvf frp_0.37.1_linux_amd64.tar.gz

然后进入解压目录中,编辑 frps.ini (这里只写 bind_port 和 token 就行,vhost_http_port 和 vhost_https_port 好像没有作用的,要看客户端怎么配置)

1
2
3
4
5
6
[common]
bind_port = 7000
vhost_http_port = 5000
vhost_https_port = 5001
token = my.token.is

/usr/lib/systemd/system/ 下,创建或编辑 frps.service

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[Unit]

Description=fraps service

After=network.target syslog.target

Wants=network.target

[Service]

Type=simple

ExecStart=/root/frp_0.37.1_linux_amd64/frps -c /root/frp_0.37.1_linux_amd64/frps.ini

[Install]

WantedBy=multi-user.target

然后可以使用 systemctl 运行或停止 frps 了。

1
2
3
4
systemctl start frps

systemctl stop frps

3 黑群晖上安装frpc

在群晖上,安装并打开 docker,安装 frpc。

使用项目:https://registry.hub.docker.com/r/stilleshan/frpc/

docker => 映像(镜像) => 新增 => 从 URL 添加 => 【Hub 页面或储存库 URL:https://registry.hub.docker.com/r/stilleshan/frpc/】 => 新增 => 0.37.1 版本(与服务器端frps一致)

编辑 frpc.ini 配置文件

参考配置:

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
27
[common]
server_addr = www.xtongs.com
server_port = 7000
token = my.token.is

[http.xtongs]
type = http
local_ip = 127.0.0.1
local_port = 5000
remote_port = 5000
custom_domains = www.xtongs.com

[https.xtongs]
type = https
local_ip = 127.0.0.1
local_port = 5001
remote_port = 5001
custom_domains = www.xtongs.com

;这个是 webdav 的配置参考
[https.webdav]
type = tcp
local_ip = 127.0.0.1
local_port = 5006
remote_port = 5006
custom_domains = www.xtongs.com

创建并启动容器

  • 使用高权限执行容器
  • 高级设置
      • 添加文件,文件路径: docker/frp/frpc.ini, 装载路径: /frp/frpc.ini
    • 网络
      • 使用与 Docker Host 相同的网络

设置完成后,运行容器。


然后就可以通过 https://{域名}:5001 来访问你的 NAS 了。

参考资料