diff --git a/Netch/Controllers/Guard.cs b/Netch/Controllers/Guard.cs
index 2659a86a..e599169b 100644
--- a/Netch/Controllers/Guard.cs
+++ b/Netch/Controllers/Guard.cs
@@ -14,12 +14,12 @@ namespace Netch.Controllers
{
public abstract class Guard
{
- public abstract string Name { get; protected set; }
+ public virtual string Name { get; }
///
/// 主程序名
///
- public abstract string MainFile { get; protected set; }
+ public virtual string MainFile { get; protected set; }
protected State State { get; set; } = State.Waiting;
@@ -103,7 +103,6 @@ namespace Netch.Controllers
};
}
-
///
/// 默认行为启动主程序
///
diff --git a/Netch/Controllers/NTTController.cs b/Netch/Controllers/NTTController.cs
index 889906ca..a22fee6d 100644
--- a/Netch/Controllers/NTTController.cs
+++ b/Netch/Controllers/NTTController.cs
@@ -7,7 +7,7 @@ namespace Netch.Controllers
{
public class NTTController : Guard, IController
{
- public override string Name { get; protected set; } = "NTT";
+ public override string Name { get; } = "NTT";
public override string MainFile { get; protected set; } = "NTT.exe";
///
@@ -16,10 +16,10 @@ namespace Netch.Controllers
///
public (string, string, string) Start()
{
- string localEnd=null;
- string publicEnd=null;
- string result =null;
- string bindingTest=null;
+ string localEnd = null;
+ string publicEnd = null;
+ string result = null;
+ string bindingTest = null;
try
{
diff --git a/Netch/Controllers/PrivoxyController.cs b/Netch/Controllers/PrivoxyController.cs
index ffe4a3d2..a9634c77 100644
--- a/Netch/Controllers/PrivoxyController.cs
+++ b/Netch/Controllers/PrivoxyController.cs
@@ -12,7 +12,7 @@ namespace Netch.Controllers
RedirectStd = false;
}
- public override string Name { get; protected set; } = "Privoxy";
+ public override string Name { get; } = "Privoxy";
public override string MainFile { get; protected set; } = "Privoxy.exe";
diff --git a/Netch/Controllers/TUNTAPController.cs b/Netch/Controllers/TUNTAPController.cs
index f00ea391..0994e95a 100644
--- a/Netch/Controllers/TUNTAPController.cs
+++ b/Netch/Controllers/TUNTAPController.cs
@@ -35,7 +35,7 @@ namespace Netch.Controllers
}
public override string MainFile { get; protected set; } = "tun2socks.exe";
- public override string Name { get; protected set; } = "tun2socks";
+ public override string Name { get; } = "tun2socks";
public bool Start(in Mode mode)
{
@@ -206,7 +206,6 @@ namespace Netch.Controllers
}
}
-
///
/// 清除绕行规则
///
@@ -219,7 +218,6 @@ namespace Netch.Controllers
return true;
}
-
public bool TestFakeDNS()
{
try
@@ -357,7 +355,6 @@ namespace Netch.Controllers
return result;
}
-
private enum RouteType
{
Outbound,
diff --git a/Netch/Servers/Shadowsocks/SSController.cs b/Netch/Servers/Shadowsocks/SSController.cs
index 435a9dbe..550eb85f 100644
--- a/Netch/Servers/Shadowsocks/SSController.cs
+++ b/Netch/Servers/Shadowsocks/SSController.cs
@@ -8,7 +8,7 @@ namespace Netch.Servers.Shadowsocks
{
public class SSController : Guard, IServerController
{
- public override string Name { get; protected set; } = "Shadowsocks";
+ public override string Name { get; } = "Shadowsocks";
public override string MainFile { get; protected set; } = "Shadowsocks.exe";
public ushort? Socks5LocalPort { get; set; }
diff --git a/Netch/Servers/ShadowsocksR/SSRController.cs b/Netch/Servers/ShadowsocksR/SSRController.cs
index 43efed4c..ab2c91f0 100644
--- a/Netch/Servers/ShadowsocksR/SSRController.cs
+++ b/Netch/Servers/ShadowsocksR/SSRController.cs
@@ -8,7 +8,7 @@ namespace Netch.Servers.ShadowsocksR
{
public override string MainFile { get; protected set; } = "ShadowsocksR.exe";
- public override string Name { get; protected set; } = "ShadowsocksR";
+ public override string Name { get; } = "ShadowsocksR";
public ushort? Socks5LocalPort { get; set; }
public string LocalAddress { get; set; }
diff --git a/Netch/Servers/Socks5/S5Controller.cs b/Netch/Servers/Socks5/S5Controller.cs
index e0f338e0..9e7a733f 100644
--- a/Netch/Servers/Socks5/S5Controller.cs
+++ b/Netch/Servers/Socks5/S5Controller.cs
@@ -1,40 +1,21 @@
-using System.IO;
-using Netch.Controllers;
using Netch.Models;
-using Netch.Servers.VMess.Utils;
+using Netch.Servers.V2ray;
namespace Netch.Servers.Socks5
{
- public class S5Controller : Guard, IServerController
+ public class S5Controller : V2RayController
{
- public override string Name { get; protected set; } = "Socks5";
- public override string MainFile { get; protected set; } = "v2ray.exe";
+ public override string Name { get; } = "Socks5";
- public bool Start(in Server s, in Mode mode)
+ public override bool Start(in Server s, in Mode mode)
{
var server = (Socks5) s;
if (server.Auth())
{
- File.WriteAllText("data\\last.json", V2rayConfigUtils.GenerateClientConfig(s, mode));
- if (StartInstanceAuto("-config ..\\data\\last.json"))
- {
- return true;
- }
-
- return false;
+ return base.Start(s, mode);
}
return true;
}
-
- public override void Stop()
- {
- if (Instance != null)
- StopInstance();
- }
-
- public ushort? Socks5LocalPort { get; set; }
-
- public string LocalAddress { get; set; }
}
}
\ No newline at end of file
diff --git a/Netch/Servers/Trojan/TrojanController.cs b/Netch/Servers/Trojan/TrojanController.cs
index 2b2aaeb9..a4d00e70 100644
--- a/Netch/Servers/Trojan/TrojanController.cs
+++ b/Netch/Servers/Trojan/TrojanController.cs
@@ -16,11 +16,10 @@ namespace Netch.Servers.Trojan
}
public override string MainFile { get; protected set; } = "Trojan.exe";
- public override string Name { get; protected set; } = "Trojan";
+ public override string Name { get; } = "Trojan";
public ushort? Socks5LocalPort { get; set; }
public string LocalAddress { get; set; }
-
public bool Start(in Server s, in Mode mode)
{
var server = (Trojan) s;
diff --git a/Netch/Servers/VMess/Models/V2rayConfig.cs b/Netch/Servers/V2ray/Models/V2rayConfig.cs
similarity index 99%
rename from Netch/Servers/VMess/Models/V2rayConfig.cs
rename to Netch/Servers/V2ray/Models/V2rayConfig.cs
index 2a536486..be39e1ea 100644
--- a/Netch/Servers/VMess/Models/V2rayConfig.cs
+++ b/Netch/Servers/V2ray/Models/V2rayConfig.cs
@@ -1,6 +1,6 @@
using System.Collections.Generic;
-namespace Netch.Servers.VMess.Models
+namespace Netch.Servers.V2ray.Models
{
public class V2rayConfig
{
@@ -40,7 +40,6 @@ namespace Netch.Servers.VMess.Models
public List clients { get; set; }
-
public string decryption { get; set; }
}
@@ -125,7 +124,6 @@ namespace Netch.Servers.VMess.Models
public int level { get; set; }
}
-
public class Mux
{
public bool enabled { get; set; }
@@ -218,7 +216,6 @@ namespace Netch.Servers.VMess.Models
public TCPRequestHeaders headers;
}
-
public class TCPRequestHeaders
{
public string Host;
diff --git a/Netch/Servers/VMess/Models/V2rayNSharing.cs b/Netch/Servers/V2ray/Models/V2rayNSharing.cs
similarity index 97%
rename from Netch/Servers/VMess/Models/V2rayNSharing.cs
rename to Netch/Servers/V2ray/Models/V2rayNSharing.cs
index e63bfd09..7c969933 100644
--- a/Netch/Servers/VMess/Models/V2rayNSharing.cs
+++ b/Netch/Servers/V2ray/Models/V2rayNSharing.cs
@@ -1,4 +1,4 @@
-namespace Netch.Servers.VMess.Models
+namespace Netch.Servers.V2ray.Models
{
///
/// 使用 v2rayN 定义的 VMess 链接格式
diff --git a/Netch/Servers/VMess/Utils/V2rayConfigUtils.cs b/Netch/Servers/V2ray/Utils/V2rayConfigUtils.cs
similarity index 98%
rename from Netch/Servers/VMess/Utils/V2rayConfigUtils.cs
rename to Netch/Servers/V2ray/Utils/V2rayConfigUtils.cs
index daff8e98..11adf01e 100644
--- a/Netch/Servers/VMess/Utils/V2rayConfigUtils.cs
+++ b/Netch/Servers/V2ray/Utils/V2rayConfigUtils.cs
@@ -1,11 +1,11 @@
using System.Collections.Generic;
using System.Linq;
using Netch.Models;
-using Netch.Servers.VMess.Models;
+using Netch.Servers.V2ray.Models;
using Newtonsoft.Json;
-using V2rayConfig = Netch.Servers.VMess.Models.V2rayConfig;
+using V2rayConfig = Netch.Servers.V2ray.Models.V2rayConfig;
-namespace Netch.Servers.VMess.Utils
+namespace Netch.Servers.V2ray.Utils
{
public static class V2rayConfigUtils
{
@@ -214,7 +214,7 @@ namespace Netch.Servers.VMess.Utils
outbound.settings.servers = null;
break;
}
- case VMess vmess:
+ case VMess.VMess vmess:
{
var vnextItem = new VnextItem
{
@@ -261,7 +261,7 @@ namespace Netch.Servers.VMess.Utils
}
}
- private static void boundStreamSettings(VMess server, ref StreamSettings streamSettings)
+ private static void boundStreamSettings(VMess.VMess server, ref StreamSettings streamSettings)
{
try
{
diff --git a/Netch/Servers/VMess/VMessController.cs b/Netch/Servers/V2ray/V2rayController.cs
similarity index 68%
rename from Netch/Servers/VMess/VMessController.cs
rename to Netch/Servers/V2ray/V2rayController.cs
index e4d05d47..46eb0666 100644
--- a/Netch/Servers/VMess/VMessController.cs
+++ b/Netch/Servers/V2ray/V2rayController.cs
@@ -1,25 +1,23 @@
-using System.IO;
+using System.IO;
using Netch.Controllers;
using Netch.Models;
-using Netch.Servers.VMess.Utils;
+using Netch.Servers.V2ray.Utils;
-namespace Netch.Servers.VMess
+namespace Netch.Servers.V2ray
{
- public class VMessController : Guard, IServerController
+ public class V2RayController : Guard, IServerController
{
- public VMessController()
+ public V2RayController()
{
StartedKeywords.Add("started");
StoppedKeywords.AddRange(new[] {"config file not readable", "failed to"});
}
- public override string Name { get; protected set; } = "VMess";
+ public override string Name { get; } = "V2ray";
public override string MainFile { get; protected set; } = "v2ray.exe";
public ushort? Socks5LocalPort { get; set; }
public string LocalAddress { get; set; }
-
-
- public bool Start(in Server s,in Mode mode)
+ public virtual bool Start(in Server s, in Mode mode)
{
File.WriteAllText("data\\last.json", V2rayConfigUtils.GenerateClientConfig(s, mode));
return StartInstanceAuto("-config ..\\data\\last.json");
diff --git a/Netch/Servers/VLESS/VLESSController.cs b/Netch/Servers/VLESS/VLESSController.cs
deleted file mode 100644
index 92c6343c..00000000
--- a/Netch/Servers/VLESS/VLESSController.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using System.IO;
-using Netch.Controllers;
-using Netch.Models;
-using Netch.Servers.VMess.Utils;
-
-namespace Netch.Servers.VLESS
-{
- public class VLESSController : Guard, IServerController
- {
- public override string Name { get; protected set; } = "VLESS";
- public override string MainFile { get; protected set; } = "v2ray.exe";
-
- public ushort? Socks5LocalPort { get; set; }
-
- public string LocalAddress { get; set; }
-
- public bool Start(in Server s,in Mode mode)
- {
- File.WriteAllText("data\\last.json", V2rayConfigUtils.GenerateClientConfig(s, mode));
- return StartInstanceAuto("-config ..\\data\\last.json");
- }
-
- public override void Stop()
- {
- StopInstance();
- }
- }
-}
\ No newline at end of file
diff --git a/Netch/Servers/VLESS/VLESSUtil.cs b/Netch/Servers/VLESS/VLESSUtil.cs
index 813838bf..055eab46 100644
--- a/Netch/Servers/VLESS/VLESSUtil.cs
+++ b/Netch/Servers/VLESS/VLESSUtil.cs
@@ -1,6 +1,7 @@
using System.Collections.Generic;
using Netch.Controllers;
using Netch.Models;
+using Netch.Servers.V2ray;
using Newtonsoft.Json.Linq;
namespace Netch.Servers.VLESS
@@ -36,7 +37,7 @@ namespace Netch.Servers.VLESS
public IServerController GetController()
{
- return new VLESSController();
+ return new V2RayController();
}
public IEnumerable ParseUri(string text)
diff --git a/Netch/Servers/VMess/VMessUtil.cs b/Netch/Servers/VMess/VMessUtil.cs
index c8a44fff..e365dc32 100644
--- a/Netch/Servers/VMess/VMessUtil.cs
+++ b/Netch/Servers/VMess/VMessUtil.cs
@@ -2,8 +2,9 @@ using System;
using System.Collections.Generic;
using Netch.Controllers;
using Netch.Models;
+using Netch.Servers.V2ray;
+using Netch.Servers.V2ray.Models;
using Netch.Servers.VMess.Form;
-using Netch.Servers.VMess.Models;
using Netch.Utils;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
@@ -56,7 +57,7 @@ namespace Netch.Servers.VMess
public IServerController GetController()
{
- return new VMessController();
+ return new V2RayController();
}
public IEnumerable ParseUri(string text)
diff --git a/Netch/Utils/Firewall.cs b/Netch/Utils/Firewall.cs
index dfef9a4e..cdc3766e 100644
--- a/Netch/Utils/Firewall.cs
+++ b/Netch/Utils/Firewall.cs
@@ -120,7 +120,6 @@ namespace Netch.Utils
return (INetFwRule) Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FWRule"));
}
-
private static string GetFwRulePath(string ruleName)
{
try