为了能在外面访问家里的 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 的帐号重新登陆,用流量发现能访问到服务,如果在局域网的话音乐不会被转码,成功!