Compare commits

...

7 Commits
5.15 ... 5.16

Author SHA1 Message Date
2dust
0e55a859ea Update AssemblyInfo.cs 2022-04-14 18:30:15 +08:00
2dust
0b1ec520f4 fix 2022-04-14 17:01:51 +08:00
2dust
fcc5f29882 add auto update sub setting 2022-04-14 16:49:12 +08:00
2dust
d431c63245 Merge pull request #2192 from FrzMtrsprt/patch-1
Add support for Clash's modern CPU executable
2022-04-14 15:08:08 +08:00
FrzMtrsprt
15f8db64e7 Add support for Clash's modern CPU executable
Add support for clash-windows-amd64-v3.exe
2022-04-14 12:13:22 +08:00
2dust
c2ea14151e add naiveproxy 2022-04-14 11:10:06 +08:00
2dust
977f0428e2 Refactor Inbound 2022-04-14 09:56:11 +08:00
24 changed files with 826 additions and 622 deletions

View File

@@ -22,6 +22,7 @@ namespace v2rayN.Forms
cmbCoreType.Items.Add("clash"); cmbCoreType.Items.Add("clash");
cmbCoreType.Items.Add("clash_meta"); cmbCoreType.Items.Add("clash_meta");
cmbCoreType.Items.Add("hysteria"); cmbCoreType.Items.Add("hysteria");
cmbCoreType.Items.Add("naiveproxy");
cmbCoreType.Items.Add(string.Empty); cmbCoreType.Items.Add(string.Empty);
txtAddress.ReadOnly = true; txtAddress.ReadOnly = true;

View File

@@ -389,13 +389,6 @@ namespace v2rayN.Forms
{ {
} }
private void ssMain_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
if (!Utils.IsNullOrEmpty(e.ClickedItem.Text))
{
Utils.SetClipboardData(e.ClickedItem.Text);
}
}
private void lvServers_ColumnClick(object sender, ColumnClickEventArgs e) private void lvServers_ColumnClick(object sender, ColumnClickEventArgs e)
{ {
@@ -1277,26 +1270,12 @@ namespace v2rayN.Forms
} }
ConfigHandler.SaveConfig(ref config, false); ConfigHandler.SaveConfig(ref config, false);
DisplayToolStatus();
}
private void DisplayToolStatus() mainMsgControl.DisplayToolStatus(config);
{
StringBuilder sb = new StringBuilder();
sb.Append($"{Global.InboundSocks} {Global.Loopback}:{config.GetLocalPort(Global.InboundSocks)}");
sb.Append(" | ");
sb.Append($"{Global.InboundHttp} {Global.Loopback}:{config.GetLocalPort(Global.InboundHttp)}");
if (config.sysProxyType == ESysProxyType.ForcedChange)
{
sb.Append(" | ");
sb.Append($"{ResUI.SystemProxy} {Global.Loopback}:{config.GetLocalPort(Global.InboundHttp2)}");
}
mainMsgControl.SetToolSslInfo("inbound", sb.ToString());
notifyMain.Icon = MainFormHandler.Instance.GetNotifyIcon(config, this.Icon); notifyMain.Icon = MainFormHandler.Instance.GetNotifyIcon(config, this.Icon);
} }
#endregion #endregion

View File

@@ -130,6 +130,7 @@ namespace v2rayN.Forms
this.toolSslServerSpeed, this.toolSslServerSpeed,
this.toolSslBlank4}); this.toolSslBlank4});
this.ssMain.Name = "ssMain"; this.ssMain.Name = "ssMain";
this.ssMain.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.ssMain_ItemClicked);
// //
// toolSslInboundInfo // toolSslInboundInfo
// //

View File

@@ -9,6 +9,7 @@ using System.Text.RegularExpressions;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
using v2rayN.Base; using v2rayN.Base;
using v2rayN.Mode;
using v2rayN.Resx; using v2rayN.Resx;
namespace v2rayN.Forms namespace v2rayN.Forms
@@ -78,6 +79,32 @@ namespace v2rayN.Forms
}); });
} }
public void DisplayToolStatus(Config config)
{
StringBuilder sb = new StringBuilder();
sb.Append($"{ResUI.LabLocal}:");
sb.Append($"[{Global.InboundSocks}:{config.GetLocalPort(Global.InboundSocks)}]");
sb.Append(" | ");
if (config.sysProxyType == ESysProxyType.ForcedChange)
{
sb.Append($"[{Global.InboundHttp}({ResUI.SystemProxy}):{config.GetLocalPort(Global.InboundHttp)}]");
}
else
{
sb.Append($"[{Global.InboundHttp}:{config.GetLocalPort(Global.InboundHttp)}]");
}
if (config.inbound[0].allowLANConn)
{
sb.Append($" {ResUI.LabLAN}:");
sb.Append($"[{Global.InboundSocks}:{config.GetLocalPort(Global.InboundSocks2)}]");
sb.Append(" | ");
sb.Append($"[{Global.InboundHttp}:{config.GetLocalPort(Global.InboundHttp2)}]");
}
SetToolSslInfo("inbound", sb.ToString());
}
public void SetToolSslInfo(string type, string value) public void SetToolSslInfo(string type, string value)
{ {
switch (type) switch (type)
@@ -162,6 +189,14 @@ namespace v2rayN.Forms
gbMsgTitle.Text = string.Format(ResUI.MsgInformationTitle, MsgFilter); gbMsgTitle.Text = string.Format(ResUI.MsgInformationTitle, MsgFilter);
} }
} }
private void ssMain_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
if (!Utils.IsNullOrEmpty(e.ClickedItem.Text))
{
Utils.SetClipboardData(e.ClickedItem.Text);
}
}
#endregion #endregion

View File

@@ -126,12 +126,12 @@
<data name="menuMsgBoxSelectAll.Text" xml:space="preserve"> <data name="menuMsgBoxSelectAll.Text" xml:space="preserve">
<value>Select All (Ctrl+A)</value> <value>Select All (Ctrl+A)</value>
</data> </data>
<data name="&gt;&gt;ssMain.Name" xml:space="preserve">
<value>ssMain</value>
</data>
<data name="&gt;&gt;menuMsgBoxSelectAll.Name" xml:space="preserve"> <data name="&gt;&gt;menuMsgBoxSelectAll.Name" xml:space="preserve">
<value>menuMsgBoxSelectAll</value> <value>menuMsgBoxSelectAll</value>
</data> </data>
<data name="&gt;&gt;txtMsgBox.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="toolSslServerSpeed.AutoSize" type="System.Boolean, mscorlib"> <data name="toolSslServerSpeed.AutoSize" type="System.Boolean, mscorlib">
<value>False</value> <value>False</value>
@@ -146,9 +146,6 @@
<data name="menuMsgBoxSelectAll.Size" type="System.Drawing.Size, System.Drawing"> <data name="menuMsgBoxSelectAll.Size" type="System.Drawing.Size, System.Drawing">
<value>227, 22</value> <value>227, 22</value>
</data> </data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;menuMsgBoxCopyAll.Name" xml:space="preserve"> <data name="&gt;&gt;menuMsgBoxCopyAll.Name" xml:space="preserve">
<value>menuMsgBoxCopyAll</value> <value>menuMsgBoxCopyAll</value>
</data> </data>
@@ -173,8 +170,8 @@
<data name="&gt;&gt;toolSslBlank1.Type" xml:space="preserve"> <data name="&gt;&gt;toolSslBlank1.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing"> <data name="&gt;&gt;toolSslInboundInfo.Type" xml:space="preserve">
<value>6, 12</value> <value>System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="toolSslRoutingRule.Size" type="System.Drawing.Size, System.Drawing"> <data name="toolSslRoutingRule.Size" type="System.Drawing.Size, System.Drawing">
<value>0, 17</value> <value>0, 17</value>
@@ -188,6 +185,9 @@
<data name="&gt;&gt;txtMsgBox.Name" xml:space="preserve"> <data name="&gt;&gt;txtMsgBox.Name" xml:space="preserve">
<value>txtMsgBox</value> <value>txtMsgBox</value>
</data> </data>
<data name="toolSslBlank4.Size" type="System.Drawing.Size, System.Drawing">
<value>0, 17</value>
</data>
<data name="&gt;&gt;menuMsgBoxFilter.Type" xml:space="preserve"> <data name="&gt;&gt;menuMsgBoxFilter.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
@@ -209,9 +209,6 @@
<data name="menuMsgBoxAddRoutingRule.Text" xml:space="preserve"> <data name="menuMsgBoxAddRoutingRule.Text" xml:space="preserve">
<value>Add Routing Rule (Ctrl+V)</value> <value>Add Routing Rule (Ctrl+V)</value>
</data> </data>
<data name="&gt;&gt;toolSslServerSpeed.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="toolSslServerSpeed.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing"> <data name="toolSslServerSpeed.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleRight</value> <value>MiddleRight</value>
</data> </data>
@@ -224,15 +221,15 @@
<data name="toolSslInboundInfo.Text" xml:space="preserve"> <data name="toolSslInboundInfo.Text" xml:space="preserve">
<value>InboundInfo</value> <value>InboundInfo</value>
</data> </data>
<data name="&gt;&gt;txtMsgBox.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;menuMsgBoxAddRoutingRule.Type" xml:space="preserve"> <data name="&gt;&gt;menuMsgBoxAddRoutingRule.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;menuMsgBoxClear.Name" xml:space="preserve"> <data name="&gt;&gt;menuMsgBoxClear.Name" xml:space="preserve">
<value>menuMsgBoxClear</value> <value>menuMsgBoxClear</value>
</data> </data>
<data name="txtMsgBox.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="gbMsgTitle.TabIndex" type="System.Int32, mscorlib"> <data name="gbMsgTitle.TabIndex" type="System.Int32, mscorlib">
<value>5</value> <value>5</value>
</data> </data>
@@ -242,9 +239,6 @@
<data name="txtMsgBox.Location" type="System.Drawing.Point, System.Drawing"> <data name="txtMsgBox.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 17</value> <value>3, 17</value>
</data> </data>
<data name="&gt;&gt;toolSslInboundInfo.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;toolSslBlank4.Name" xml:space="preserve"> <data name="&gt;&gt;toolSslBlank4.Name" xml:space="preserve">
<value>toolSslBlank4</value> <value>toolSslBlank4</value>
</data> </data>
@@ -260,15 +254,15 @@
<data name="toolSslBlank2.Size" type="System.Drawing.Size, System.Drawing"> <data name="toolSslBlank2.Size" type="System.Drawing.Size, System.Drawing">
<value>172, 17</value> <value>172, 17</value>
</data> </data>
<data name="&gt;&gt;menuMsgBoxAddRoutingRule.Name" xml:space="preserve">
<value>menuMsgBoxAddRoutingRule</value>
</data>
<data name="txtMsgBox.Multiline" type="System.Boolean, mscorlib"> <data name="txtMsgBox.Multiline" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
</data> </data>
<data name="menuMsgBoxClear.Text" xml:space="preserve"> <data name="menuMsgBoxClear.Text" xml:space="preserve">
<value>Clear All</value> <value>Clear All</value>
</data> </data>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>6, 12</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="txtMsgBox.ScrollBars" type="System.Windows.Forms.ScrollBars, System.Windows.Forms"> <data name="txtMsgBox.ScrollBars" type="System.Windows.Forms.ScrollBars, System.Windows.Forms">
<value>Vertical</value> <value>Vertical</value>
@@ -282,6 +276,9 @@
<data name="&gt;&gt;cmsMsgBox.Name" xml:space="preserve"> <data name="&gt;&gt;cmsMsgBox.Name" xml:space="preserve">
<value>cmsMsgBox</value> <value>cmsMsgBox</value>
</data> </data>
<data name="txtMsgBox.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="&gt;&gt;cmsMsgBox.Type" xml:space="preserve"> <data name="&gt;&gt;cmsMsgBox.Type" xml:space="preserve">
<value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
@@ -303,8 +300,8 @@
<data name="&gt;&gt;toolSslBlank4.Type" xml:space="preserve"> <data name="&gt;&gt;toolSslBlank4.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="menuMsgBoxCopyAll.Text" xml:space="preserve"> <data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>Copy All</value> <value>MainMsgControl</value>
</data> </data>
<data name="gbMsgTitle.Location" type="System.Drawing.Point, System.Drawing"> <data name="gbMsgTitle.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value> <value>0, 0</value>
@@ -318,26 +315,29 @@
<data name="toolSslServerSpeed.RightToLeft" type="System.Windows.Forms.RightToLeft, System.Windows.Forms"> <data name="toolSslServerSpeed.RightToLeft" type="System.Windows.Forms.RightToLeft, System.Windows.Forms">
<value>No</value> <value>No</value>
</data> </data>
<data name="menuMsgBoxCopy.Text" xml:space="preserve"> <data name="menuMsgBoxCopyAll.Text" xml:space="preserve">
<value>Copy (Ctrl+C)</value> <value>Copy All</value>
</data>
<data name="toolSslServerSpeed.Size" type="System.Drawing.Size, System.Drawing">
<value>250, 17</value>
</data> </data>
<data name="ssMain.Text" xml:space="preserve"> <data name="ssMain.Text" xml:space="preserve">
<value>statusStrip1</value> <value>statusStrip1</value>
</data> </data>
<data name="&gt;&gt;menuMsgBoxSelectAll.Type" xml:space="preserve"> <data name="&gt;&gt;menuMsgBoxAddRoutingRule.Name" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>menuMsgBoxAddRoutingRule</value>
</data> </data>
<data name="&gt;&gt;toolSslBlank2.Name" xml:space="preserve"> <data name="&gt;&gt;toolSslBlank2.Name" xml:space="preserve">
<value>toolSslBlank2</value> <value>toolSslBlank2</value>
</data> </data>
<data name="&gt;&gt;menuMsgBoxCopyAll.Type" xml:space="preserve"> <data name="menuMsgBoxFilter.Text" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>Set message filters</value>
</data> </data>
<data name="toolSslServerSpeed.Text" xml:space="preserve"> <data name="toolSslServerSpeed.Text" xml:space="preserve">
<value>SPEED Disabled</value> <value>SPEED Disabled</value>
</data> </data>
<data name="txtMsgBox.TabIndex" type="System.Int32, mscorlib"> <data name="&gt;&gt;txtMsgBox.ZOrder" xml:space="preserve">
<value>4</value> <value>0</value>
</data> </data>
<data name="&gt;&gt;gbMsgTitle.Name" xml:space="preserve"> <data name="&gt;&gt;gbMsgTitle.Name" xml:space="preserve">
<value>gbMsgTitle</value> <value>gbMsgTitle</value>
@@ -348,32 +348,32 @@
<data name="&gt;&gt;ssMain.ZOrder" xml:space="preserve"> <data name="&gt;&gt;ssMain.ZOrder" xml:space="preserve">
<value>1</value> <value>1</value>
</data> </data>
<data name="&gt;&gt;$this.Name" xml:space="preserve"> <data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>MainMsgControl</value> <value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="txtMsgBox.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms"> <data name="&gt;&gt;menuMsgBoxSelectAll.Type" xml:space="preserve">
<value>Fill</value> <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;menuMsgBoxCopy.Name" xml:space="preserve"> <data name="&gt;&gt;menuMsgBoxCopy.Name" xml:space="preserve">
<value>menuMsgBoxCopy</value> <value>menuMsgBoxCopy</value>
</data> </data>
<data name="toolSslBlank4.Size" type="System.Drawing.Size, System.Drawing"> <data name="&gt;&gt;txtMsgBox.Type" xml:space="preserve">
<value>0, 17</value> <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;ssMain.Name" xml:space="preserve"> <data name="&gt;&gt;toolSslServerSpeed.Type" xml:space="preserve">
<value>ssMain</value> <value>System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="menuMsgBoxFilter.Text" xml:space="preserve"> <data name="menuMsgBoxCopy.Text" xml:space="preserve">
<value>Set message filters</value> <value>Copy (Ctrl+C)</value>
</data> </data>
<data name="cmsMsgBox.Size" type="System.Drawing.Size, System.Drawing"> <data name="cmsMsgBox.Size" type="System.Drawing.Size, System.Drawing">
<value>228, 136</value> <value>228, 136</value>
</data> </data>
<data name="toolSslServerSpeed.Size" type="System.Drawing.Size, System.Drawing"> <data name="&gt;&gt;menuMsgBoxCopyAll.Type" xml:space="preserve">
<value>250, 17</value> <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<metadata name="cmsMsgBox.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="ssMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value> <value>131, 18</value>
</metadata> </metadata>
<metadata name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>zh-Hans</value> <value>zh-Hans</value>
@@ -381,7 +381,7 @@
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
<metadata name="ssMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="cmsMsgBox.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>131, 18</value> <value>17, 17</value>
</metadata> </metadata>
</root> </root>

View File

@@ -117,25 +117,53 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<data name="gbMsgTitle.Text" xml:space="preserve"> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<value>信息</value> <data name="menuMsgBoxSelectAll.Size" type="System.Drawing.Size, System.Drawing">
</data> <value>221, 22</value>
<data name="menuMsgBoxAddRoutingRule.Text" xml:space="preserve">
<value>快速添加路由规则 (Ctrl+V)</value>
</data>
<data name="menuMsgBoxClear.Text" xml:space="preserve">
<value>清除所有</value>
</data>
<data name="menuMsgBoxCopy.Text" xml:space="preserve">
<value>复制 (Ctrl+C)</value>
</data>
<data name="menuMsgBoxCopyAll.Text" xml:space="preserve">
<value>复制所有</value>
</data>
<data name="menuMsgBoxFilter.Text" xml:space="preserve">
<value>设置信息过滤器</value>
</data> </data>
<data name="menuMsgBoxSelectAll.Text" xml:space="preserve"> <data name="menuMsgBoxSelectAll.Text" xml:space="preserve">
<value>全选 (Ctrl+A)</value> <value>全选 (Ctrl+A)</value>
</data> </data>
<data name="menuMsgBoxCopy.Size" type="System.Drawing.Size, System.Drawing">
<value>221, 22</value>
</data>
<data name="menuMsgBoxCopy.Text" xml:space="preserve">
<value>复制 (Ctrl+C)</value>
</data>
<data name="menuMsgBoxCopyAll.Size" type="System.Drawing.Size, System.Drawing">
<value>221, 22</value>
</data>
<data name="menuMsgBoxCopyAll.Text" xml:space="preserve">
<value>复制所有</value>
</data>
<data name="menuMsgBoxClear.Size" type="System.Drawing.Size, System.Drawing">
<value>221, 22</value>
</data>
<data name="menuMsgBoxClear.Text" xml:space="preserve">
<value>清除所有</value>
</data>
<data name="menuMsgBoxAddRoutingRule.Size" type="System.Drawing.Size, System.Drawing">
<value>221, 22</value>
</data>
<data name="menuMsgBoxAddRoutingRule.Text" xml:space="preserve">
<value>快速添加路由规则 (Ctrl+V)</value>
</data>
<data name="menuMsgBoxFilter.Size" type="System.Drawing.Size, System.Drawing">
<value>221, 22</value>
</data>
<data name="menuMsgBoxFilter.Text" xml:space="preserve">
<value>设置信息过滤器</value>
</data>
<data name="cmsMsgBox.Size" type="System.Drawing.Size, System.Drawing">
<value>222, 136</value>
</data>
<data name="toolSslBlank1.Size" type="System.Drawing.Size, System.Drawing">
<value>157, 17</value>
</data>
<data name="toolSslBlank2.Size" type="System.Drawing.Size, System.Drawing">
<value>157, 17</value>
</data>
<data name="gbMsgTitle.Text" xml:space="preserve">
<value>信息</value>
</data>
</root> </root>

View File

@@ -68,6 +68,8 @@
this.txtKcpmtu = new System.Windows.Forms.TextBox(); this.txtKcpmtu = new System.Windows.Forms.TextBox();
this.label6 = new System.Windows.Forms.Label(); this.label6 = new System.Windows.Forms.Label();
this.tabPage7 = new System.Windows.Forms.TabPage(); this.tabPage7 = new System.Windows.Forms.TabPage();
this.txtautoUpdateSubInterval = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.chkEnableSecurityProtocolTls13 = new System.Windows.Forms.CheckBox(); this.chkEnableSecurityProtocolTls13 = new System.Windows.Forms.CheckBox();
this.chkEnableAutoAdjustMainLvColWidth = new System.Windows.Forms.CheckBox(); this.chkEnableAutoAdjustMainLvColWidth = new System.Windows.Forms.CheckBox();
this.btnSetLoopback = new System.Windows.Forms.Button(); this.btnSetLoopback = new System.Windows.Forms.Button();
@@ -374,6 +376,8 @@
// tabPage7 // tabPage7
// //
resources.ApplyResources(this.tabPage7, "tabPage7"); resources.ApplyResources(this.tabPage7, "tabPage7");
this.tabPage7.Controls.Add(this.txtautoUpdateSubInterval);
this.tabPage7.Controls.Add(this.label3);
this.tabPage7.Controls.Add(this.chkEnableSecurityProtocolTls13); this.tabPage7.Controls.Add(this.chkEnableSecurityProtocolTls13);
this.tabPage7.Controls.Add(this.chkEnableAutoAdjustMainLvColWidth); this.tabPage7.Controls.Add(this.chkEnableAutoAdjustMainLvColWidth);
this.tabPage7.Controls.Add(this.btnSetLoopback); this.tabPage7.Controls.Add(this.btnSetLoopback);
@@ -388,6 +392,16 @@
this.tabPage7.Name = "tabPage7"; this.tabPage7.Name = "tabPage7";
this.tabPage7.UseVisualStyleBackColor = true; this.tabPage7.UseVisualStyleBackColor = true;
// //
// txtautoUpdateSubInterval
//
resources.ApplyResources(this.txtautoUpdateSubInterval, "txtautoUpdateSubInterval");
this.txtautoUpdateSubInterval.Name = "txtautoUpdateSubInterval";
//
// label3
//
resources.ApplyResources(this.label3, "label3");
this.label3.Name = "label3";
//
// chkEnableSecurityProtocolTls13 // chkEnableSecurityProtocolTls13
// //
resources.ApplyResources(this.chkEnableSecurityProtocolTls13, "chkEnableSecurityProtocolTls13"); resources.ApplyResources(this.chkEnableSecurityProtocolTls13, "chkEnableSecurityProtocolTls13");
@@ -697,5 +711,7 @@
private System.Windows.Forms.Label label4; private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox txtpass; private System.Windows.Forms.TextBox txtpass;
private System.Windows.Forms.TextBox txtuser; private System.Windows.Forms.TextBox txtuser;
private System.Windows.Forms.TextBox txtautoUpdateSubInterval;
private System.Windows.Forms.Label label3;
} }
} }

View File

@@ -112,6 +112,7 @@ namespace v2rayN.Forms
chkIgnoreGeoUpdateCore.Checked = config.ignoreGeoUpdateCore; chkIgnoreGeoUpdateCore.Checked = config.ignoreGeoUpdateCore;
txtautoUpdateInterval.Text = config.autoUpdateInterval.ToString(); txtautoUpdateInterval.Text = config.autoUpdateInterval.ToString();
txtautoUpdateSubInterval.Text = config.autoUpdateSubInterval.ToString();
chkEnableAutoAdjustMainLvColWidth.Checked = config.uiItem.enableAutoAdjustMainLvColWidth; chkEnableAutoAdjustMainLvColWidth.Checked = config.uiItem.enableAutoAdjustMainLvColWidth;
chkEnableSecurityProtocolTls13.Checked = config.enableSecurityProtocolTls13; chkEnableSecurityProtocolTls13.Checked = config.enableSecurityProtocolTls13;
} }
@@ -305,6 +306,7 @@ namespace v2rayN.Forms
config.ignoreGeoUpdateCore = chkIgnoreGeoUpdateCore.Checked; config.ignoreGeoUpdateCore = chkIgnoreGeoUpdateCore.Checked;
config.autoUpdateInterval = Utils.ToInt(txtautoUpdateInterval.Text); config.autoUpdateInterval = Utils.ToInt(txtautoUpdateInterval.Text);
config.autoUpdateSubInterval = Utils.ToInt(txtautoUpdateSubInterval.Text);
config.uiItem.enableAutoAdjustMainLvColWidth = chkEnableAutoAdjustMainLvColWidth.Checked; config.uiItem.enableAutoAdjustMainLvColWidth = chkEnableAutoAdjustMainLvColWidth.Checked;
config.enableSecurityProtocolTls13 = chkEnableSecurityProtocolTls13.Checked; config.enableSecurityProtocolTls13 = chkEnableSecurityProtocolTls13.Checked;

File diff suppressed because it is too large Load Diff

View File

@@ -250,6 +250,15 @@
<data name="tabPage7.Text" xml:space="preserve"> <data name="tabPage7.Text" xml:space="preserve">
<value> v2rayN设置 </value> <value> v2rayN设置 </value>
</data> </data>
<data name="txtautoUpdateSubInterval.Location" type="System.Drawing.Point, System.Drawing">
<value>248, 159</value>
</data>
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
<value>173, 12</value>
</data>
<data name="label3.Text" xml:space="preserve">
<value>自动更新订阅的间隔(单位小时)</value>
</data>
<data name="chkEnableSecurityProtocolTls13.Text" xml:space="preserve"> <data name="chkEnableSecurityProtocolTls13.Text" xml:space="preserve">
<value>启用安全协议TLS v1.3 (订阅/检查更新/测速)</value> <value>启用安全协议TLS v1.3 (订阅/检查更新/测速)</value>
</data> </data>
@@ -263,13 +272,13 @@
<value>解除Windows10 UWP应用回环代理限制</value> <value>解除Windows10 UWP应用回环代理限制</value>
</data> </data>
<data name="txtautoUpdateInterval.Location" type="System.Drawing.Point, System.Drawing"> <data name="txtautoUpdateInterval.Location" type="System.Drawing.Point, System.Drawing">
<value>274, 134</value> <value>248, 134</value>
</data> </data>
<data name="label15.Size" type="System.Drawing.Size, System.Drawing"> <data name="label15.Size" type="System.Drawing.Size, System.Drawing">
<value>227, 12</value> <value>191, 12</value>
</data> </data>
<data name="label15.Text" xml:space="preserve"> <data name="label15.Text" xml:space="preserve">
<value>自动更新订阅和Geo文件的间隔(单位小时)</value> <value>自动更新Geo文件的间隔(单位小时)</value>
</data> </data>
<data name="chkIgnoreGeoUpdateCore.Size" type="System.Drawing.Size, System.Drawing"> <data name="chkIgnoreGeoUpdateCore.Size" type="System.Drawing.Size, System.Drawing">
<value>150, 16</value> <value>150, 16</value>

View File

@@ -17,6 +17,7 @@ namespace v2rayN
public const string clashCoreUrl = "https://github.com/Dreamacro/clash/releases"; public const string clashCoreUrl = "https://github.com/Dreamacro/clash/releases";
public const string clashMetaCoreUrl = "https://github.com/MetaCubeX/Clash.Meta/releases"; public const string clashMetaCoreUrl = "https://github.com/MetaCubeX/Clash.Meta/releases";
public const string hysteriaCoreUrl = "https://github.com/HyNetwork/hysteria/releases"; public const string hysteriaCoreUrl = "https://github.com/HyNetwork/hysteria/releases";
public const string naiveproxyCoreUrl = "https://github.com/klzgrad/naiveproxy/releases";
@@ -65,9 +66,10 @@ namespace v2rayN
/// </summary> /// </summary>
public const string v2raySampleHttpresponseFileName = "v2rayN.Sample.SampleHttpresponse.txt"; public const string v2raySampleHttpresponseFileName = "v2rayN.Sample.SampleHttpresponse.txt";
public const string CustomRoutingFileName = "v2rayN.Sample.custom_routing_"; public const string CustomRoutingFileName = "v2rayN.Sample.custom_routing_";
public const string v2raySampleInbound = "v2rayN.Sample.SampleInbound.txt";
/// <summary> /// <summary>
/// 默认加密方式 /// 默认加密方式
@@ -112,6 +114,7 @@ namespace v2rayN
public const string InboundSocks = "socks"; public const string InboundSocks = "socks";
public const string InboundHttp = "http"; public const string InboundHttp = "http";
public const string InboundSocks2 = "socks2";
public const string InboundHttp2 = "http2"; public const string InboundHttp2 = "http2";
public const string Loopback = "127.0.0.1"; public const string Loopback = "127.0.0.1";
public const string InboundAPITagName = "api"; public const string InboundAPITagName = "api";

View File

@@ -172,7 +172,7 @@ namespace v2rayN.Handler
{ {
if (webProxy == null) if (webProxy == null)
{ {
var httpPort = LazyConfig.Instance.GetConfig().GetLocalPort(Global.InboundHttp2); var httpPort = LazyConfig.Instance.GetConfig().GetLocalPort(Global.InboundHttp);
webProxy = new WebProxy(Global.Loopback, httpPort); webProxy = new WebProxy(Global.Loopback, httpPort);
} }
@@ -233,7 +233,7 @@ namespace v2rayN.Handler
{ {
return null; return null;
} }
var httpPort = LazyConfig.Instance.GetConfig().GetLocalPort(Global.InboundHttp2); var httpPort = LazyConfig.Instance.GetConfig().GetLocalPort(Global.InboundHttp);
var webProxy = new WebProxy(Global.Loopback, httpPort); var webProxy = new WebProxy(Global.Loopback, httpPort);
if (RunAvailabilityCheck(webProxy) > 0) if (RunAvailabilityCheck(webProxy) > 0)
{ {

View File

@@ -87,7 +87,7 @@ namespace v2rayN.Handler
coreInfos.Add(new CoreInfo coreInfos.Add(new CoreInfo
{ {
coreType = ECoreType.clash, coreType = ECoreType.clash,
coreExes = new List<string> { "clash-windows-amd64", "clash-windows-386", "clash" }, coreExes = new List<string> { "clash-windows-amd64-v3", "clash-windows-amd64", "clash-windows-386", "clash" },
arguments = "-f config.json", arguments = "-f config.json",
coreUrl = Global.clashCoreUrl coreUrl = Global.clashCoreUrl
}); });
@@ -96,9 +96,8 @@ namespace v2rayN.Handler
{ {
coreType = ECoreType.clash_meta, coreType = ECoreType.clash_meta,
coreExes = new List<string> { "Clash.Meta-windows-amd64v1", "Clash.Meta-windows-amd64", "Clash.Meta-windows-386", "Clash.Meta", "clash" }, coreExes = new List<string> { "Clash.Meta-windows-amd64v1", "Clash.Meta-windows-amd64", "Clash.Meta-windows-386", "Clash.Meta", "clash" },
arguments = "-f config.yaml", arguments = "-f config.json",
coreUrl = Global.clashMetaCoreUrl, coreUrl = Global.clashMetaCoreUrl
match = "Clash Meta"
}); });
coreInfos.Add(new CoreInfo coreInfos.Add(new CoreInfo
@@ -108,6 +107,14 @@ namespace v2rayN.Handler
arguments = "", arguments = "",
coreUrl = Global.hysteriaCoreUrl coreUrl = Global.hysteriaCoreUrl
}); });
coreInfos.Add(new CoreInfo
{
coreType = ECoreType.naiveproxy,
coreExes = new List<string> { "naiveproxy", "naive" },
arguments = "config.json",
coreUrl = Global.naiveproxyCoreUrl
});
} }
} }

View File

@@ -208,25 +208,36 @@ namespace v2rayN.Handler
private void UpdateTaskRun(Config config, Action<bool, string> update) private void UpdateTaskRun(Config config, Action<bool, string> update)
{ {
var autoUpdateSubTime = DateTime.Now;
var autoUpdateGeoTime = DateTime.Now;
Thread.Sleep(60000);
Utils.SaveLog("UpdateTaskRun");
var updateHandle = new UpdateHandle(); var updateHandle = new UpdateHandle();
while (true) while (true)
{ {
Thread.Sleep(60000); var dtNow = DateTime.Now;
if (config.autoUpdateInterval <= 0)
{
continue;
}
Utils.SaveLog("UpdateTaskRun");
if (config.autoUpdateSubInterval > 0)
{
if ((dtNow - autoUpdateSubTime).Hours % config.autoUpdateSubInterval == 0)
{
updateHandle.UpdateSubscriptionProcess(config, true, (bool success, string msg) => updateHandle.UpdateSubscriptionProcess(config, true, (bool success, string msg) =>
{ {
update(success, msg); update(success, msg);
if (success) if (success)
Utils.SaveLog("subscription" + msg); Utils.SaveLog("subscription" + msg);
}); });
autoUpdateSubTime = dtNow;
}
Thread.Sleep(60000); Thread.Sleep(60000);
}
if (config.autoUpdateInterval > 0)
{
if ((dtNow - autoUpdateGeoTime).Hours % config.autoUpdateInterval == 0)
{
updateHandle.UpdateGeoFile("geosite", config, (bool success, string msg) => updateHandle.UpdateGeoFile("geosite", config, (bool success, string msg) =>
{ {
update(false, msg); update(false, msg);
@@ -240,8 +251,11 @@ namespace v2rayN.Handler
if (success) if (success)
Utils.SaveLog("geoip" + msg); Utils.SaveLog("geoip" + msg);
}); });
autoUpdateGeoTime = dtNow;
}
}
Thread.Sleep(1000 * 3600 * config.autoUpdateInterval); Thread.Sleep(1000 * 3600);
} }
} }

View File

@@ -59,7 +59,7 @@ namespace v2rayN.Handler
try try
{ {
int port = config.GetLocalPort(Global.InboundHttp2); int port = config.GetLocalPort(Global.InboundHttp);
if (port <= 0) if (port <= 0)
{ {
return false; return false;

View File

@@ -146,48 +146,35 @@ namespace v2rayN.Handler
{ {
try try
{ {
Inbounds inbound = v2rayConfig.inbounds[0]; v2rayConfig.inbounds = new List<Inbounds>();
inbound.tag = Global.InboundSocks;
inbound.port = config.inbound[0].localPort; Inbounds inbound = GetInbound(config.inbound[0], Global.InboundSocks, 0, true);
inbound.protocol = config.inbound[0].protocol; v2rayConfig.inbounds.Add(inbound);
if (config.inbound[0].allowLANConn)
{
inbound.listen = "0.0.0.0";
}
else
{
inbound.listen = Global.Loopback;
}
//udp
inbound.settings.udp = config.inbound[0].udpEnabled;
inbound.sniffing.enabled = config.inbound[0].sniffingEnabled;
//http //http
Inbounds inbound2 = v2rayConfig.inbounds[1]; Inbounds inbound2 = GetInbound(config.inbound[0], Global.InboundHttp, 1, false);
inbound2.tag = Global.InboundHttp; v2rayConfig.inbounds.Add(inbound2);
inbound2.port = config.GetLocalPort(Global.InboundHttp);
inbound2.protocol = Global.InboundHttp; if (config.inbound[0].allowLANConn)
inbound2.listen = inbound.listen; {
inbound2.settings.allowTransparent = false; Inbounds inbound3 = GetInbound(config.inbound[0], Global.InboundSocks2, 2, true);
inbound2.sniffing.enabled = inbound.sniffing.enabled; v2rayConfig.inbounds.Add(inbound3);
Inbounds inbound4 = GetInbound(config.inbound[0], Global.InboundHttp2, 3, false);
v2rayConfig.inbounds.Add(inbound4);
//auth //auth
if (!Utils.IsNullOrEmpty(config.inbound[0].user) && !Utils.IsNullOrEmpty(config.inbound[0].pass)) if (!Utils.IsNullOrEmpty(config.inbound[0].user) && !Utils.IsNullOrEmpty(config.inbound[0].pass))
{ {
inbound.settings.auth = "password"; inbound3.listen = "0.0.0.0";
inbound.settings.accounts = new List<AccountsItem> { new AccountsItem() { user = config.inbound[0].user, pass = config.inbound[0].pass } }; inbound3.settings.auth = "password";
inbound2.settings.auth = "password"; inbound3.settings.accounts = new List<AccountsItem> { new AccountsItem() { user = config.inbound[0].user, pass = config.inbound[0].pass } };
inbound2.settings.accounts = new List<AccountsItem> { new AccountsItem() { user = config.inbound[0].user, pass = config.inbound[0].pass } };
}
//http Loopback inbound4.listen = "0.0.0.0";
Inbounds inbound3 = v2rayConfig.inbounds[2]; inbound4.settings.auth = "password";
inbound3.tag = Global.InboundHttp2; inbound4.settings.accounts = new List<AccountsItem> { new AccountsItem() { user = config.inbound[0].user, pass = config.inbound[0].pass } };
inbound3.port = config.GetLocalPort(Global.InboundHttp2); }
inbound3.protocol = Global.InboundHttp; }
inbound3.listen = Global.Loopback;
inbound3.settings.allowTransparent = false;
inbound3.sniffing.enabled = inbound.sniffing.enabled;
} }
catch catch
{ {
@@ -195,6 +182,28 @@ namespace v2rayN.Handler
return 0; return 0;
} }
private static Inbounds GetInbound(InItem inItem, string tag, int offset, bool bSocks)
{
string result = Utils.GetEmbedText(Global.v2raySampleInbound);
if (Utils.IsNullOrEmpty(result))
{
return null;
}
var inbound = Utils.FromJson<Inbounds>(result);
if (inbound == null)
{
return null;
}
inbound.tag = tag;
inbound.port = inItem.localPort + offset;
inbound.protocol = bSocks ? Global.InboundSocks : Global.InboundHttp;
inbound.settings.udp = inItem.udpEnabled;
inbound.sniffing.enabled = inItem.sniffingEnabled;
return inbound;
}
/// <summary> /// <summary>
/// 路由 /// 路由
/// </summary> /// </summary>
@@ -958,7 +967,7 @@ namespace v2rayN.Handler
break; break;
case ECoreType.clash: case ECoreType.clash:
case ECoreType.clash_meta: case ECoreType.clash_meta:
fileContent.Add($"port: {LazyConfig.Instance.GetConfig().GetLocalPort(Global.InboundHttp2)}"); fileContent.Add($"port: {LazyConfig.Instance.GetConfig().GetLocalPort(Global.InboundHttp)}");
fileContent.Add($"socks-port: {LazyConfig.Instance.GetConfig().GetLocalPort(Global.InboundSocks)}"); fileContent.Add($"socks-port: {LazyConfig.Instance.GetConfig().GetLocalPort(Global.InboundSocks)}");
break; break;
} }

View File

@@ -125,10 +125,9 @@ namespace v2rayN.Mode
get; set; get; set;
} }
public int autoUpdateInterval public int autoUpdateInterval { get; set; } = 0;
{
get; set; public int autoUpdateSubInterval { get; set; } = 0;
} = 0;
public bool enableSecurityProtocolTls13 public bool enableSecurityProtocolTls13
{ {
@@ -208,27 +207,27 @@ namespace v2rayN.Mode
public int GetLocalPort(string protocol) public int GetLocalPort(string protocol)
{ {
if (protocol == Global.InboundHttp) int localPort = inbound.FirstOrDefault(t => t.protocol == Global.InboundSocks).localPort;
if (protocol == Global.InboundSocks)
{ {
return GetLocalPort(Global.InboundSocks) + 1; return localPort;
}
else if (protocol == Global.InboundHttp)
{
return localPort + 1;
}
else if (protocol == Global.InboundSocks2)
{
return localPort + 2;
} }
else if (protocol == Global.InboundHttp2) else if (protocol == Global.InboundHttp2)
{ {
return GetLocalPort(Global.InboundSocks) + 2; return localPort + 3;
} }
else if (protocol == "speedtest") else if (protocol == "speedtest")
{ {
return GetLocalPort(Global.InboundSocks) + 103; return localPort + 103;
}
int localPort = 0;
foreach (InItem inItem in inbound)
{
if (inItem.protocol.Equals(protocol))
{
localPort = inItem.localPort;
break;
}
} }
return localPort; return localPort;
} }

View File

@@ -8,6 +8,7 @@ namespace v2rayN.Mode
clash = 11, clash = 11,
clash_meta = 12, clash_meta = 12,
hysteria = 21, hysteria = 21,
naiveproxy = 22,
v2rayN = 99 v2rayN = 99
} }
} }

View File

@@ -32,4 +32,4 @@ using System.Runtime.InteropServices;
// 方法是按如下所示使用“*”: // 方法是按如下所示使用“*”:
//[assembly: AssemblyVersion("1.0.*")] //[assembly: AssemblyVersion("1.0.*")]
//[assembly: AssemblyVersion("1.0.0")] //[assembly: AssemblyVersion("1.0.0")]
[assembly: AssemblyFileVersion("5.15")] [assembly: AssemblyFileVersion("5.16")]

View File

@@ -321,6 +321,24 @@ namespace v2rayN.Resx {
} }
} }
/// <summary>
/// 查找类似 LAN 的本地化字符串。
/// </summary>
internal static string LabLAN {
get {
return ResourceManager.GetString("LabLAN", resourceCulture);
}
}
/// <summary>
/// 查找类似 Local 的本地化字符串。
/// </summary>
internal static string LabLocal {
get {
return ResourceManager.GetString("LabLocal", resourceCulture);
}
}
/// <summary> /// <summary>
/// 查找类似 Address 的本地化字符串。 /// 查找类似 Address 的本地化字符串。
/// </summary> /// </summary>

View File

@@ -463,4 +463,10 @@
<data name="TooManyServersTip" xml:space="preserve"> <data name="TooManyServersTip" xml:space="preserve">
<value>Too many servers, please open the main interface</value> <value>Too many servers, please open the main interface</value>
</data> </data>
<data name="LabLAN" xml:space="preserve">
<value>LAN</value>
</data>
<data name="LabLocal" xml:space="preserve">
<value>Local</value>
</data>
</root> </root>

View File

@@ -463,4 +463,10 @@
<data name="TooManyServersTip" xml:space="preserve"> <data name="TooManyServersTip" xml:space="preserve">
<value>服务器太多,请打开主界面操作</value> <value>服务器太多,请打开主界面操作</value>
</data> </data>
<data name="LabLAN" xml:space="preserve">
<value>局域网</value>
</data>
<data name="LabLocal" xml:space="preserve">
<value>本地</value>
</data>
</root> </root>

View File

@@ -0,0 +1,18 @@
{
"tag": "tag1",
"port": 10808,
"protocol": "socks",
"listen": "127.0.0.1",
"settings": {
"auth": "noauth",
"udp": true,
"allowTransparent": false
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
}

View File

@@ -474,6 +474,7 @@
<None Include="Resources\minimize.png" /> <None Include="Resources\minimize.png" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<EmbeddedResource Include="Sample\SampleInbound.txt" />
<None Include="Resources\share.png" /> <None Include="Resources\share.png" />
<None Include="Resources\promotion.png" /> <None Include="Resources\promotion.png" />
<None Include="Resources\sub.png" /> <None Include="Resources\sub.png" />