From bd5cf8b70dc8316d936d208f95c80f6ad327f9b0 Mon Sep 17 00:00:00 2001 From: ChsBuffer <33744752+chsbuffer@users.noreply.github.com> Date: Sat, 15 Aug 2020 03:36:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E6=B5=81=E9=A2=84=E5=A4=87=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/EncryptedProxy/SSController.cs | 5 ++--- .../Controllers/EncryptedProxy/SSRController.cs | 2 +- .../EncryptedProxy/TrojanController.cs | 4 ++-- .../EncryptedProxy/VMessController.cs | 4 ++-- Netch/Controllers/Interface/EncryptedProxy.cs | 17 +++++++++++++++++ Netch/Controllers/MainController.cs | 2 +- 6 files changed, 25 insertions(+), 9 deletions(-) diff --git a/Netch/Controllers/EncryptedProxy/SSController.cs b/Netch/Controllers/EncryptedProxy/SSController.cs index 7a610e89..d0e1d325 100644 --- a/Netch/Controllers/EncryptedProxy/SSController.cs +++ b/Netch/Controllers/EncryptedProxy/SSController.cs @@ -1,5 +1,4 @@ using System.Text; -using System.Threading; using Netch.Models; using Netch.Utils; @@ -21,7 +20,7 @@ namespace Netch.Controllers if (Global.Settings.BootShadowsocksFromDLL && (mode.Type == 0 || mode.Type == 1 || mode.Type == 2)) { State = State.Starting; - var client = Encoding.UTF8.GetBytes($"0.0.0.0:{Global.Settings.Socks5LocalPort}"); + var client = Encoding.UTF8.GetBytes($"{LocalAddress}:{Socks5LocalPort}"); var remote = Encoding.UTF8.GetBytes($"{server.Hostname}:{server.Port}"); var passwd = Encoding.UTF8.GetBytes($"{server.Password}"); var method = Encoding.UTF8.GetBytes($"{server.EncryptMethod}"); @@ -49,7 +48,7 @@ namespace Netch.Controllers #region Argument var argument = new StringBuilder(); - argument.Append($"-s {server.Hostname} -p {server.Port} -b {Global.Settings.LocalAddress} -l {Global.Settings.Socks5LocalPort} -m {server.EncryptMethod} -k \"{server.Password}\" -u"); + argument.Append($"-s {server.Hostname} -p {server.Port} -b {LocalAddress} -l {Socks5LocalPort} -m {server.EncryptMethod} -k \"{server.Password}\" -u"); if (!string.IsNullOrWhiteSpace(server.Plugin) && !string.IsNullOrWhiteSpace(server.PluginOption)) argument.Append($" --plugin {server.Plugin} --plugin-opts \"{server.PluginOption}\""); if (mode.BypassChina) argument.Append(" --acl default.acl"); diff --git a/Netch/Controllers/EncryptedProxy/SSRController.cs b/Netch/Controllers/EncryptedProxy/SSRController.cs index b60cac93..29d37b4d 100644 --- a/Netch/Controllers/EncryptedProxy/SSRController.cs +++ b/Netch/Controllers/EncryptedProxy/SSRController.cs @@ -33,7 +33,7 @@ namespace Netch.Controllers if (!string.IsNullOrEmpty(server.OBFSParam)) argument.Append($" -g \"{server.OBFSParam}\""); } - argument.Append($" -b {Global.Settings.LocalAddress} -l {Global.Settings.Socks5LocalPort} -u"); + argument.Append($" -b {LocalAddress} -l {Socks5LocalPort} -u"); if (mode.BypassChina) argument.Append(" --acl default.acl"); #endregion diff --git a/Netch/Controllers/EncryptedProxy/TrojanController.cs b/Netch/Controllers/EncryptedProxy/TrojanController.cs index 4b289b2e..e968316a 100644 --- a/Netch/Controllers/EncryptedProxy/TrojanController.cs +++ b/Netch/Controllers/EncryptedProxy/TrojanController.cs @@ -22,8 +22,8 @@ namespace Netch.Controllers { File.WriteAllText("data\\last.json", JsonConvert.SerializeObject(new Trojan { - local_addr = Global.Settings.LocalAddress, - local_port = Global.Settings.Socks5LocalPort, + local_addr = LocalAddress, + local_port = Socks5LocalPort, remote_addr = server.Hostname, remote_port = server.Port, password = new List diff --git a/Netch/Controllers/EncryptedProxy/VMessController.cs b/Netch/Controllers/EncryptedProxy/VMessController.cs index a72f60c5..39ed4679 100644 --- a/Netch/Controllers/EncryptedProxy/VMessController.cs +++ b/Netch/Controllers/EncryptedProxy/VMessController.cs @@ -27,8 +27,8 @@ namespace Netch.Controllers new VMess.Inbounds { settings = new VMess.InboundSettings(), - port = Global.Settings.Socks5LocalPort, - listen = Global.Settings.LocalAddress + port = Socks5LocalPort, + listen = LocalAddress } }, outbounds = new List diff --git a/Netch/Controllers/Interface/EncryptedProxy.cs b/Netch/Controllers/Interface/EncryptedProxy.cs index f1ec9dc6..66a03ae2 100644 --- a/Netch/Controllers/Interface/EncryptedProxy.cs +++ b/Netch/Controllers/Interface/EncryptedProxy.cs @@ -1,9 +1,26 @@ using Netch.Models; +using Netch.Utils; namespace Netch.Controllers { public abstract class EncryptedProxy : Controller { + private int? _socks5Port; + + public int Socks5LocalPort + { + get => _socks5Port ?? Global.Settings.Socks5LocalPort; + set => _socks5Port = value; + } + + private string _localAddress; + + public string LocalAddress + { + get => _localAddress ?? Global.Settings.LocalAddress; + set => _localAddress = value; + } + /// /// 启动 /// diff --git a/Netch/Controllers/MainController.cs b/Netch/Controllers/MainController.cs index 810bedcf..9d6abe7f 100644 --- a/Netch/Controllers/MainController.cs +++ b/Netch/Controllers/MainController.cs @@ -148,7 +148,7 @@ namespace Netch.Controllers if (result) { // 加密代理成功启动 - UsingPorts.Add(Global.Settings.Socks5LocalPort); // 记录Socks5使用端口 + UsingPorts.Add(pEncryptedProxyController.Socks5LocalPort); // 记录Socks5使用端口 switch (mode.Type) {