群晖内网穿透+域名访问+PLEX APP直接访问

本文主要记录自身PLEX通过APP访问的记录,也算是一个教程。
另感谢各教程贡献者,详见参考
本教程重点在内网穿透的域名访问内网资源。

适用人员

针对无公网IP,同时PLEX安装在群晖或其它NAS上的,希望在外网使用pelx 应用访问家中资源的人(其它系统也类似,原理相同)

前期准备

购买云服务器

因为选择云服务器的主要原因是实现内网穿透,对设备之间进行搭桥,因此购买时需要着重考虑服务器的上行与下行速度。换言之,我们需要购买一台带宽高(类似于NAT机)的云服务器。
高上行与下行速度的云服务器确实也不少。无论是阿里云、腾讯云都有许多类似的服务器,但价格似乎有些不敢恭维了。
我使用的是AZURE云服务器(日本西南节点),新人有一年免费使用权,可以流畅播放2K内网视频。
其它的服务器选择可以看其它教程,按需选择。

域名注册

选个大的域名服务商注册即可,国内腾讯、阿里、华为均可,国外的话我没有这个需求,请自行查资源。具体可以见另一个博主的文章——新手建网站域名申请技巧和注意事项
暂定域名为 test.vip

域名解析

注册完毕后,可以在服务上中设置域名解析,IP指向服务器的IP地址,子域名可以使用www,可以针对特定服务,指定子域名,如plex
image.png

加上子域名完整域名为 plex.test.vip

FRP安装与配置

找到需要的frp版本,获取下载链接

进入frp下载页面, 找到需要下载的版本
image.png

登陆VPS

使用SSH登陆VPS,并执行以下命令下载对账版本的FRP
如果没有权限,开头添加sudo即可。

wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz

解压下载的压缩文件

tar -zxvf frp_0.36.2_linux_amd64.tar.gz

查看解压情况

ls

image.png
成功解压,为了方便后续操作,建议重名为frp

mv frp_0.36.2_linux_amd64 frp

进入到frp目录,找到frps.ini

vi frps.ini

vi打开文件进行修改,不会的话请查看参考-3
加入一行token,大家可以自行设置,但是这个是明文密码,不要设置自己的常用密码即可。
image.png
保存后推出vi

./frps -c frps.ini

执行上命令,可以看到服务端启动成功了
注意VPS需要开通该端口权限。
首先ctrl c退出frps服务,然后输入以下命令

iptables -I INPUT -ptcp --dport 7000 -j ACCEPT

输入以下代码进行服务设置

vi /lib/systemd/system/frps.service

i键进入编辑模式

黏贴下列命令

[Unit]
Description=fraps service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
ExecStart=/root/frp/frps -c /root/frp/frps.ini
[Install]
WantedBy=multi-user.target

image.png

按esc键 输入 :wq 回车
启动frp服务

systemctl start frps

设置自动启动

systemctl enable frps

查看frps运行状态

systemctl status frps

image.png

如果需要重启服务,使用以下命令

systemctl restart frps

群晖端配置

客户端配置文件

新建frpc配置文件,文件名为frpc.ini
因为我只想暴露plex,所以开放了plex访问端口

# frpc.ini
[common]
server_addr = plex.test.vip #之前申请的域名
server_port = 7000 #frps服务端端口 对应bind_port
token = 123456 #frps服务端设置的token

[plex]
type = tcp
local_ip = 127.0.0.1 #也可以是内网访问群晖的ip或地址
local_port = 32400 #访问plex的内网端口
remote_port = 6666 #映射到外网的登陆端口,可以自行设置,如6666

保存文件至docker有权限访问的目录,如 /docker/frp/
image.png

安装docker版frp

群晖-->docker-->注册表-->搜索frp
选择
image.png
或者
image.png

点击下载,选择最新即可
image.png

点击映像,待下载完毕点击启动
点击高级设置
image.png

点击,点击添加文件配置文件映射
image.png

点击网络,勾选**使用与Docker Host相同的网络
image.png

点击环境,修改ARGSfprc
image.png

点击应用,下一步,应用,启动Frp
image.png

测试外网是否可以打开
输入 plex.test.vip:6666*端口6666对应fprc.ini中的remote_port配置
image.png

可以看到正常打开plex页面

SSL证书不大想弄,可以试试
plex加载登陆界面会比较慢
到了这一步很多人已经很满足了,但是网页加端口太不方便了,哪有只输入网址爽,可以使用nginx代理下解决此问题

NGINX代理

使用SSH登陆VPS

安装 nginx

sudo apt-get install nginx

配置nginx

默认配置文件路径/etc/nginx/nginx.conf
这个文件里可能会有引用,比如
include /etc/nginx/conf.d/*.conf;
那么实际上你的项目配置文件就是在/etc/nginx/conf.d/这个文件夹下的所有.conf文件;
一般一个项目(域名)配一个文件,比如你的域名是www.baidu.com,那么你的配置文件就可以叫
/etc/nginx/conf.d/www.baidu.com.conf

如`plex.test.vip.conf
image.png

编辑配置文件

vi /etc/nginx/conf.d/plex.test.vip.conf

复制以下内容到编辑框中说明见下图

upstream plex {
  server 127.0.0.1:6666;
}
server {
  listen 80;
  listen [::]:80;
  server_name plex.test.vip;
  client_max_body_size 1024m;
  location / {
    proxy_pass http://127.0.0.1:6666;
    proxy_set_header HOST $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

image.png

nginx服务相关的操作可以不必使用systemctl或service,可以直接使用
直接启动服务

nginx

重启服务

nginx -s reload

查看nginx当前的状态

systemctl status nginx

测试输入域名访问
image.png

这时候已经可以在外网愉快的访问了,但是只能通过浏览器操作,想直接用plex应用访问,还得看下一步

PLEX服务端设置

打开Plex服务器,设置->网络,找到 Custom server access URLs
image.png

你填写的URL就是你穿透出去的域名或者IP,例如

http(s)://xx.xx.xx.xx:[穿透端口]  或者
http(s)://plex.test.vip:[穿透端口] 

注意
建议使用IP地址,因为有些国内的域名,Plex是解析不到的
务必取消勾选上方的【Enable Relay】,具体原因和原理参见 【Plex】 Enable Relay原理及功能介绍

结语

配置完后,就可以愉快的访问plex,如果慢的话,就买个带宽大的VPS!


参考

  1. 群晖DS218+ 内网穿透笔记
  2. 域名注册 新手建网站域名申请技巧和注意事项
  3. NAS 篇十一:小白上手教程,自建Frp内网穿透,实现外网访问nas设备
  4. 使用apt-get安装Nginx
  5. FRP内网穿透后 App无法使用问题
posted @ 2024-04-30 22:22  爱幻想的猫  阅读(414)  评论(0编辑  收藏  举报