From a0fbcb588dad6b189f92b4733fdf062955f6c1a3 Mon Sep 17 00:00:00 2001 From: Amazing_DM Date: Fri, 20 Mar 2020 22:37:59 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=E6=B7=BB=E5=8A=A0=E7=99=BD=E5=90=8D?= =?UTF-8?q?=E5=8D=95=E6=A8=A1=E5=BC=8F=EF=BC=88=E5=8F=AF=E4=BB=A3=E7=90=86?= =?UTF-8?q?=E5=85=A8=E5=B1=80=E8=BF=9B=E7=A8=8B=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Netch/Controllers/NFController.cs | 31 ++++++++++++++++++++++++++--- Netch/Forms/SettingForm.Designer.cs | 14 +++++++++++++ Netch/Forms/SettingForm.cs | 15 ++++++++++++++ Netch/Models/Setting.cs | 4 ++++ binaries | 2 +- 5 files changed, 62 insertions(+), 4 deletions(-) diff --git a/Netch/Controllers/NFController.cs b/Netch/Controllers/NFController.cs index ead673e1..65733865 100644 --- a/Netch/Controllers/NFController.cs +++ b/Netch/Controllers/NFController.cs @@ -111,7 +111,13 @@ namespace Netch.Controllers } } - var processes = "NTT.exe,"; + var processes = ""; + + //开启进程白名单模式 + if (!Global.Settings.ProcessBypassMode) + { + processes += "NTT.exe,"; + } foreach (var proc in mode.Rule) { @@ -164,10 +170,24 @@ namespace Netch.Controllers } Instance.StartInfo.FileName = "bin\\Redirector.exe"; + //开启进程白名单模式 + if (Global.Settings.ProcessBypassMode) + { + processes += ",Shadowsocks.exe"; + processes += ",ShadowsocksR.exe"; + processes += ",Privoxy.exe"; + processes += ",simple-obfs.exe"; + processes += ",v2ray.exe,v2ctl.exe,v2ray-plugin.exe"; + fallback += " -bypass true "; + } + else + { + fallback += " -bypass false"; + } if (server.Type != "Socks5") { - fallback = $"-r 127.0.0.1:{Global.Settings.Socks5LocalPort} -p \"{processes}\""; + fallback += $"-r 127.0.0.1:{Global.Settings.Socks5LocalPort} -p \"{processes}\""; } else { @@ -178,7 +198,7 @@ namespace Netch.Controllers return false; } - fallback = $"-r {result}:{server.Port} -p \"{processes}\""; + fallback += $"-r {result}:{server.Port} -p \"{processes}\""; if (!string.IsNullOrWhiteSpace(server.Username) && !string.IsNullOrWhiteSpace(server.Password)) { @@ -187,6 +207,11 @@ namespace Netch.Controllers } } + Utils.Logging.Info($"{fallback}"); + + if (File.Exists("logging\\redirector.log")) + File.Delete("logging\\redirector.log"); + Instance.StartInfo.Arguments = fallback; Instance.OutputDataReceived += OnOutputDataReceived; Instance.ErrorDataReceived += OnOutputDataReceived; diff --git a/Netch/Forms/SettingForm.Designer.cs b/Netch/Forms/SettingForm.Designer.cs index 8339a931..4060d8d0 100644 --- a/Netch/Forms/SettingForm.Designer.cs +++ b/Netch/Forms/SettingForm.Designer.cs @@ -63,6 +63,7 @@ this.StartWhenOpenedCheckBox = new System.Windows.Forms.CheckBox(); this.StopWhenExitedCheckBox = new System.Windows.Forms.CheckBox(); this.ExitWhenClosedCheckBox = new System.Windows.Forms.CheckBox(); + this.BypassModeCheckBox = new System.Windows.Forms.CheckBox(); this.PortGroupBox.SuspendLayout(); this.TUNTAPGroupBox.SuspendLayout(); this.BehaviorGroupBox.SuspendLayout(); @@ -259,6 +260,7 @@ // // BehaviorGroupBox // + this.BehaviorGroupBox.Controls.Add(this.BypassModeCheckBox); this.BehaviorGroupBox.Controls.Add(this.Redirector2checkBox); this.BehaviorGroupBox.Controls.Add(this.label3); this.BehaviorGroupBox.Controls.Add(this.STUN_ServerPortTextBox); @@ -414,6 +416,17 @@ this.ExitWhenClosedCheckBox.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.ExitWhenClosedCheckBox.UseVisualStyleBackColor = true; // + // BypassModeCheckBox + // + this.BypassModeCheckBox.AutoSize = true; + this.BypassModeCheckBox.Location = new System.Drawing.Point(237, 266); + this.BypassModeCheckBox.Name = "BypassModeCheckBox"; + this.BypassModeCheckBox.Size = new System.Drawing.Size(135, 21); + this.BypassModeCheckBox.TabIndex = 14; + this.BypassModeCheckBox.Text = "进程代理白名单模式"; + this.BypassModeCheckBox.UseVisualStyleBackColor = true; + this.BypassModeCheckBox.CheckedChanged += new System.EventHandler(this.BypassModeCheckBox_CheckedChanged); + // // SettingForm // this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); @@ -480,5 +493,6 @@ private System.Windows.Forms.CheckBox TUNTAPProxyDNSCheckBox; private System.Windows.Forms.CheckBox Redirector2checkBox; private System.Windows.Forms.Label label3; + private System.Windows.Forms.CheckBox BypassModeCheckBox; } } \ No newline at end of file diff --git a/Netch/Forms/SettingForm.cs b/Netch/Forms/SettingForm.cs index 1b1a975c..606d9eac 100644 --- a/Netch/Forms/SettingForm.cs +++ b/Netch/Forms/SettingForm.cs @@ -63,6 +63,7 @@ namespace Netch.Forms MinimizeWhenStartedCheckBox.Checked = Global.Settings.MinimizeWhenStarted; RunAtStartup.Checked = Global.Settings.RunAtStartup; Redirector2checkBox.Checked = Global.Settings.UseRedirector2; + BypassModeCheckBox.Checked = Global.Settings.ProcessBypassMode; Socks5PortTextBox.Text = Global.Settings.Socks5LocalPort.ToString(); HTTPPortTextBox.Text = Global.Settings.HTTPLocalPort.ToString(); @@ -146,6 +147,7 @@ namespace Netch.Forms Global.Settings.MinimizeWhenStarted = MinimizeWhenStartedCheckBox.Checked; Global.Settings.RunAtStartup = RunAtStartup.Checked; Global.Settings.UseRedirector2 = Redirector2checkBox.Checked; + Global.Settings.ProcessBypassMode = BypassModeCheckBox.Checked; // 开机自启判断 TaskSchedulerClass scheduler = new TaskSchedulerClass(); @@ -331,5 +333,18 @@ namespace Netch.Forms Close(); } + private void BypassModeCheckBox_CheckedChanged(object sender, EventArgs e) + { + if (BypassModeCheckBox.Checked) + { + Redirector2checkBox.Checked = false; + Redirector2checkBox.Enabled = false; + } + else + { + Redirector2checkBox.Enabled = true; + } + + } } } diff --git a/Netch/Models/Setting.cs b/Netch/Models/Setting.cs index bf26406e..1f1e5ff0 100644 --- a/Netch/Models/Setting.cs +++ b/Netch/Models/Setting.cs @@ -158,5 +158,9 @@ namespace Netch.Models /// 是否切换为2号核心 /// public bool UseRedirector2 = false; + /// + /// 是否启用进程代理白名单模式 + /// + public bool ProcessBypassMode = false; } } diff --git a/binaries b/binaries index a07de644..a26274a8 160000 --- a/binaries +++ b/binaries @@ -1 +1 @@ -Subproject commit a07de644a83359cefa46f9e39f1b2cf4d79fba73 +Subproject commit a26274a8347bf8a9f9344fd413cbb9fa14177eae