You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

119 lines
3.0 KiB

#!/bin/bash
# 一键修复脚本
echo "========================================="
echo " P2P 聊天服务器一键修复"
echo "========================================="
echo ""
# 1. 安装 Java
echo "步骤 1: 检查并安装 Java..."
if ! command -v java &> /dev/null; then
echo "正在安装 Java..."
sudo yum install java-devel -y
if [ $? -eq 0 ]; then
echo "✓ Java 安装成功"
else
echo "✗ Java 安装失败"
exit 1
fi
else
echo "✓ Java 已安装"
fi
echo ""
# 2. 编译程序
echo "步骤 2: 编译程序..."
if [ -f "P2PChatWebServer.java" ]; then
javac P2PChatWebServer.java
if [ $? -eq 0 ]; then
echo "✓ 编译成功"
else
echo "✗ 编译失败"
exit 1
fi
else
echo "✗ 找不到 P2PChatWebServer.java"
exit 1
fi
echo ""
# 3. 停止旧进程
echo "步骤 3: 停止旧进程..."
if ps aux | grep -v grep | grep P2PChatWebServer > /dev/null; then
echo "发现运行中的进程,正在停止..."
pkill -f P2PChatWebServer
sleep 2
echo "✓ 旧进程已停止"
else
echo "✓ 没有运行中的进程"
fi
echo ""
# 4. 配置防火墙
echo "步骤 4: 配置防火墙..."
if command -v firewall-cmd &> /dev/null; then
echo "开放端口 8080..."
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
echo "开放端口 8888..."
sudo firewall-cmd --zone=public --add-port=8888/tcp --permanent
echo "重载防火墙..."
sudo firewall-cmd --reload
echo "✓ 防火墙配置完成"
echo ""
echo "已开放的端口:"
sudo firewall-cmd --list-ports
else
echo "⚠ firewall-cmd 未找到,跳过防火墙配置"
fi
echo ""
# 5. 检查 SELinux
echo "步骤 5: 检查 SELinux..."
if command -v getenforce &> /dev/null; then
SELINUX_STATUS=$(getenforce)
if [ "$SELINUX_STATUS" = "Enforcing" ]; then
echo "⚠ SELinux 处于强制模式"
echo "是否临时关闭 SELinux? (y/n)"
read -r response
if [[ "$response" =~ ^[Yy]$ ]]; then
sudo setenforce 0
echo "✓ SELinux 已临时关闭"
fi
else
echo "✓ SELinux 状态: $SELINUX_STATUS"
fi
fi
echo ""
# 6. 获取 IP 地址
echo "步骤 6: 获取网络信息..."
IP=$(ip addr show | grep "inet " | grep -v "127.0.0.1" | awk '{print $2}' | cut -d/ -f1 | head -n 1)
echo "本机 IP: $IP"
echo ""
# 7. 启动服务器
echo "========================================="
echo " 准备启动服务器"
echo "========================================="
echo ""
echo "访问地址:"
echo " 本地: http://localhost:8080"
echo " 局域网: http://$IP:8080"
echo " 公网: http://120.46.87.202:8080"
echo ""
echo "⚠️ 重要提示:"
echo " 1. 如果是云服务器,请确保安全组已配置"
echo " 2. 需要开放端口: 8080 和 8888"
echo " 3. 使用公网 IP 访问"
echo ""
echo "按回车键启动服务器..."
read
echo "正在启动服务器..."
echo ""
java P2PChatWebServer