没有IPv4公网,不用愁,这个能帮到你!Plex设置 IPv6远程访问

2023-11-14 16:44:51 14点赞 92收藏 10评论
plexmedia serverplexmedia server

相信好多没有 IPv4 公网的小伙伴,想远程播放 Plex 都是这种情况吧?


其实 Plex 也提供了 IPv6 来解决这个问题的,我今天就是想帮大家解决这个痛点!

N100N100

NAS 你选成品还是 DIY?


我最近入手的康耐信小主机 AIO 入门玩玩不错,很多小伙伴都是玩的这种小主机。我还是第一次玩这种小主机。

2.5G 4网口2.5G 4网口

我买的裸机,还得配上电源、内存、硬盘

电源我是pdd上搞的,nvme 盘搞了个国货 2T

不过成品NAS更方便易用,近期好价也不少!


大家好我迁移到了PVE有几天了!


正在解决一些问题,其中一台PVE机器只有一个网口,默认管理口是 vmbr0。

但是默认 PVE Host 的 vmbr0 是没办法获取 SLAAC IPv6 地址的,查了资料💾 发现只能改内核参数。

具体修改参数如下,在 /etc/sysctl.conf 尾部添加这些。

net.ipv6.conf.all.accept_ra=2

net.ipv6.conf.default.accept_ra=2

net.ipv6.conf.vmbr0.accept_ra=2

net.ipv6.conf.all.autoconf=1

net.ipv6.conf.default.autoconf=1

net.ipv6.conf.vmbr0.autoconf=1

sysctl -p

kernel modkernel mod
  • 改完重启网络服务,就可以获取到 IPv6 地址了

IPv6 地址已获取IPv6 地址已获取

准备条件


  • domain name 你需要有域名一枚

  • 公网IPv6地址 IPv6 address

  • 证书获取工具 推荐使用 acme.sh

acme.shacme.sh

主机环境 Host is PVE

pve envpve env

安装 acme.sh Install acme.sh


大家成品 NAS 可以考虑用 docker 应用或者 NAS 相关的证书应用来搞定这个。

  • 命令

    curl https://get.acme.sh | sh -s email=my@example.com

  • 添加 acme.sh 启动环境,安装 acme.sh 到 home 目录下

    ~/.acme.sh/

  • 并创建 一个 shell 的 alias, 例如 .bashrc,方便你的使用: alias acme.sh=~/.acme.sh/acme.sh

  • 启用环境

    source .bashrc

生成证书


  • 手动 dns 方式

    这种方式的好处是, 你不需要任何服务器, 不需要任何公网 ip, 只需要 dns 的解析记录即可 完成验证. 坏处是,如果不同时配置 Automatic DNS API,使用这种方式 acme.sh 将无法 自动更新证书,每次都需要手动再次重新解析验证域名所有权。

    acme.sh --issue --dns -d mydomain.com --yes-I-know-dns-manual-mode-enough-go-ahead-please

    然后, acme.sh 会生成相应的解析记录显示出来, 你只需要在你的域名管理面板中添加这条 txt 记录即可.

    等待解析完成之后, 重新生成证书:

    acme.sh --renew -d mydomain.com --yes-I-know-dns-manual-mode-enough-go-ahead-please

    注意第二次这里用的是 --renew

    dns 方式的真正强大之处在于可以使用域名解析商提供的 api 自动添加 txt 记录完成验证.

  • api 认证方式

    acme.sh 目前支持 cloudflare, dnspod, cloudxns, godaddy 以及 ovh 等数十种解析商的自动集成.

    以 dnspod 为例, 由于我用的 dnspod 的域名服务。 你需要先登录到 dnspod 账号, 生成你的 api id 和 api key, 都是免费的. 然后:

    export DP_Id="1234" export DP_Key="sADDsdasdgdsf" acme.sh --issue --dns dns_dp -d aa.com -d www.aa.com

    证书就会自动生成了. 这里给出的 api id 和 api key 会被自动记录下来, 将来你在使用 dnspod api 的时候, 就不需要再次指定了. 直接生成就好了:

    acme.sh --issue -d mydomain2.com --dns dns_dp

  • copy/安装 证书

    注意, 默认生成的证书都放在安装目录下: ~/.acme.sh/, 请不要直接使用此目录下的文件, 例如: 不要直接让 nginx/apache 的配置文件使用这下面的文件. 这里面的文件都是内部使用, 而且目录结构可能会变化.

    正确的使用方法是使用 --install-cert 命令,并指定目标位置, 然后证书文件会被copy到相应的位置, 例如:

    Apache example:

    acme.sh --install-cert -d example.com --cert-file /path/to/certfile/in/apache/cert.pem --key-file /path/to/keyfile/in/apache/key.pem --fullchain-file /path/to/fullchain/certfile/apache/fullchain.pem --reloadcmd "service apache2 force-reload"

Plex 证书准备


  • 自定义域支持 PKCS #12 文件路径,其中包含启用 TLS 的证书和私钥。

    由于 Plex 需要 PKCS#12 证书,我们需要把通过 acme.sh 获取的证书转换一下。

    openssl pkcs12 -export -out yourdomain.pfx -inkey yourdomain.key -in fullchain.cer

说明:

​ ​ openssl pkcs12 --export --out 我们需要的证书 --inkey 刚获取的证书密钥 --in fullchain.cer (这个不用 变,用 acme.sh 获取的证书) ​

  • Plex 相关设置

    进入设置 —— 网络 ——

没有IPv4公网,不用愁,这个能帮到你!Plex设置 IPv6远程访问
    • [x] 启动支持 IPv6 的服务器选中☑️ check in

    • 自定义证书位置

      • 这里填写上面一步转换获取的 pkcs#12 的证书保存位置 /your/dir/yourdomain.pfx

    • 自定义证书加密密钥

      • 这里填写 acme.sh 的证书私钥 /your/domain/key

    • 自定义证书域

      • 你的域名 yourdomain.com

    • 自定义服务器访问 URL

      • https://yourdomain:port

      • 例如: https://yourdoain.com:9999

IPv6 设置IPv6 设置

设置完成保存


IPv6 远程设置成功IPv6 远程设置成功

设置好了就可以直接用域名访问了,不过由于这里要 plexmediaserver 官方认证转发会出现提示不安全的情况。


不过这个不是问题!大家同意这个证书就可以了!

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
10评论

  • 精彩
  • 最新
  • ipv6改完只能获取到本地链接地址,没有2408开头的咋办。

    校验提示文案

    提交
    光猫开了ipv6么?

    校验提示文案

    提交
    ikuai 主路由 dhcpv6 有状态模式,其他设备都能正常获取到

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 网址访问可以,但是手机端的app不行 手机端app不支持域名直连

    校验提示文案

    提交
    不应该 可能没有v6地址

    校验提示文案

    提交
    收起所有回复
  • 没看懂,生成证书后是使用plex进行转发?不使用plex不行?

    校验提示文案

    提交
    证书就是直连了,不过plex 要验证一下

    校验提示文案

    提交
    收起所有回复
  • 多谢分享,学习到了

    校验提示文案

    提交
  • 收藏学习专业知识。

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
92
扫一下,分享更方便,购买更轻松