PLEX无需公网IP启用远程访问功能 您所在的位置:网站首页 访问功能 PLEX无需公网IP启用远程访问功能

PLEX无需公网IP启用远程访问功能

2024-03-10 23:58| 来源: 网络整理| 查看: 265

1. 简介

本地的PLEX服务器远程访问功能显示无法访问,提示“您的服务器已登录到plex但是无法从您的网络外部进行连接”

查看官方文档可知如需在外访问PLEX服务器,需要具备以下条件

宽带具备公网IP 路由器设置端口转发

这很合理,不合理的是国内畸形网络环境导致家用宽带不仅网络速度上行不佳,连公网IP也是不具备的

很不幸,我本地的网络环境是小区带宽,别说公网IP了,连上行带宽都不足10Mbps

即便如此,7-8Mbps也是足够看PLEX 720P视频,在外面刷刷美剧还是美滋滋的

思索肋下,要解决这个问题就需要让本地的PLEX服务器具备公网IP就可以了

2. 解决方案2.1. 原理

具备公网IP的VPS是符合PLEX远程访问要求的,在VPS上面部署PLEX服务,那么远程访问是不会有任何问题的

设置路由端口转发的意义是因为通常具备公网IP的是路由器,而家庭设备都是局域网IP,通过NAT转发网络请求

那么问题就比较简单了,我们需要做的就是让PLEX机器认为“自己拥有VPS的公网IP”

这里假设我的VPS IP:119.119.119.119,再借助HTTP代理与内网穿透功能就可以让PLEX机器拥有公网IP了

2.2. VPS配置2.2.1. GOST

首先借助GOST在VPS上搭建一个简易HTTP代理服务器,GOST仓库:github.com/ginuerzh/gost

下载解压后运行

wget https://github.com/ginuerzh/gost/releases/download/v2.11.1/gost-linux-amd64-2.11.1.gz gzip -d gost-linux-amd64-2.11.1.gz gost-linux-amd64-2.11.1 -L=user:[email protected]:8080

在本地shell中进行对代理进行验证测试能否通过VPS代理访问外网

export HTTPS_PROXY="http://userl:[email protected]:8080" curl https://api.chancel.me/rest/api/v1/ip # 输出如下 {"status":1,"msg":"查询成功","data":{"ip":"119.119.119.119"}}

确认GOST运行没有问题之后,添加到Supervisor后台进程(可选)

cat /etc/supervisor/conf.d/gost.conf # 输出如下 [program:gost-18080] command=/usr/local/programs/gost/gost-linux-amd64-2.11.1 -L=user:[email protected]:8080 autostart=true autorestart=true startsecs=10 user = apps 2.2.2. FRPS配置

FRP是内网穿透工具,简单讲就是把VPS上某个端口转发到本地机器

这一步使用SSH转发也可以,只是我恰好有不少本地服务都是通过FRP代理到VPS上的,这里就直接使用FRP作为穿透工具

在VPS上面下载FRP并解压,官方仓库传送门:github.com/fatedier/frp

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

编辑FRP服务端配置文件frps.ini

cat frps.ini # 输出如下 [common] bind_port = 7000 token = passwd

运行服务端的FRP程序

/usr/local/programs/frp_0.34.0_linux_amd64/frps -c /usr/local/programs/frp_0.34.0_linux_amd64/frps.ini

确认运行没有问题之后,添加到Supervisor后台进程(可选)

cat /etc/supervisor/conf.d/frps.conf # 输出如下 [program:frps] command=/srv/frp/frp_0.33.0_linux_amd64/frps -c /srv/frp/frp_0.33.0_linux_amd64/frps.ini autostart=true autorestart=true startsecs=10 user=apps 2.3. PLEX机器配置2.3.1. PLEX设置HTTP代理

VPS的HTTP代理有了,接下来给PLEX挂HTTP代理即可

检查PLEX的systemd配置文件,发现可以直接引入HTTP代理,太好了

在/lib/systemd/system/plexmediaserver.service 引入以下网络代理信息

Environment="HTTP_PROXY=http://userl:[email protected]:8080" Environment="HTTPS_PROXY=http://userl:[email protected]:8080"

整体文件如下

cat /lib/systemd/system/plexmediaserver.service # 输出如下 ... [Service] Environment="PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR=/var/lib/plexmediaserver/Library/Application Support" Environment=PLEX_MEDIA_SERVER_HOME=/usr/lib/plexmediaserver Environment=PLEX_MEDIA_SERVER_MAX_PLUGIN_PROCS=6 Environment="HTTP_PROXY=http://userl:[email protected]:8080" Environment="HTTPS_PROXY=http://userl:[email protected]:8080" ExecStartPre=/bin/sh -c '/usr/bin/test -d "${PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR}" || /bin/mkdir -p "${PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR}"' ExecStart=/bin/sh -c '\ export PLEX_MEDIA_SERVER_INFO_VENDOR="$(grep ^NAME= /etc/os-release | awk -F= "{print \\$2}" | tr -d \\" )"; \ export PLEX_MEDIA_SERVER_INFO_DEVICE="PC"; \ export PLEX_MEDIA_SERVER_INFO_MODEL="$(uname -m)"; \ export PLEX_MEDIA_SERVER_INFO_PLATFORM_VERSION="$(grep ^VERSION= /etc/os-release | awk -F= "{print \\$2}" | tr -d \\" )"; \ exec "/usr/lib/plexmediaserver/Plex Media Server"' Type=simple ....

重新读取PLEX的配置文件并重启服务

sudo systemctl daemon-reload sudo systemctl restart plexmediaserver.service

登录PLEX后台查看远程访问信息,可以看到外网IP变成了VPS的IP地址了

但是仍然显示无法访问,这是因为端口并没有从VPS转发回来给我们的PLEX服务器

我们还得在本地用FRP客户端连接FRP服务端,接收VPS的端口转发,将指定端口转发到我们的PLEX服务器上

2.3.2. FRPC配置

与VPS配置相似的,我们在本地PLEX机器上下载FRP并解压

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

编辑FRP客户端配置文件frpc.ini

cat frpc.ini # 输出如下 [common] token = passwd server_addr = 119.119.119.119 server_port = 7000 [HOME_PLEX_SERVICE] local_ip = 127.0.0.1 type = tcp local_port = 32400 remote_port = 32400

确认运行没有问题之后,添加到Supervisor后台进程(可选)

cat /etc/supervisor/conf.d/frpc.conf # 输出如下 [program:frpc] command=/usr/local/programs/frp/frp_0.33.0_linux_arm64/frpc -c /usr/local/programs/frp/frp_0.33.0_linux_arm64/frpc.ini autostart=true autorestart=true startsecs=10 user=apps 2.4. 验证

打开PLEX后台-远程访问,选择手动指定端口,输入32400,点确认后可以看到远程访问提示可用,如下图

完美!

3. 资料参考

Support Articles - plex.tv



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有