双11购置了一台16g内存的群晖DS918+,购买之后安装了一些基本套件就没咋玩了。原因是大部分时间其实都不在家,无法在外网访问成了最大的问题。家里宽带是广东电信的,公网IP基本没戏了,恰好双11撸了一台腾讯云8M带宽的机器,借助这台机器来做内网穿透,方案的话就选用最常见的Frp。
前提
- 一台公网服务器(我用的腾讯云轻量2核4G8M带宽 3年160)
- 一台群晖NAS
腾讯云服务器配置
在腾讯云轻量服务器中找到防火墙开放相应端口(通常只需要开放5005,2222,5007,443,5001,7500,7000等端口,详细端口根据frp配置文件决定), 嫌麻烦又不介意安全的话可以把所有端口全开放。
frps安装配置
frp服务端程序和客户端程序版本最好是保持一致。在云服务器上安装frp服务端wget https://d.frps.cn/file/frp/v0.37.0/frp_0.37.0_linux_amd64.tar.gz tar xf frp_0.37.0_linux_amd64.tar.gz cd frp_0.37.0_linux_amd64 vim frps.ini
云服务器上注意是修改frps.ini,不是frpc.ini。服务端frps.ini的配置如下
[common] bind_port = 7000 dashboard_port = 7500 token = password
bind_port 是frp服务端和客户端连接的接口,之后客户端设置时需保持一致
dashboard_port 是frp仪表板端口, 可以通过服务器IP:7500访问,查看流量等运行信息。
token 可自行设置, 在客户端设置的时候记得保持一致即可。启动frp服务端
先运行./frps -c frps.ini
,如果没有输出报错信息说明frp能够正常启动。
为了让frp服务端能够随着服务器自启,可以将frps放入system管理#进入刚刚安装的文件夹下的systemd目录 cd frp_0.37.0_linux_amd64/systemd/ vim frps.service
文件如下,只需要将文件中的ExecStart启动路径修改成自己的。
[Unit] Description=Frp Server Service After=network.target [Service] Type=simple User=root Restart=on-failure RestartSec=5s ExecStart=/home/ubuntu/software/frp_0.37.0_linux_amd64/frps -c /home/ubuntu/software/frp_0.37.0_linux_amd64/frps.ini #只需要将上面的路径改成自己的路径 [Install] WantedBy=multi-user.target
服务端开启
cp frps.service /lib/systemd/system/ systemctl enable frps systemctl start frps
启动成功后,可以使用命令
ps -ef|grep frp
或者网页访问服务器IP:7500
查看是否启动成功。
群晖NAS配置
本人群晖系统版本是7.0,需要先在套件中心安装docker
在群晖NAS的docker中打开注册表,搜索frps,选择
stilleshan/frps
,点击下载的时候需要选择和服务端同样的版本,这里我们选0.37.0准备frp客户端的配置文件
在本地新建一个文件命名为frpc.ini
,文件内容如下[common] server_addr = XXX.XXX.XX #替换成自己的腾讯云的公网IP或者将 对应域名 域名需要CNAME指向服务器IP server_port = 7000 token = password [ssh] type = tcp local_ip = 192.168.31.10 #此处填写群晖NAS的内网地址 local_port = 22 remote_port = 2222 [dsm] type = tcp local_ip = 192.168.31.10 local_port = 5000 remote_port = 5443 [ds_file] type = tcp local_ip = 192.168.31.10 local_port = 5001 remote_port = 5001 [https_webdav] type = tcp local_ip = 192.168.31.10 local_port = 5006 remote_port = 5007 [http_webdav] type = tcp local_ip = 192.168.31.10 local_port = 5004 remote_port = 5005 [emby] type = tcp local_ip = 192.168.31.10 local_port = 8096 remote_port = 8096
编辑保存文件后将文件放入群晖NAS内部的文件夹下,7.0安装docker的时候会自动创建一个docker文件夹,在里面创建一个目录frpc,将文件放入其中。
启动容器,在映像中选中刚刚下载的容器,点击启动选择高级设置-存储空间,添加文件如图。
点击高级设置-网络,勾选使用与Docker Host相同的网络
点击应用,确认配置没问题后启动容器即可。
外网访问
输入腾讯云服务器公网域名+相应端口就能直接访问了。
这里还存在一个问题,如果不想加端口访问怎么办?有几种方法
- 添加域名反向代理,如果服务器上安装了宝塔面板的话,操作很简单。具体可以查看内网穿透Nas这位大佬的配置
- 在frpc.ini配置文件中给相应端口加上custom_domains配置,具体可以查看群晖Docker FRP内网穿透教程这位大佬的配置