init.sh 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. #!/bin/bash
  2. # 生成随机 PSK 密码(32 个字符)
  3. RANDOM_PSK=$(openssl rand -base64 24 | tr -d "=+/" | cut -c1-32)
  4. # 生成随机端口(10000-65535 范围)
  5. RANDOM_PORT=$((RANDOM % 55536 + 10000))
  6. # 生成随机 PASSWORD 密码(32 个字符)
  7. RANDOM_PASSWORD=$(openssl rand -base64 24 | tr -d "=+/" | cut -c1-32)
  8. # 更新 snell-server.conf 中的 psk
  9. if [[ "$OSTYPE" == "darwin"* ]]; then
  10. # macOS 使用 sed -i '' 格式
  11. sed -i '' "s/psk = .*/psk = ${RANDOM_PSK}/" snell-server.conf
  12. else
  13. # Linux 使用 sed -i 格式
  14. sed -i "s/psk = .*/psk = ${RANDOM_PSK}/" snell-server.conf
  15. fi
  16. # 更新 docker-compose.yml 中的端口映射
  17. if [[ "$OSTYPE" == "darwin"* ]]; then
  18. # macOS 使用 sed -i '' 格式
  19. sed -i '' "s/- \"25011:25011\"/- \"${RANDOM_PORT}:25011\"/" docker-compose.yml
  20. # 更新 PASSWORD
  21. sed -i '' "s/- PASSWORD=changeme/- PASSWORD=${RANDOM_PASSWORD}/" docker-compose.yml
  22. else
  23. # Linux 使用 sed -i 格式
  24. sed -i "s/- \"25011:25011\"/- \"${RANDOM_PORT}:25011\"/" docker-compose.yml
  25. # 更新 PASSWORD
  26. sed -i "s/- PASSWORD=changeme/- PASSWORD=${RANDOM_PASSWORD}/" docker-compose.yml
  27. fi
  28. echo "✓ 已生成随机 PSK: ${RANDOM_PSK}"
  29. echo "✓ 已生成随机端口: ${RANDOM_PORT}"
  30. echo "✓ 已生成随机 PASSWORD: ${RANDOM_PASSWORD}"
  31. echo "✓ 配置文件已更新"