前言
自TongWeb7.0.4.9_M11版本开始,默认仅本机可访问TongWeb控制台。只有修改控制台所有用户默认密码后,才可开启远程访问,不然访问控制台,就会出现下面的提示:

本脚本参考TongWeb7.0默认仅本机可访问TongWeb控制台除了安装TongWeb外,也会在安装过程中设置所有用户的密码。
脚本说明
脚本将 TongWeb 的安装与首次初始化串成以下流程:
- 检查 TongWeb 安装包和
license.dat授权文件是否存在; - 创建安装目录
/opt/TongWeb7.0;目录已存在时停止执行,避免覆盖已有安装; - 提示是否注册 systemd 开机自启服务:输入
1注册,输入0不注册; - 解压 TongWeb 安装包,并将授权文件复制到安装目录;
- 修改
bin/external.vmoptions:- 将
2048m改为4096m; - 将
WebModuleOnly=false改为WebModuleOnly=true; - 增加
-XX:MetaspaceSize=1024m和-XX:MaxMetaspaceSize=1024m; - 删除
-XX:MaxPermSize=512m;
- 将
- 修改
conf/tongweb.xml:在server虚拟主机中开启静态资源缓存,并设置缓存上限cacheMaxSize=1024000; - 当使用 root 用户执行且当前文件句柄数为 1024 时,将系统
nofile限制调整为 65535; - 修改 CommandStool 的
cli用户密码,生成认证文件,并配置 console 的远程访问和四类管理账号密码; - 当
heimdall=1时,配置 heimdall 的远程访问和管理账号密码; - 启动 TongWeb,显示授权到期时间,检查防火墙状态和 TongWeb 进程,最后输出控制台访问地址。
使用前准备
- 准备安装文件
将以下三个文件放在同一个目录。该目录中不要放多个 TongWeb 安装包,以免脚本匹配到错误文件。
text
installTongWeb7.0_M11.sh
TongWeb7.0.4.9_M11_Enterprise_Linux.tar.gz
license.dat
默认安装目录为 /opt/TongWeb7.0。如需更换安装位置,修改脚本中的 INSTALL_DIR。
2. 设置 CommandStool 用户密码
CommandStool 是 TongWeb 的命令行管理工具,使用 cli 用户进行认证。首次使用时需要修改默认密码;脚本已经自动执行此步骤。
执行前请修改脚本中的 CLI_PASSWORD,不要使用示例密码。

3. 设置 console 用户密码
console 是 TongWeb 单机管理控制台。执行前请在脚本中设置 THANOS_PASSWORD、SECURITY_PASSWORD、AUDITOR_PASSWORD 和 MONITOR_PASSWORD。

4. 按需设置 heimdall 用户密码
heimdall 是集中管理控制台。需要使用时保留 heimdall=1,并修改 RIG_PASSWORD、SECADM_PASSWORD、AUDIT_PASSWORD 和 MONITOR_PASSWORD;不需要时将 heimdall=1 改为 heimdall=0。


脚本内容
bash
#!/bin/sh
#############本脚本适用于安装TongWeb7.0##########################
# 1.将本脚本和TongWeb安装包、授权文件license.dat在同一目录
# 2.安装目录:/opt(指定其他目录修改INSTALL_DIR)
#
#################################################################
# 安装包名称
TongWeb_TAR="TongWeb7.0.4.9_M*_Enterprise_Linux.tar.gz"
# 默认安装目录
INSTALL_DIR="/opt"
TongWeb_DIR="$INSTALL_DIR/TongWeb7.0"
# CommandStool 用户密码配置
CLI_PASSWORD="Admin1qa.com"
# console-用户密码配置
THANOS_PASSWORD="T1hanos12.com"
SECURITY_PASSWORD="S1ecurity12.com"
AUDITOR_PASSWORD="A1uditor12.com"
MONITOR_PASSWORD="M1onitor12.com"
# heimdall-用户密码配置
RIG_PASSWORD="R1ig12.com"
SECADM_PASSWORD="S1ecadm12.com"
AUDIT_PASSWORD="A1udit12.com"
MONITOR_PASSWORD="M1onitor12.com"
# heimdall开关: 0=不执行, 1=执行并打印信息,
heimdall=1
# 定义颜色变量
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
# 日志输出函数
log_info() {
echo -e "INFO: $1"
}
log_success() {
echo -e "${GREEN}[SUCCESS]${NC}: $1"
}
log_error() {
echo -e "${RED}[ERROR]${NC}: $1"
}
log_warn() {
echo -e "${YELLOW}[WARN]${NC}: $1"
}
log_section() {
echo ""
echo "=====$1====="
}
# 当前目录
cd "$(dirname "$0")"
# 查找安装包是否存在
log_section "检查安装包、授权"
if [[ ! -f $(echo $TongWeb_TAR) ]]; then
log_error "TongWeb安装包不存在!"
exit 1
else
log_success "TongWeb安装包存在;"
fi
# 查找授权文件是否存在
LIC=$(find . -maxdepth 1 -type f \( -name "*license*dat*" \))
count=$(find . -maxdepth 1 -type f \( -name "*license*dat*" \)|wc -l)
if [ $count -eq 0 ]; then
log_error "TongWeb授权文件license.dat不存在!"
exit 0
elif [ $count -eq 1 ]; then
file=$LIC
log_success "授权文件: $file"
else
log_warn "当前目录下有多个授权文件,请选择:"
select file in $LIC; do
if [ -n "$file" ]; then
log_success "您选择的授权文件: $file"
break
else
log_error "无效的选择,请重新选择"
fi
done
fi
# 检查安装目录是否已存在
log_section "检查安装目录"
if [ -d "$TongWeb_DIR" ]; then
log_error "安装目录 $TongWeb_DIR 已存在!"
log_error "请删除该目录后重新执行安装脚本"
exit 1
fi
# 创建安装目录
mkdir -p $TongWeb_DIR || { log_error "创建安装目录失败"; exit 1; }
log_success "TongWeb安装目录: ${GREEN}$TongWeb_DIR${NC}"
# 是否注册服务开机启动TongWeb
log_section "配置服务"
echo "请输入: 1 注册服务开机自启; 输入: 0 不注册服务"
read -r Installservice
# 开始安装
log_section "安装TongWeb"
log_info "开始解压安装包..."
if ! command -v tar &> /dev/null; then
log_error "tar命令未安装,请安装后再试"
exit 1
else
tar -zxf ${TongWeb_TAR} -C $TongWeb_DIR --strip-components=1
# 复制授权到安装目录下
cp $file $TongWeb_DIR/license.dat
log_info "授权文件已复制到安装目录..."
log_success "TongWeb安装完成。"
fi
# 修改启动参数
log_section "配置JVM参数"
cd $TongWeb_DIR"/bin"
VM="external.vmoptions"
sed -i 's/2048m/4096m/g' ${VM}
sed -i 's/WebModuleOnly=false/WebModuleOnly=true/g' ${VM}
MetaspaceSize="-XX:MetaspaceSize=1024m"
MaxMetaspaceSize="-XX:MaxMetaspaceSize=1024m"
ser="-server"
sed -i "/${ser}/i $MetaspaceSize" ${VM}
sed -i "/${ser}/i $MaxMetaspaceSize" ${VM}
sed -i "/-XX:MaxPermSize=512m/d" ${VM}
CACHE_MAX=' <property name="cacheMaxSize" value="1024000"/>'
CACHE_ALLOW=' <property name="cachingAllowed" value="true"/>'
VHOST='<virtual-host name="server" listeners="tong-http-listener"'
sed -i "/${VHOST}/,/<\/virtual-host>/ s|<\/virtual-host>|${CACHE_MAX}\n${CACHE_ALLOW}\n </virtual-host>|" "${TongWeb_DIR}/conf/tongweb.xml"
log_success "JVM参数配置完成"
# 修改limits
log_section "配置系统限制"
ULIMIT_N=`ulimit -n`
LIMITS_FILE="/etc/security/limits.conf"
if [ "$ULIMIT_N" = 1024 ] && [ "$(id -u)" = 0 ]; then
echo "* hard nofile 65535" >> "$LIMITS_FILE"
echo "* soft nofile 65535" >> "$LIMITS_FILE"
log_success "系统文件描述符已修改为65535"
else
log_warn "跳过系统文件描述符配置(当前值: $ULIMIT_N)"
fi
if ! command -v java &> /dev/null; then
log_error "Java命令不可用,请安装Java后启动TongWeb"
Installservice=0
else
# 修改cli用户默认密码并开放控制台访问策略
log_section "配置控制台访问策略"
# 1. 修改cli用户密码(离线模式)
log_info "修改cli用户默认密码..."
sh commandstool.sh << EOF > /dev/null 2>&1
change-admin-password --user cli --offline=true
cli123.com
${CLI_PASSWORD}
${CLI_PASSWORD}
EOF
log_success "cli用户密码修改成功;"
# 2. 生成密码文件
log_info "生成密码文件..."
ENCRYPTED_OUTPUT=$(sh password.sh ${CLI_PASSWORD} 2>/dev/null)
ENCRYPTED_PASSWORD=$(echo "$ENCRYPTED_OUTPUT" | awk -F': ' '{print $2}' | sed 's/^ *//')
echo "AS_ADMIN_password=${ENCRYPTED_PASSWORD}" > "$TongWeb_DIR/bin/passwordfile"
log_success "密码文件生成成功"
# 3. 开放console控制台访问策略并修改其他用户密码(直接执行模式)
log_info "开放console控制台访问策略..."
CONSOLE_RESULT=$(sh commandstool.sh update-console-remote-access --passwordfile="$TongWeb_DIR/bin/passwordfile" --thanosPassword=${THANOS_PASSWORD} --securityPassword=${SECURITY_PASSWORD} --auditorPassword=${AUDITOR_PASSWORD} --monitorPassword=${MONITOR_PASSWORD} --offline=true --user cli remote 2>&1)
if echo "$CONSOLE_RESULT" | grep -q "Command.*executed successfully"; then
log_success "控制台访问策略配置完成(remote模式)"
else
log_error "控制台访问策略配置失败!"
echo ""
echo "${RED}错误信息:${NC}"
echo "$CONSOLE_RESULT"
echo ""
fi
# 4. 开放heimdall控制台访问策略并修改其他用户密码(直接执行模式)
if [ "$heimdall" -ge 1 ]; then
log_info "开放heimdall控制台访问策略..."
HEIMDALL_RESULT=$(sh commandstool.sh update-heimdall-remote-access --passwordfile="$TongWeb_DIR/bin/passwordfile" --rigPassword=${RIG_PASSWORD} --secadmPassword=${SECADM_PASSWORD} --auditPassword=${AUDIT_PASSWORD} --monitorPassword=${MONITOR_PASSWORD} --offline=true --user cli remote 2>&1)
if echo "$HEIMDALL_RESULT" | grep -q "Command.*executed successfully"; then
log_success "heimdall控制台访问策略配置完成(remote模式)"
else
log_error "heimdall控制台访问策略配置失败!"
echo ""
echo -e "${RED}错误信息:${NC}"
echo "$HEIMDALL_RESULT"
echo ""
fi
fi
# 启动TongWeb服务
log_section "启动TongWeb服务"
sh startservernohup.sh > /dev/null 2>&1
END_DATE=$(sh "$TongWeb_DIR"/bin/version.sh | awk -F '=' '/end_date/ {print $2}')
log_success "授权到期时间: ${GREEN}${END_DATE}${NC}"
fi
if [ $Installservice = 1 ]; then
log_section "注册开机自启服务"
if [ "$(id -u)" = 0 ]; then
sh installservice.sh > /dev/null 2>&1
SERVICE_FILE="/etc/systemd/system/tongweb.service"
if [ -f "$SERVICE_FILE" ]; then
log_success "服务已注册开机自启;"
else
log_error "注册服务失败,请手动重试;"
fi
else
log_error "请使用root用户执行注册服务脚本;"
fi
fi
# 防火墙状态检查
log_section "防火墙配置"
FIREWALL_STATUS="disabled"
if command -v firewall-cmd >/dev/null 2>&1; then
if systemctl is-active --quiet firewalld; then
FIREWALL_STATUS="enabled"
fi
elif command -v iptables >/dev/null 2>&1; then
if iptables -L 2>/dev/null | grep -q "ACCEPT"; then
FIREWALL_STATUS="enabled"
fi
fi
if [ "$FIREWALL_STATUS" = "enabled" ]; then
log_warn "防火墙状态:${GREEN}开启${NC},请${YELLOW}关闭防火墙${NC}或者${YELLOW}开放端口9060/8088${NC}"
#echo ""
#echo " firewalld:"
#echo " sudo firewall-cmd --permanent --add-port=9060/tcp"
#echo " sudo firewall-cmd --permanent --add-port=8088/tcp"
#echo " sudo firewall-cmd --reload"
#echo ""
#echo " iptables:"
#echo " sudo iptables -A INPUT -p tcp --dport 9060 -j ACCEPT"
#echo " sudo iptables -A INPUT -p tcp --dport 8088 -j ACCEPT"
#echo " sudo iptables-save > /etc/sysconfig/iptables"
#echo ""
else
log_success "防火墙状态:${GREEN}未开启${NC}"
fi
# 检查TongWeb服务
log_section "验证服务状态"
PS_TW=`ps -ef|grep TongWeb7.0|grep tongweb.pid|grep -v "grep"|wc -l`
if [ "$PS_TW" -ge 1 ]; then
log_success "东方通TongWeb7.0安装完成,服务已启动!"
log_info "单机控制台访问地址: ${GREEN}http://$(hostname -I | awk '{print $1}'):9060/console${NC}"
log_info "用户名密码: ${GREEN}thanos / ${THANOS_PASSWORD}${NC}"
echo ""
echo "其他用户账号信息:"
echo -e " - 安全保密管理员 security / ${GREEN}${SECURITY_PASSWORD}${NC}"
echo -e " - 安全审计员 auditor / ${GREEN}${AUDITOR_PASSWORD}${NC}"
echo -e " - 系统管理员 monitor / ${GREEN}${MONITOR_PASSWORD}${NC}"
echo ""
echo -e " - Commandstool管理员 cli / ${GREEN}${CLI_PASSWORD}${NC}"
if [ "$heimdall" -ge 1 ]; then
echo ""
log_info "集中管理控制台访问地址: ${GREEN}http://$(hostname -I | awk '{print $1}'):9060/heimdall${NC}"
log_info "用户名密码: ${GREEN}rig / ${GREEN}${RIG_PASSWORD}${NC}"
echo ""
echo "其他用户账号信息:"
echo -e " - 安全保密管理员 secadm / ${GREEN}${SECADM_PASSWORD}${NC}"
echo -e " - 安全审计员 audit / ${GREEN}${AUDIT_PASSWORD}${NC}"
echo -e " - 系统管理员 monitor / ${GREEN}${MONITOR_PASSWORD}${NC}"
fi
else
log_success "东方通TongWeb7.0安装完成"
log_error "服务启动失败,请查看日志: ${TongWeb_DIR}/logs/server.log"
fi
log_section "安装完成"
#End
使用示范
bash
[root@localhost ~]# cd /opt
[root@localhost opt]# chmod +x installTongWeb7.0_M11.sh
[root@localhost opt]# ./installTongWeb7.0_M11.sh
=====检查安装包、授权=====
[SUCCESS]: TongWeb安装包存在;
[SUCCESS]: 授权文件: ./license.dat
=====检查安装目录=====
[SUCCESS]: TongWeb安装目录: /opt/TongWeb7.0
=====配置服务=====
请输入: 1 注册服务开机自启; 输入: 0 不注册服务
1
=====安装TongWeb=====
INFO: 开始解压安装包...
INFO: 授权文件已复制到安装目录...
[SUCCESS]: TongWeb安装完成。
=====配置JVM参数=====
[SUCCESS]: JVM参数配置完成
=====配置系统限制=====
[SUCCESS]: 系统文件描述符已修改为65535
=====配置控制台访问策略=====
INFO: 修改cli用户默认密码...
[SUCCESS]: cli用户密码修改成功;
INFO: 生成密码文件...
[SUCCESS]: 密码文件生成成功
INFO: 开放console控制台访问策略...
[SUCCESS]: 控制台访问策略配置完成(remote模式)
INFO: 开放heimdall控制台访问策略...
[SUCCESS]: heimdall控制台访问策略配置完成(remote模式)
=====启动TongWeb服务=====
[SUCCESS]: 授权到期时间: 2026-10-01
=====注册开机自启服务=====
[SUCCESS]: 服务已注册开机自启;
=====防火墙配置=====
[SUCCESS]: 防火墙状态:未开启
=====验证服务状态=====
[SUCCESS]: 东方通TongWeb7.0安装完成,服务已启动!
INFO: 单机控制台访问地址: http://192.168.31.105:9060/console
INFO: 用户名密码: thanos / T1hanos12.com
其他用户账号信息:
- 安全保密管理员 security / S1ecurity12.com
- 安全审计员 auditor / A1uditor12.com
- 系统管理员 monitor / M1onitor12.com
- Commandstool管理员 cli / Admin1qa.com
INFO: 集中管理控制台访问地址: http://192.168.31.105:9060/heimdall
INFO: 用户名密码: rig / R1ig12.com
其他用户账号信息:
- 安全保密管理员 secadm / S1ecadm12.com
- 安全审计员 audit / A1udit12.com
- 系统管理员 monitor / M1onitor12.com
=====安装完成=====
[root@localhost opt]#