EasyNode自定义欢迎消息:为服务器终端添加个性化问候
EasyNode自定义欢迎消息:为服务器终端添加个性化问候
【免费下载链接】easynode 一个简易的个人Linux服务器ssh管理面板(webSSH&webSFTP) 项目地址: https://gitcode.com/GitHub_Trending/ea/easynode
为什么需要自定义欢迎消息?
当您通过EasyNode的WebSSH连接服务器时,默认的终端界面往往缺乏个性。一个精心设计的欢迎消息不仅能提升使用体验,还能在每次登录时展示重要信息或温馨提示。本文将详细介绍如何在EasyNode中添加自定义欢迎消息,让您的服务器终端更具个人特色。
实现原理
EasyNode通过SSH协议连接服务器后,会创建一个交互式终端会话。我们可以通过在服务器登录后自动执行一段命令来输出欢迎消息。虽然EasyNode本身没有直接提供欢迎消息配置界面,但我们可以通过修改服务器命令配置来实现这一功能。

步骤一:准备欢迎消息内容
首先,您需要设计自己的欢迎消息内容。可以包含以下信息:
- 个性化问候语
- 系统状态信息(如当前时间、负载情况)
- 常用命令提示
- 重要通知或提醒
以下是一个示例欢迎消息:
=============================================================
Welcome to EasyNode Terminal!
当前时间: 2023-10-05 15:30:00
服务器负载: 0.87 0.65 0.42
IP地址: 192.168.1.100
=============================================================
常用命令:
- status: 查看系统状态
- backup: 执行备份
- update: 系统更新
=============================================================
步骤二:修改服务器命令配置
EasyNode允许为每个服务器配置登录后自动执行的命令,我们将利用这一功能来显示欢迎消息。
- 打开EasyNode服务器配置文件:
[server/app/config/shell.json](https://link.gitcode.com/i/537881edfaf22774c7f7947cad9a101d)
- 在该文件中,您可以看到预设的服务器命令配置,例如:
[
{
"name": "生成ssh密钥对",
"command": "ssh-keygen -t rsa -b 2048",
"description": "生成ssh密钥对"
},
{
"name": "vps回程测试",
"command": "curl https://git.221022.xyz/https://raw.githubusercontent.com/chaos-zhu/backtrace/main/install.sh -sSf | sh",
"description": "vps回程测试(原脚本作者: https://github.com/zhanghanyun)"
}
]
- 添加一个新的命令配置,用于显示欢迎消息:
{
"name": "显示欢迎消息",
"command": "echo '============================================================='; echo ' Welcome to EasyNode Terminal!'; echo ' 当前时间: $(date +'%Y-%m-%d %H:%M:%S')'; echo ' 服务器负载: $(uptime | awk '{print $10 $11 $12}')'; echo ' IP地址: $(hostname -I | awk '{print $1}')'; echo '============================================================='; echo ' 常用命令:'; echo ' - status: 查看系统状态'; echo ' - backup: 执行备份'; echo ' - update: 系统更新'; echo '============================================================='",
"description": "显示自定义欢迎消息"
}
步骤三:配置服务器自动执行欢迎命令
- 在EasyNode管理界面中,编辑目标服务器的配置
- 在"登录后执行命令"选项中,选择我们刚刚创建的"显示欢迎消息"命令
- 保存配置并重新连接服务器

步骤四:测试自定义欢迎消息
重新连接服务器,您应该能看到类似以下的欢迎消息:

如果没有看到欢迎消息,请检查以下几点:
- 命令配置是否正确保存
- 服务器是否有权限执行echo命令
- 命令中的特殊字符是否正确转义
高级自定义:动态信息展示
您可以通过修改命令来展示更多动态信息,例如:
# 显示CPU使用情况
echo " CPU使用率: $(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}')%"
# 显示内存使用情况
echo " 内存使用率: $(free | grep Mem | awk '{print $3/$2 * 100.0}')%"
这些命令将在每次登录时显示实时的系统状态信息。
实现代码解析
EasyNode的终端连接逻辑在以下文件中实现:
[server/app/socket/terminal.js](https://link.gitcode.com/i/7f734e2135f96bd40e32ff40e47bee2f)
关键代码片段:
// 创建交互式终端
async function createTerminal(hostId, socket, targetSSHClient, isInteractiveShell = true) {
consola.info(`准备创建${ isInteractiveShell ? '交互式' : '非交互式' }终端:${ hostId }`)
return new Promise(async (resolve) => {
const targetHostInfo = await hostListDB.findOneAsync({ _id: hostId })
if (!targetHostInfo) return socket.emit('create_fail', `查找hostId【${ hostId }】凭证信息失败`)
let { authType, host, port, username, name } = targetHostInfo
try {
let { authInfo: targetConnectionOptions } = await getConnectionOptions(hostId)
// 连接成功后创建交互式shell
targetSSHClient.on('ready', async () => {
consola.success('终端连接成功:', host)
if (isInteractiveShell) {
sendNoticeAsync('host_login', '终端登录', `别名: ${ name }
IP:${ host }
端口:${ port }
状态: 登录成功`)
socket.emit('terminal_print_info', `终端连接成功: ${ name } - ${ host }`)
socket.emit('terminal_connect_success', `终端连接成功:${ host }`)
try {
let stream = await createInteractiveShell(socket, targetSSHClient)
resolve({ stream, jumpSshClients })
} catch (shellError) {
consola.error('创建交互式终端失败:', host, shellError.message)
// 连接已经成功但创建shell失败,需要清理连接
targetSSHClient.end()
jumpSshClients?.forEach(sshClient => sshClient && sshClient.end())
}
} else {
resolve({ jumpSshClients })
}
})
// 其他事件处理...
} catch (err) {
consola.error('创建终端失败: ', host, err.message)
socket.emit('terminal_create_fail', err.message)
}
})
}
当终端连接成功后,EasyNode会检查是否有配置的自动执行命令,并在终端中执行这些命令,从而实现我们的自定义欢迎消息功能。
总结
通过本文介绍的方法,您可以轻松为EasyNode终端添加个性化的欢迎消息。这不仅能提升使用体验,还能在每次登录时为您提供有用的系统信息。欢迎消息的内容可以根据个人需求自由定制,从简单的问候语到复杂的系统状态报告,都可以通过这种方式实现。
如果您有更复杂的定制需求,可以查看完整的终端实现代码:
[server/app/socket/terminal.js](https://link.gitcode.com/i/7f734e2135f96bd40e32ff40e47bee2f)
希望本文能帮助您打造更具个性的服务器终端体验!
【免费下载链接】easynode 一个简易的个人Linux服务器ssh管理面板(webSSH&webSFTP) 项目地址: https://gitcode.com/GitHub_Trending/ea/easynode









