首页 > 其他分享 >群晖内网穿透+域名访问+PLEX APP直接访问

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

时间:2024-04-30 22:33:56浏览次数:16  
标签:conf frps APP plex 访问 域名 frp nginx 内网

本文主要记录自身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无法使用问题

标签:conf,frps,APP,plex,访问,域名,frp,nginx,内网
From: https://www.cnblogs.com/tayxxs/p/18168795

相关文章

  • 内网-ICMP隧道(pingtunnel)
      常用的隧道技术:利用各种隧道技术,以网络防火墙允许的协议,绕过网络防火墙的封锁,实现访问被封锁的目标网络网络层:IPv6 隧道、ICMP 隧道传输层:TCP 隧道、UDP 隧道、常规端口转发应用层:SSH 隧道、HTTP/S 隧道、DNS 隧道 协议判断命令ICMPping ip or domai......
  • TypeScript入门2:类、继承、访问修饰符
    classPerson{//实例属性id:number;name:string;age:number=18;//构造函数constructor(id:number,name:string){this.id=id;this.name=name;}//实例方法introduce():string{return`hello,Iam${this.name},and......
  • [989] How to Use the Apply Method in Pandas
    References:Tutorial:HowtoUsetheApplyMethodinPandaspandas.Series.applypandas.DataFrame.apply1.pandas.Series.applyApplyafunctiontoeachelementofaSeries. importpandasaspd#CreateaSeriess=pd.Series([1,2,3,4,5])#Define......
  • uniapp将图片base64绘制到画布中
     html<viewclass="content"><canvascanvas-id="myCanvas"style="width:300px;height:300px;"></canvas></view> js//获取图片的完整base64this.qrurl=res.data......
  • openGauss 行级访问控制
    行级访问控制行级访问控制特性将数据库访问控制精确到数据表行级别,使数据库达到行级访问控制的能力。不同用户执行相同的SQL查询操作,读取到的结果是不同的。用户可以在数据表创建行访问控制(RowLevelSecurity)策略,该策略是指针对特定数据库用户、特定SQL操作生效的表达式。当......
  • 双栈网络使用什么技术实现总部网络能访问分部网络?
    本文分享自天翼云开发者社区《双栈网络使用什么技术实现总部网络能访问分部网络?》,作者:SD万为了实现总部和分部之间的IPv4和IPv6互访,可以使用以下隧道技术:1、IPv4隧道技术:可以使用GRE(GenericRoutingEncapsulation)隧道技术,在IPv4网络中隧道传输IPv6数据包。在总部和分部之间分别......
  • 攻防世界-难度1- happyctf
    参考https://www.52pojie.cn/thread-1792441-1-1.html查壳无IDA静态分析反编译main函数int__cdeclmain(intargc,constchar**argv,constchar**envp){v3=std::operator<<<std::char_traits<char>>(&std::cout,"pleaseinputflag");......
  • 【Azure Logic App】使用 Easy Auth 在标准逻辑应用(Standard Logic App)中触发工作流
    问题描述对于StandardLogicApp,当使用HTTP请求来触发一个Workflow时,默认固定不变的SAS签名认证,因并且随着URL传递,存在泄露风险。是否可以用Header中使用BearerToken来进行验证呢? 问题解答可以的,为StandardLogicApp开启EasyAuth。EasyAuth使通过触发器对工作流调用......
  • 远程访问及控制
    目录1.SSH远程管理(1)配置OpenSSH服务端(2)使用SSH客户端程序(3)密钥对验证的SSH体系(1)SSH的验证方式(2)ssh密钥对的创建和使用(3)ssh密钥对免交互登录2.TCPWrappers访问控制(1)TCPWrappers概述(2)TCPWrappers访问策略(1)TCPWrappers机制的保护对象为各种网络服务程序,针对访问服务的客户端地址......
  • 问题解决:Failed to download metadata for repo ‘appstream‘: Cannot prepare inter
    大家都知道Centos8于2021年年底停止了服务,大家再在使用yum源安装时候,出现下面错误“错误:Failedtodownloadmetadataforrepo‘AppStream’:Cannotprepareinternalmirrorlist:NoURLsinmirrorlist”1、进入yum的repos目录代码语言:javascript复制cd/etc/yum......