🆕新增接口控制服务端、命令控制服务端
This commit is contained in:
@@ -8,62 +8,60 @@ import (
|
||||
"wireguard-dashboard/repository"
|
||||
)
|
||||
|
||||
// RestartWireguard
|
||||
// @description: 重启wireguard服务端
|
||||
func RestartWireguard() {
|
||||
configPath, err := repository.System().GetServerSetting()
|
||||
// getConfigFileName
|
||||
// @description: 获取服务端配置文件名称
|
||||
// @return string
|
||||
func getConfigFileName() string {
|
||||
data, err := repository.System().GetServerSetting()
|
||||
if err != nil {
|
||||
log.Errorf("获取服务端配置失败: %v", err.Error())
|
||||
return
|
||||
return ""
|
||||
}
|
||||
|
||||
if configPath.ConfigFilePath != "" {
|
||||
configPath.ConfigFilePath = strings.Split(configPath.ConfigFilePath, "/")[len(strings.Split(configPath.ConfigFilePath, "/"))-1]
|
||||
if data.ConfigFilePath != "" {
|
||||
data.ConfigFilePath = strings.Split(data.ConfigFilePath, "/")[len(strings.Split(data.ConfigFilePath, "/"))-1] // 这里取到的是wg0.conf
|
||||
data.ConfigFilePath = strings.Split(data.ConfigFilePath, ".conf")[0] // 这里取到的就是wg0
|
||||
}
|
||||
|
||||
if err = exec.Command(fmt.Sprintf("wg-quick down %s", configPath.ConfigFilePath)).Run(); err != nil {
|
||||
log.Errorf("停止wireguard服务端失败: %v", err.Error())
|
||||
}
|
||||
return data.ConfigFilePath
|
||||
}
|
||||
|
||||
if err = exec.Command(fmt.Sprintf("wg-quick up %s", configPath.ConfigFilePath)).Run(); err != nil {
|
||||
log.Errorf("启动wireguard服务端失败: %v", err.Error())
|
||||
// RestartWireguard
|
||||
// @description: 是否重启
|
||||
// @param isAsync // 是否异步执行
|
||||
func RestartWireguard(isAsync bool) {
|
||||
if isAsync {
|
||||
go func() {
|
||||
StopWireguard() // 停止
|
||||
StartWireguard() // 启动
|
||||
}()
|
||||
} else {
|
||||
StopWireguard() // 停止
|
||||
StartWireguard() // 启动
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// StopWireguard
|
||||
// @description: 停止服务端
|
||||
func StopWireguard() {
|
||||
configPath, err := repository.System().GetServerSetting()
|
||||
if err != nil {
|
||||
log.Errorf("获取服务端配置失败: %v", err.Error())
|
||||
return
|
||||
}
|
||||
configFileName := getConfigFileName()
|
||||
|
||||
if configPath.ConfigFilePath != "" {
|
||||
configPath.ConfigFilePath = strings.Split(configPath.ConfigFilePath, "/")[len(strings.Split(configPath.ConfigFilePath, "/"))-1]
|
||||
}
|
||||
|
||||
if err = exec.Command(fmt.Sprintf("wg-quick down %s", configPath.ConfigFilePath)).Run(); err != nil {
|
||||
if err := exec.Command(fmt.Sprintf("wg-quick down %s", configFileName)).Run(); err != nil {
|
||||
log.Errorf("停止wireguard服务端失败: %v", err.Error())
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// StartWireguard
|
||||
// @description: 启动服务端
|
||||
func StartWireguard() {
|
||||
configPath, err := repository.System().GetServerSetting()
|
||||
if err != nil {
|
||||
log.Errorf("获取服务端配置失败: %v", err.Error())
|
||||
return
|
||||
}
|
||||
configFileName := getConfigFileName()
|
||||
|
||||
if configPath.ConfigFilePath != "" {
|
||||
configPath.ConfigFilePath = strings.Split(configPath.ConfigFilePath, "/")[len(strings.Split(configPath.ConfigFilePath, "/"))-1]
|
||||
}
|
||||
|
||||
if err = exec.Command(fmt.Sprintf("wg-quick up %s", configPath.ConfigFilePath)).Run(); err != nil {
|
||||
if err := exec.Command(fmt.Sprintf("wg-quick up %s", configFileName)).Run(); err != nil {
|
||||
log.Errorf("启动wireguard服务端失败: %v", err.Error())
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
Reference in New Issue
Block a user