为了能在外面访问家里的 plex 内网服务器,除了 ddns 以外,还有一个比较方便的东西就是 cloudflare tunnel。ddns 的话配置起来比较麻烦,而且 cloudflare tunnel 是自带 ssl 证书的,节省了配置证书的烦恼,而且不用暴露 plex 的端口到公网,比较安全;但是有一个缺点就是 cloudflare 国内访问比较慢,我就为了在手机上用 plexamp 听歌,好像也没啥影响。

安装 cloudflared

因为我的 plex 是装在树莓派上,直接安装就行了:

sudo pacman -S cloudflared

创建 tunnel

cloudflared tunnel login

会有一个浏览器地址,打开以后登陆认证然后选择对应的域名就行。

cloudflared tunnel create plex

cloudflared tunnel route dns plex plex.marlinz.me # 后面就是自定义的域名

创建一个配置文件: vim config.yml

tunnel: xxxxxxx-5b0e-xxxx-8034-xxxxxxx
credentials-file: /root/.cloudflared/xxxxxxx-5b0e-xxxx-8034-xxxxxxx.json
ingress:
  - hostname: plex.marlinz.me
    service: http://localhost:32400
  # 如果有其他的服务也可以配置在 ingress 下面,但是先要 route dns
  - hostname: speedtest.marlinz.me
    service: http://localhost:8888
  - service: http_status:404  # 最后需要配置这个,以 cover 其他所有请求

将配置文件放到~/.cloudflared目录下面。

配置 cloudflare 为系统服务

cloudflare service install

好了。现在 plex 虽然监听的 127.0.0.1:32400 但是访问域名就访问到 plex 了!验证一下,先退出 plexamp 的帐号重新登陆,用流量发现能访问到服务,如果在局域网的话音乐不会被转码,成功!

‘Cloudflare Tunnel’