diff --git a/v2rayN/v2rayN/Forms/RoutingSettingControl.Designer.cs b/v2rayN/v2rayN/Forms/RoutingSettingControl.Designer.cs
index 56ae1ccf..912b2ab4 100644
--- a/v2rayN/v2rayN/Forms/RoutingSettingControl.Designer.cs
+++ b/v2rayN/v2rayN/Forms/RoutingSettingControl.Designer.cs
@@ -32,8 +32,6 @@
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.btnExpand = new System.Windows.Forms.Button();
this.label4 = new System.Windows.Forms.Label();
- this.label1 = new System.Windows.Forms.Label();
- this.cmbroutingMode = new System.Windows.Forms.ComboBox();
this.cmbOutboundTag = new System.Windows.Forms.ComboBox();
this.btnRemove = new System.Windows.Forms.Button();
this.txtUserRule = new System.Windows.Forms.TextBox();
@@ -48,8 +46,6 @@
resources.ApplyResources(this.groupBox2, "groupBox2");
this.groupBox2.Controls.Add(this.btnExpand);
this.groupBox2.Controls.Add(this.label4);
- this.groupBox2.Controls.Add(this.label1);
- this.groupBox2.Controls.Add(this.cmbroutingMode);
this.groupBox2.Controls.Add(this.cmbOutboundTag);
this.groupBox2.Controls.Add(this.btnRemove);
this.groupBox2.Controls.Add(this.txtUserRule);
@@ -71,24 +67,6 @@
resources.ApplyResources(this.label4, "label4");
this.label4.Name = "label4";
//
- // label1
- //
- resources.ApplyResources(this.label1, "label1");
- this.label1.Name = "label1";
- //
- // cmbroutingMode
- //
- resources.ApplyResources(this.cmbroutingMode, "cmbroutingMode");
- this.cmbroutingMode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
- this.cmbroutingMode.FormattingEnabled = true;
- this.cmbroutingMode.Items.AddRange(new object[] {
- resources.GetString("cmbroutingMode.Items"),
- resources.GetString("cmbroutingMode.Items1"),
- resources.GetString("cmbroutingMode.Items2"),
- resources.GetString("cmbroutingMode.Items3"),
- resources.GetString("cmbroutingMode.Items4")});
- this.cmbroutingMode.Name = "cmbroutingMode";
- //
// cmbOutboundTag
//
resources.ApplyResources(this.cmbOutboundTag, "cmbOutboundTag");
@@ -151,8 +129,6 @@
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Button btnRemove;
private System.Windows.Forms.ComboBox cmbOutboundTag;
- private System.Windows.Forms.Label label1;
- private System.Windows.Forms.ComboBox cmbroutingMode;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Button btnExpand;
}
diff --git a/v2rayN/v2rayN/Forms/RoutingSettingControl.cs b/v2rayN/v2rayN/Forms/RoutingSettingControl.cs
index 2637aacf..33f44027 100644
--- a/v2rayN/v2rayN/Forms/RoutingSettingControl.cs
+++ b/v2rayN/v2rayN/Forms/RoutingSettingControl.cs
@@ -31,8 +31,6 @@ namespace v2rayN.Forms
{
txtRemarks.Text = routingItem.remarks.ToString();
cmbOutboundTag.Text = routingItem.outboundTag;
- int.TryParse(routingItem.routingMode, out int routingMode);
- cmbroutingMode.SelectedIndex = routingMode;
txtUserRule.Text = Utils.List2String(routingItem.userRules, true);
}
}
@@ -42,7 +40,6 @@ namespace v2rayN.Forms
{
routingItem.remarks = txtRemarks.Text.TrimEx();
routingItem.outboundTag = cmbOutboundTag.Text;
- routingItem.routingMode = cmbroutingMode.SelectedIndex.ToString();
routingItem.userRules = Utils.String2List(txtUserRule.Text);
}
}
diff --git a/v2rayN/v2rayN/Forms/RoutingSettingControl.resx b/v2rayN/v2rayN/Forms/RoutingSettingControl.resx
index 7c33a91b..656bfa7b 100644
--- a/v2rayN/v2rayN/Forms/RoutingSettingControl.resx
+++ b/v2rayN/v2rayN/Forms/RoutingSettingControl.resx
@@ -117,9 +117,6 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- Pre-defined
-
NoControl
@@ -128,29 +125,23 @@
733, 164
+
+ Rule
+
119, 20
+
+ direct
+
System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
groupBox2
-
- 9
-
-
- 127, 53
-
-
- 75, 23
-
- 127, 87
-
-
- Remove
+ 127, 50
txtRemarks
@@ -162,14 +153,14 @@
23
+
+ 4
+
RoutingSettingControl
-
- 162, 21
-
-
- label1
+
+ Expand
System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
@@ -181,7 +172,7 @@
28
- 7
+ 5
proxy
@@ -189,11 +180,11 @@
77, 12
-
- 362, 21
+
+ 2
-
- System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ 544, 21
6, 12
@@ -213,41 +204,20 @@
btnExpand
-
- groupBox2
-
12, 87
-
- 2
+
+ txtUserRule
-
- cmbroutingMode
+
+ True
-
- 255, 20
+
+ 75, 23
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- Global
-
-
- 71, 12
-
-
- Bypass mainland address
-
-
- Bypassing the LAN address
-
-
- 4
-
-
- 640, 21
+
+ groupBox2
Fill
@@ -261,18 +231,18 @@
25
-
+
groupBox2
+
+ 11
+
NoControl
47, 12
-
- True
-
btnRemove
@@ -291,35 +261,23 @@
Out Tag
-
- 27
-
block
-
- direct
-
-
- 75, 23
-
-
- NoControl
-
-
- 26
+
+ Remove
- 5
+ 3
+
+
+ System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
groupBox2
-
- 6
-
-
- Expand
+
+ groupBox2
1
@@ -331,7 +289,7 @@
groupBox2
- 588, 68
+ 588, 105
True
@@ -342,12 +300,6 @@
groupBox2
-
- True
-
-
- Bypassing LAN and mainland address
-
NoControl
@@ -360,35 +312,26 @@
System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- groupBox2
-
733, 164
- 8
+ 6
Top, Bottom, Left, Right
-
- 12, 57
+
+ 362, 21
cmbOutboundTag
-
- 11
-
Remarks
-
- groupBox2
-
-
- 3
+
+ 0
True
@@ -396,8 +339,8 @@
12, 25
-
- groupBox2
+
+ 75, 23
301, 26
@@ -405,8 +348,8 @@
47, 12
-
- Rule
+
+ 162, 21
10
@@ -414,32 +357,23 @@
Domain or IP
+
+ $this
+
System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- txtUserRule
-
-
- 0
-
System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
0
-
- $this
+
+ 640, 21
-
- Use custom Domain or IP
-
-
- System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- 640, 46
+
+ 7
System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
diff --git a/v2rayN/v2rayN/Forms/RoutingSettingControl.zh-Hans.resx b/v2rayN/v2rayN/Forms/RoutingSettingControl.zh-Hans.resx
index d95c2560..94e70d37 100644
--- a/v2rayN/v2rayN/Forms/RoutingSettingControl.zh-Hans.resx
+++ b/v2rayN/v2rayN/Forms/RoutingSettingControl.zh-Hans.resx
@@ -119,7 +119,7 @@
- 619, 46
+ 526, 20
扩大
@@ -130,27 +130,6 @@
出口标签
-
- 65, 12
-
-
- 预定义规则
-
-
- 使用自定义域名或IP
-
-
- 全局
-
-
- 绕过局域网
-
-
- 绕过大陆地址
-
-
- 绕过局域网及大陆地址
-
619, 20
@@ -158,7 +137,7 @@
移除
- 567, 64
+ 567, 104
29, 12
diff --git a/v2rayN/v2rayN/Forms/RoutingSettingForm.cs b/v2rayN/v2rayN/Forms/RoutingSettingForm.cs
index 0b145a04..35bd956f 100644
--- a/v2rayN/v2rayN/Forms/RoutingSettingForm.cs
+++ b/v2rayN/v2rayN/Forms/RoutingSettingForm.cs
@@ -65,6 +65,8 @@ namespace v2rayN.Forms
private void btnOK_Click(object sender, EventArgs e)
{
+ config.domainStrategy = cmbdomainStrategy.Text;
+
if (config.routingItem.Count <= 0)
{
AddSub("proxy", "");
@@ -93,12 +95,11 @@ namespace v2rayN.Forms
}
- private void AddSub(string outboundTag, string userRule, string routingMode = "0")
+ private void AddSub(string outboundTag, string userRule)
{
RoutingItem RoutingItem = new RoutingItem
{
remarks = outboundTag,
- routingMode = routingMode,
outboundTag = outboundTag,
userRules = Utils.String2List(userRule)
@@ -129,8 +130,8 @@ namespace v2rayN.Forms
AddSub(lstTag[k], result);
}
- AddSub(Global.directTag, "", "4");
- AddSub(Global.agentTag, "", "0");
+ AddSub(Global.directTag, Utils.GetEmbedText(Global.CustomRoutingFileName + "private"));
+ AddSub(Global.agentTag, "");
RefreshSubsView();
}
diff --git a/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs b/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs
index 654a7571..61175ba4 100644
--- a/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs
+++ b/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs
@@ -197,28 +197,7 @@ namespace v2rayN.Handler
foreach (var item in config.routingItem)
{
- if (item.routingMode != "0")
- {
- switch (item.routingMode)
- {
- case "1":
- break;
- case "2":
- routingGeo("ip", "private", Global.directTag, ref v2rayConfig);
- break;
- case "3":
- routingGeo("", "cn", Global.directTag, ref v2rayConfig);
- break;
- case "4":
- routingGeo("ip", "private", Global.directTag, ref v2rayConfig);
- routingGeo("", "cn", Global.directTag, ref v2rayConfig);
- break;
- }
- }
- else
- {
- routingUserRule(item.userRules, item.outboundTag, ref v2rayConfig);
- }
+ routingUserRule(item.userRules, item.outboundTag, ref v2rayConfig);
}
}
}
@@ -297,46 +276,6 @@ namespace v2rayN.Handler
return 0;
}
-
- private static int routingGeo(string ipOrDomain, string code, string tag, ref V2rayConfig v2rayConfig)
- {
- try
- {
- if (!Utils.IsNullOrEmpty(code))
- {
- //IP
- if (ipOrDomain == "ip" || ipOrDomain == "")
- {
- RulesItem rulesItem = new RulesItem
- {
- type = "field",
- outboundTag = Global.directTag,
- ip = new List()
- };
- rulesItem.ip.Add($"geoip:{code}");
-
- v2rayConfig.routing.rules.Add(rulesItem);
- }
-
- if (ipOrDomain == "domain" || ipOrDomain == "")
- {
- RulesItem rulesItem = new RulesItem
- {
- type = "field",
- outboundTag = Global.directTag,
- domain = new List()
- };
- rulesItem.domain.Add($"geosite:{code}");
- v2rayConfig.routing.rules.Add(rulesItem);
- }
- }
- }
- catch
- {
- }
- return 0;
- }
-
///
/// vmess协议服务器配置
///
diff --git a/v2rayN/v2rayN/Mode/Config.cs b/v2rayN/v2rayN/Mode/Config.cs
index 42c01f70..245d9ed0 100644
--- a/v2rayN/v2rayN/Mode/Config.cs
+++ b/v2rayN/v2rayN/Mode/Config.cs
@@ -704,15 +704,7 @@ namespace v2rayN.Mode
{
get; set;
}
-
- ///
- /// 路由模式
- ///
- public string routingMode
- {
- get; set;
- }
-
+
///
///
///
diff --git a/v2rayN/v2rayN/Properties/AssemblyInfo.cs b/v2rayN/v2rayN/Properties/AssemblyInfo.cs
index 79c9ddd1..794c9c1a 100644
--- a/v2rayN/v2rayN/Properties/AssemblyInfo.cs
+++ b/v2rayN/v2rayN/Properties/AssemblyInfo.cs
@@ -32,4 +32,4 @@ using System.Runtime.InteropServices;
// 方法是按如下所示使用“*”:
//[assembly: AssemblyVersion("1.0.*")]
//[assembly: AssemblyVersion("1.0.0")]
-[assembly: AssemblyFileVersion("4.0")]
+[assembly: AssemblyFileVersion("4.1")]
diff --git a/v2rayN/v2rayN/Sample/custom_routing_private b/v2rayN/v2rayN/Sample/custom_routing_private
new file mode 100644
index 00000000..8003b809
--- /dev/null
+++ b/v2rayN/v2rayN/Sample/custom_routing_private
@@ -0,0 +1,3 @@
+geoip:private,
+geoip:cn,
+geosite:cn
\ No newline at end of file
diff --git a/v2rayN/v2rayN/v2rayN.csproj b/v2rayN/v2rayN/v2rayN.csproj
index 51a06fb1..d79b2067 100644
--- a/v2rayN/v2rayN/v2rayN.csproj
+++ b/v2rayN/v2rayN/v2rayN.csproj
@@ -373,6 +373,7 @@
+