好的!下面是一个 “可交互终端共享”版本 的脚本,允许你通过网页远程操作终端,适合你 “我操作别人也可以操作” 的需求场景。
⸻
✅ 功能列表:
1. ✅ 网页交互式终端共享(非只读)
2. 🔐 用户名密码保护
3. 🌐 自动检测内网 IP 并生成访问链接
4. 📱 二维码扫码访问
⸻
📜 脚本:start_shared_terminal.sh
#!/bin/bash
SESSION_NAME=“shared”
PORT=7681
USERNAME=“admin”
PASSWORD=“1234”
检查依赖
check_command() {
if ! command -v $1 &> /dev/null; then
echo “❌ 未安装 $1,请先安装”
exit 1
fi
}
check_command tmux
check_command ttyd
check_command qrencode
获取本机 IP(排除 127.0.0.1)
IP=$(ifconfig | grep “inet " | grep -v 127 | awk '{print KaTeX parse error: Expected 'EOF', got '}' at position 2: 2}̲' | head -n 1)
…IP” ]]; then
echo “❌ 无法获取本机 IP,请检查网络连接”
exit 1
fi
启动 tmux 会话(后台)
if ! tmux has-session -t SESSIONNAME2>/dev/null;thenecho"✅创建tmux会话′SESSION_NAME 2>/dev/null; then
echo "✅ 创建 tmux 会话 'SESSIONNAME2>/dev/null;thenecho"✅创建tmux会话′SESSION_NAME’"
tmux new-session -d -s SESSIONNAMEelseecho"✅tmux会话′SESSION_NAME
else
echo "✅ tmux 会话 'SESSIONNAMEelseecho"✅tmux会话′SESSION_NAME’ 已存在"
fi
显示信息
ENCODED_LINK=“http://USERNAME:{USERNAME}:USERNAME:{PASSWORD}@IP:{IP}:IP:{PORT}”
echo “🔗 可交互访问链接:ENCODEDLINK"echo"📱扫码可交互访问👇"qrencode−tUTF8"ENCODED_LINK"
echo "📱 扫码可交互访问 👇"
qrencode -t UTF8 "ENCODEDLINK"echo"📱扫码可交互访问👇"qrencode−tUTF8"ENCODED_LINK”
启动 ttyd,允许交互(不加 --readonly)
echo “🚀 启动 ttyd,交互模式,端口 $PORT”
ttyd -p $PORT -c USERNAME:{USERNAME}:USERNAME:{PASSWORD} tmux attach-session -t $SESSION_NAME
⸻
▶️ 用法:
1. 保存为脚本文件 start_shared_terminal.sh
2. 添加执行权限:
chmod +x start_shared_terminal.sh
3. 运行:
./start_shared_terminal.sh
⸻
📦 安装依赖:
如未安装,可以这样装:
macOS:
brew install ttyd tmux qrencode
Ubuntu / Debian:
sudo apt install ttyd tmux qrencode
⸻
🧠 建议注意事项:
• 交互模式建议只在可信局域网使用。
• 可以通过修改脚本支持 https 或加防火墙进一步增强安全性。
• 若你关闭窗口后共享中断,可配合 tmux + systemd 或 launchctl 实现后台守护。
⸻
需要我再补一个支持公网访问(例如用 frp 或 Cloudflare Tunnel)的版本吗?