安装
有很多方法可以安装,我选择使用安装包,相对简单。因为我的系统是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 访问设置服务器。
问题1:无法选择媒体库目录
因为之前挂载硬盘的目录对应samba服务,默认文件夹的权限是766,需要在目录(不给文件)上加x权限。当然,懒惰可以用 chmod -R 777
sudo find /mnt -type d -exec chmod a x {} \;
问题2,外网访问
因为没有公网 ip,端口转发不好。 先想到的是frp有一穿透,有一个p2p实验结实验后效果不好。如果不打开p2p,访问需要走vps,受带宽限制,很卡。 因为emby是支持ipv6.中国几乎大多数宽带都得到了支持ipv6。 ifconfig 查看树莓派ipv6地址, eth0下,类似这样:
1234:1234:1234:1234:1234:abcd:a1b1
输入浏览器
12348:1234:1234:1234:1234:1234:1234:1234:1234:1234:1234:1234:1234:1234:1234:1234:1234:1234:1234:1234:1234:1234:1234:1234:1234:1234:1234:1244:1244:124:1244:1244:1244:1244:124:124:124:1244:1244:1244:124:124:124:124:124:124:124:124:124:124:124:124:124:12424:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:124:1abcd: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
问题三,ipv地址不稳定
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 大部分内容来自网络,本人仅编辑整理。