#!/bin/bash # 创建systemd服务文件,用于开机自启 REMOTE_HOST="123.56.98.4" REMOTE_USER="root" TUNNEL_PORT=2222 # 获取脚本所在目录 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" AUTO_SCRIPT="${SCRIPT_DIR}/ssh_tunnel_auto.sh" echo "=== 创建SSH隧道systemd服务 ===" # 检查是否以root运行 if [ "$EUID" -ne 0 ]; then echo "请使用sudo运行此脚本" exit 1 fi # 创建服务文件 SERVICE_FILE="/etc/systemd/system/ssh-tunnel.service" cat > ${SERVICE_FILE} << EOF [Unit] Description=SSH Reverse Tunnel to ${REMOTE_HOST} After=network.target ssh.service Wants=network-online.target [Service] Type=simple User=root ExecStart=/bin/bash ${AUTO_SCRIPT} Restart=always RestartSec=10 StandardOutput=journal StandardError=journal [Install] WantedBy=multi-user.target EOF echo "✓ 服务文件已创建: ${SERVICE_FILE}" # 重新加载systemd systemctl daemon-reload echo "✓ systemd配置已重新加载" # 启用服务 systemctl enable ssh-tunnel.service echo "✓ 服务已设置为开机自启" # 启动服务 read -p "是否立即启动服务?(y/n): " start_now if [ "$start_now" = "y" ] || [ "$start_now" = "Y" ]; then systemctl start ssh-tunnel.service echo "✓ 服务已启动" echo "" echo "查看服务状态: systemctl status ssh-tunnel" echo "查看服务日志: journalctl -u ssh-tunnel -f" fi echo "" echo "=== 服务配置完成 ===" echo "" echo "常用命令:" echo " 启动服务: sudo systemctl start ssh-tunnel" echo " 停止服务: sudo systemctl stop ssh-tunnel" echo " 查看状态: sudo systemctl status ssh-tunnel" echo " 查看日志: sudo journalctl -u ssh-tunnel -f" echo " 禁用自启: sudo systemctl disable ssh-tunnel"