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
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
|