赞
踩
安装有很多种方法,我选择使用安装包,相对简单。因为我的系统是32位RaspiOS,选择安装下载 armhf.deb,64位的是arm64.deb
wget https://github.com/MediaBrowser/Emby.Releases/releases/download/4.7.5.0/emby-server-deb_4.7.5.0_armhf.deb
dpkg -i emby-server-deb_4.7.5.0_armhf.deb
安装完成之后,可以通过http://yourdiveceip:8096 访问设置服务器。
因为之前挂载硬盘的目录,对应了samba服务,默认文件夹的权限是766,需要给目录(不给文件)加上x权限,当然偷懒可以用 chmod -R 777
sudo find /mnt -type d -exec chmod a+x {} \;
因为没有公网 ip,端口转发是不行的了。
先想到的是frp内网穿透,有一个p2p模式,实验后效果不好。如果不开p2p,访问需要走vps,受带宽限制,很卡。
因为emby是支持ipv6的,而国内几乎大多数宽带都已经支持ipv6。
ifconfig 查看树莓派ipv6地址,
eth0下的,类似这种:
2408:1234:1234:1234:1234:1234:abcd:a1b1
在浏览器输入
[2408:1234:1234:1234:1234:1234:abcd:a1b1]:8096
可以访问仪表盘,证明内网工作正常。
但外网是无法访问的,因为路由器(光猫已桥接)有防火墙
ssh登录路由器
ip6tables -I FORWARD -p tcp --dport 8096 -j ACCEPT
用手机流量测试,可以访问服务器了。
路由器重启后 ip6tables 规则被清除
修改/etc/firewall.user
/usr/sbin/ip6tables -I FORWARD -p tcp --dport 8096 -j ACCEPT
ipv6的地址会经常变化,所以最好绑定一个域名。
在腾讯云买一个域名。
在树莓派上,安装腾讯云python sdk
python3 -m pip install tencentcloud-sdk-python
因为不需要批量操作,可以先手动添加一条记录,获取记录ID“RecordId”,后面当ipv6地址变化的时候修改记录。
获取“RecordId”,可以通过腾讯云调用API测试工具获得api
选择“获取域名的解析记录”,填写域名,发起调用。
import json from tencentcloud.common import credential from tencentcloud.common.profile.client_profile import ClientProfile from tencentcloud.common.profile.http_profile import HttpProfile from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException from tencentcloud.dnspod.v20210323 import dnspod_client, models import requests def getIPv6Address(): #获取公网ipv6参考https://blog.csdn.net/coco56/article/details/106725406/ text = requests.get('https://v6.ident.me').text return text addr6 = getIPv6Address() try:#获取当前dns解析记录值 cred = credential.Credential("SecretId", "SecretKey")#https://console.cloud.tencent.com/cam/capi 登录填入密钥 httpProfile = HttpProfile() httpProfile.endpoint = "dnspod.tencentcloudapi.com" clientProfile = ClientProfile() clientProfile.httpProfile = httpProfile client = dnspod_client.DnspodClient(cred, "", clientProfile) req = models.DescribeRecordRequest() params = { "Domain": "域名", "RecordId": #记录ID } req.from_json_string(json.dumps(params)) resp = client.DescribeRecord(req) print(resp.to_json_string()) addr6dns = resp.RecordInfo.RecordId #获取记录中的地址 except TencentCloudSDKException as err: print(err) if addr6dns != addr6:#如果获取的公网ipv6,和解析记录值不相等,不严谨,将就用 try:#更新记录值 cred = credential.Credential("SecretId", "SecretKey")#https://console.cloud.tencent.com/cam/capi 登录填入密钥 httpProfile = HttpProfile() httpProfile.endpoint = "dnspod.tencentcloudapi.com" clientProfile = ClientProfile() clientProfile.httpProfile = httpProfile client = dnspod_client.DnspodClient(cred, "", clientProfile) req = models.ModifyRecordRequest() params = { "Domain": "域名", "SubDomain": "子域名",#无此项参数,默认为@ "RecordType": "AAAA(解析类型,ipv6填AAAA)", "RecordLine": "默认", "Value": addr6,#树莓派ipv6地址 "RecordId": #之前获取的RecordId } req.from_json_string(json.dumps(params)) resp = client.ModifyRecord(req) print(resp.to_json_string()) except TencentCloudSDKException as err: print(err)
crontab -e 编辑定时任务,检查更新解析记录
手机浏览器可以正常访问,建议使用app
emby server树莓派32位安装包
emby安卓app
大部分内容来自网络,本人仅编辑整理。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。