在liunx系统下
创建 systemd 服务单元文件
在 /etc/systemd/system/
目录下创建 sshtun.service
文件:
1 2 3 4 5 6 7 8 9 10 11 12
| [Unit] Description=SSH Tunnel Daemon After=network.target
[Service] Type=simple ExecStart=/usr/local/bin/sshtun --config /root/.ssh/sshtun.yaml Restart=always RestartSec=5
[Install] WantedBy=multi-user.target
|
请根据实际情况修改 --config
后面的配置文件路径。
Restart=always
保证服务异常退出后自动重启。
常见命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| //重新加载 systemd 配置并启动服务 sudo systemctl daemon-reload sudo systemctl enable sshtun.service sudo systemctl start sshtun.service
//查看服务状态 sudo systemctl status sshtun.service // 停止服务 sudo systemctl stop sshtun.service //重启服务 sudo systemctl restart sshtun.service //日志查看 sudo journalctl -u sshtun.service -f // 卸载 sudo systemctl stop sshtun.service sudo systemctl disable sshtun.service sudo rm /etc/systemd/system/sshtun.service sudo systemctl daemon-reload sudo rm /usr/local/bin/sshtun rm ~/.ssh/sshtun.yaml
|
在macOS系统下
选择运行类型
类型 | 路径 | 权限需求 | 适用场景 |
---|
LaunchAgent | ~/Library/LaunchAgents/ | 普通用户 | 用户登录后自动运行 |
LaunchDaemon | /Library/LaunchDaemons/ | 需要 root | 开机后就运行(系统级) |
⚠️ 建议:如果你只为自己用,用 LaunchAgent 就行。
请将路径 /usr/local/bin/sshtun
和 /Users/yourname/.ssh/sshtun.yaml
替换成你的实际路径。
你需要替换的内容:
占位 | 示例 |
---|
/usr/local/bin/sshtun | 替换成你的 Go 可执行文件绝对路径 |
/Users/yourname/.ssh/sshtun.yaml | 替换为你的配置文件绝对路径 |
/Users/yourname/Library/Logs/... | 改为你 Mac 当前用户名的路径(或用 ~ 展开) |
示例替换后(以用户为 zhiqiang 举例)
示例文件:~/Library/LaunchAgents/com.sshtun.daemon.plist
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <!-- 唯一标识 --> <key>Label</key> <string>com.sshtun.daemon</string>
<!-- 要执行的程序路径 --> <key>ProgramArguments</key> <array> <string>/usr/local/bin/sshtun</string> <string>--config</string> <string>/Users/zhiqiang/.ssh/sshtun.yaml</string> </array>
<!-- 是否在登录后自动运行 --> <key>RunAtLoad</key> <true/>
<!-- 如果程序崩溃是否重启 --> <key>KeepAlive</key> <true/>
<!-- 日志路径 --> <key>StandardOutPath</key> <string>/Users/zhiqiang/Library/Logs/sshtun.out.log</string> <key>StandardErrorPath</key> <string>/Users/zhiqiang/Library/Logs/sshtun.err.log</string> </dict> </plist>
|
常见命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| // 修改权限 chmod 644 ~/Library/LaunchAgents/com.sshtun.daemon.plist
//加载服务 launchctl load ~/Library/LaunchAgents/com.sshtun.daemon.plist
//检查是否成功运行 launchctl list | grep sshtun
//移除服务 launchctl unload ~/Library/LaunchAgents/com.sshtun.daemon.plist
//重启 launchctl unload ~/Library/LaunchAgents/com.sshtun.daemon.plist launchctl load ~/Library/LaunchAgents/com.sshtun.daemon.plist
|
在windows系统下
1. 创建任务(自动启动 sshtun)
- 打开 任务计划程序(任务栏搜索“任务计划程序”即可打开)
- 点击右侧的“创建任务…”
- 在“常规”标签页:
- 名称填写:
sshtun
- 选择“使用最高权限运行”
- 配置为“Windows 10”或对应系统版本
- 在“触发器”标签页:
- 在“操作”标签页:
- 点击“新建”
- 操作选择“启动程序”
- 程序/脚本填写
C:\path\to\sshtun.exe
- 在“添加参数”填写
--config C:\path\to\config.yaml
(根据实际路径修改) - 点击确定
- “条件”和“设置”页根据需求调整,通常默认即可。
- 保存任务。
2. 启动和停止
- 任务计划程序会根据触发器自动运行,无需手动启动。
- 需要停止时,可以直接结束程序进程,或在任务计划程序中禁用该任务。
3. 删除任务(卸载)
- 打开任务计划程序
- 找到你创建的
sshtun
任务 - 右键选择“删除”即可移除自动启动配置