⚠️ 先重申重点
这个 JS 锁只针对浏览器网页,Emby APP(安卓 / TV)不受影响,APP 正常直连 8096 使用; 缺点:Emby 每次升级,这个文件会被覆盖,需要重新粘贴一次代码; 原理:打开登录页先弹出密码框,输对全局密码,才加载你截图里的头像选择界面。
一、找到目标文件(群晖 DSM7)
控制面板 → 终端机和 SNMP,开启 SSH,端口默认 22
用 WinSCP 或者 Xshell 登录 NAS
路径(群晖套件版 Emby):
/volume2/@appstore/EmbyServer/system/dashboard-ui/index.html

如果是 Docker 安装的 Emby:进入容器,/opt/emby-server/system/dashboard-ui/startup/login.html 👉 先备份一份 login.html!防止改错页面空白
打开 login.html,在文件最顶部,<head> 标签最开头插入下面这段 JS 代码:
<script>
// ========== 这里改你的全局页面密码 ==========
const pagePwd = "1314";
// ==========================================
(function(){
let lock = true;
while(lock){
let inputPwd = prompt("🔒 访问Emby网页,请输入页面解锁密码");
if(inputPwd === null){
// 点取消,直接空白
document.body.innerHTML = "<h1 style='color:#fff;text-align:center;margin-top:100px'>拒绝访问</h1>";
lock = false;
}else if(inputPwd === pagePwd){
lock = false;
}else{
alert("❌ 密码错误,请重试");
}
}
})();
</script>

✅ 修改 const pagePwd = "123456"; 引号内换成你自己想要的统一密码
保存文件,刷新 Emby 网页,就会先弹密码框,输对才显示你截图的 yuelogin 头像选择页面。
三、进阶优化(可选,更美观,不用浏览器原生 prompt)
如果你不想用浏览器自带的 prompt 弹窗,想要深色、和 Emby 风格统一的自定义弹窗,替换上面代码为这个版本:
<script>
const pagePwd = "1314";
window.onload = function(){
// 创建遮罩层
const mask = document.createElement('div');
mask.style.cssText = `
position:fixed;inset:0;background:#111;z-index:999999;
display:flex;align-items:center;justify-content:center;flex-direction:column;
color:#fff;font-size:18px;
`
mask.innerHTML = `
<h2>🔒 Emby网页访问锁</h2>
<input type="password" id="pwdInput" placeholder="请输入解锁密码" style="padding:8px;font-size:18px;width:240px;margin:10px 0">
<button id="unlockBtn" style="padding:8px 16px">解锁</button>
`
document.body.prepend(mask);
document.body.style.overflow="hidden";
const input = document.getElementById('pwdInput');
const btn = document.getElementById('unlockBtn');
function check(){
if(input.value === pagePwd){
mask.remove();
document.body.style.overflow="";
}else{
alert("密码错误");
input.value="";
input.focus();
}
}
btn.onclick = check;
input.onkeydown = e=>{if(e.key==='Enter') check()}
}
</script>
个版本弹窗是深色,和 Emby 黑色 UI 匹配,支持回车提交。
四、重要避坑清单
备份 login.html!一旦 Emby 更新,这个文件会被原版覆盖,锁消失,需要重新粘贴
只对网页生效! 手机 / TV Emby APP 不走这个 html 页面,不受这个锁,直接连 8096 正常登录
这个属于前端 JS 锁,不是强安全锁:懂前端的人打开 F12 开发者工具可以看到代码里的密码,适合内网防随手点开,不适合防有心破解
改完如果页面空白:说明 html 标签写错,把备份的 login.html 还原回去
⚠️ 更新方法
通过winscp下载index.html到桌面
直接用普通 admin 账号连 SFTP,进入 /tmp,把你电脑上改好的 index.html 拖进去。
/tmp任何人都能写,不需要 root。
cd /tmp
上传完成后,回到你现在这个 root 终端,执行覆盖:
cp /tmp/index.html /volume2/@appstore/EmbyServer/system/dashboard-ui/index.html
chmod 644 /volume2/@appstore/EmbyServer/system/dashboard-ui/index.html