diff --git a/v2rayN/v2rayN/Forms/OptionSettingForm.Designer.cs b/v2rayN/v2rayN/Forms/OptionSettingForm.Designer.cs index d2968958..735e8f21 100644 --- a/v2rayN/v2rayN/Forms/OptionSettingForm.Designer.cs +++ b/v2rayN/v2rayN/Forms/OptionSettingForm.Designer.cs @@ -103,6 +103,22 @@ this.label13 = new System.Windows.Forms.Label(); this.label12 = new System.Windows.Forms.Label(); this.txtsystemProxyExceptions = new System.Windows.Forms.TextBox(); + this.tabPage4 = new System.Windows.Forms.TabPage(); + this.portForwardingNetworkLabel = new System.Windows.Forms.Label(); + this.portForwardingNetworkComboBox = new System.Windows.Forms.ComboBox(); + this.portForwardingDstPortLabel = new System.Windows.Forms.Label(); + this.portForwardingDstPortTextBox = new System.Windows.Forms.TextBox(); + this.portForwardingDstHostLabel = new System.Windows.Forms.Label(); + this.portForwardingLocalPortLabel = new System.Windows.Forms.Label(); + this.portForwardingLocalIpLabel = new System.Windows.Forms.Label(); + this.portForwardingTagLabel = new System.Windows.Forms.Label(); + this.portForwardingRemoveButton = new System.Windows.Forms.Button(); + this.portForwardingAddButton = new System.Windows.Forms.Button(); + this.portForwardingDstHostTextBox = new System.Windows.Forms.TextBox(); + this.portForwardingLocalPortTextBox = new System.Windows.Forms.TextBox(); + this.portForwardingLocalIpTextBox = new System.Windows.Forms.TextBox(); + this.portForwardingTagTextBox = new System.Windows.Forms.TextBox(); + this.tsbPortForwardingCheckListBox = new System.Windows.Forms.CheckedListBox(); this.panel2 = new System.Windows.Forms.Panel(); this.btnOK = new System.Windows.Forms.Button(); this.panel1 = new System.Windows.Forms.Panel(); @@ -116,39 +132,40 @@ this.tabPageCoreType.SuspendLayout(); this.tabPage3.SuspendLayout(); this.groupBox2.SuspendLayout(); + this.tabPage4.SuspendLayout(); this.panel2.SuspendLayout(); this.SuspendLayout(); // // btnClose // - resources.ApplyResources(this.btnClose, "btnClose"); this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; + resources.ApplyResources(this.btnClose, "btnClose"); this.btnClose.Name = "btnClose"; this.btnClose.UseVisualStyleBackColor = true; this.btnClose.Click += new System.EventHandler(this.btnClose_Click); // // tabControl1 // - resources.ApplyResources(this.tabControl1, "tabControl1"); this.tabControl1.Controls.Add(this.tabPage1); this.tabControl1.Controls.Add(this.tabPage2); this.tabControl1.Controls.Add(this.tabPage6); this.tabControl1.Controls.Add(this.tabPage7); this.tabControl1.Controls.Add(this.tabPageCoreType); this.tabControl1.Controls.Add(this.tabPage3); + this.tabControl1.Controls.Add(this.tabPage4); + resources.ApplyResources(this.tabControl1, "tabControl1"); this.tabControl1.Name = "tabControl1"; this.tabControl1.SelectedIndex = 0; // // tabPage1 // - resources.ApplyResources(this.tabPage1, "tabPage1"); this.tabPage1.Controls.Add(this.groupBox1); + resources.ApplyResources(this.tabPage1, "tabPage1"); this.tabPage1.Name = "tabPage1"; this.tabPage1.UseVisualStyleBackColor = true; // // groupBox1 // - resources.ApplyResources(this.groupBox1, "groupBox1"); this.groupBox1.Controls.Add(this.label16); this.groupBox1.Controls.Add(this.label4); this.groupBox1.Controls.Add(this.txtpass); @@ -165,6 +182,7 @@ this.groupBox1.Controls.Add(this.label5); this.groupBox1.Controls.Add(this.txtlocalPort); this.groupBox1.Controls.Add(this.label2); + resources.ApplyResources(this.groupBox1, "groupBox1"); this.groupBox1.Name = "groupBox1"; this.groupBox1.TabStop = false; // @@ -214,8 +232,8 @@ // // cmbprotocol // - resources.ApplyResources(this.cmbprotocol, "cmbprotocol"); this.cmbprotocol.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + resources.ApplyResources(this.cmbprotocol, "cmbprotocol"); this.cmbprotocol.FormattingEnabled = true; this.cmbprotocol.Items.AddRange(new object[] { resources.GetString("cmbprotocol.Items"), @@ -241,7 +259,6 @@ // // cmbloglevel // - resources.ApplyResources(this.cmbloglevel, "cmbloglevel"); this.cmbloglevel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cmbloglevel.FormattingEnabled = true; this.cmbloglevel.Items.AddRange(new object[] { @@ -250,6 +267,7 @@ resources.GetString("cmbloglevel.Items2"), resources.GetString("cmbloglevel.Items3"), resources.GetString("cmbloglevel.Items4")}); + resources.ApplyResources(this.cmbloglevel, "cmbloglevel"); this.cmbloglevel.Name = "cmbloglevel"; // // label5 @@ -269,10 +287,10 @@ // // tabPage2 // - resources.ApplyResources(this.tabPage2, "tabPage2"); this.tabPage2.Controls.Add(this.linkDnsObjectDoc); this.tabPage2.Controls.Add(this.txtremoteDNS); this.tabPage2.Controls.Add(this.label14); + resources.ApplyResources(this.tabPage2, "tabPage2"); this.tabPage2.Name = "tabPage2"; this.tabPage2.UseVisualStyleBackColor = true; // @@ -295,7 +313,6 @@ // // tabPage6 // - resources.ApplyResources(this.tabPage6, "tabPage6"); this.tabPage6.Controls.Add(this.chkKcpcongestion); this.tabPage6.Controls.Add(this.txtKcpwriteBufferSize); this.tabPage6.Controls.Add(this.label10); @@ -309,6 +326,7 @@ this.tabPage6.Controls.Add(this.label7); this.tabPage6.Controls.Add(this.txtKcpmtu); this.tabPage6.Controls.Add(this.label6); + resources.ApplyResources(this.tabPage6, "tabPage6"); this.tabPage6.Name = "tabPage6"; this.tabPage6.UseVisualStyleBackColor = true; // @@ -380,7 +398,6 @@ // // tabPage7 // - resources.ApplyResources(this.tabPage7, "tabPage7"); this.tabPage7.Controls.Add(this.numStatisticsFreshRate); this.tabPage7.Controls.Add(this.txttrayMenuServersLimit); this.tabPage7.Controls.Add(this.label17); @@ -396,6 +413,7 @@ this.tabPage7.Controls.Add(this.lbFreshrate); this.tabPage7.Controls.Add(this.chkEnableStatistics); this.tabPage7.Controls.Add(this.chkAutoRun); + resources.ApplyResources(this.tabPage7, "tabPage7"); this.tabPage7.Name = "tabPage7"; this.tabPage7.UseVisualStyleBackColor = true; // @@ -484,7 +502,6 @@ // // tabPageCoreType // - resources.ApplyResources(this.tabPageCoreType, "tabPageCoreType"); this.tabPageCoreType.Controls.Add(this.cmbCoreType6); this.tabPageCoreType.Controls.Add(this.labCoreType6); this.tabPageCoreType.Controls.Add(this.cmbCoreType5); @@ -497,14 +514,15 @@ this.tabPageCoreType.Controls.Add(this.labCoreType2); this.tabPageCoreType.Controls.Add(this.cmbCoreType1); this.tabPageCoreType.Controls.Add(this.labCoreType1); + resources.ApplyResources(this.tabPageCoreType, "tabPageCoreType"); this.tabPageCoreType.Name = "tabPageCoreType"; this.tabPageCoreType.UseVisualStyleBackColor = true; // // cmbCoreType6 // - resources.ApplyResources(this.cmbCoreType6, "cmbCoreType6"); this.cmbCoreType6.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cmbCoreType6.FormattingEnabled = true; + resources.ApplyResources(this.cmbCoreType6, "cmbCoreType6"); this.cmbCoreType6.Name = "cmbCoreType6"; // // labCoreType6 @@ -514,9 +532,9 @@ // // cmbCoreType5 // - resources.ApplyResources(this.cmbCoreType5, "cmbCoreType5"); this.cmbCoreType5.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cmbCoreType5.FormattingEnabled = true; + resources.ApplyResources(this.cmbCoreType5, "cmbCoreType5"); this.cmbCoreType5.Name = "cmbCoreType5"; // // labCoreType5 @@ -526,9 +544,9 @@ // // cmbCoreType4 // - resources.ApplyResources(this.cmbCoreType4, "cmbCoreType4"); this.cmbCoreType4.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cmbCoreType4.FormattingEnabled = true; + resources.ApplyResources(this.cmbCoreType4, "cmbCoreType4"); this.cmbCoreType4.Name = "cmbCoreType4"; // // labCoreType4 @@ -538,9 +556,9 @@ // // cmbCoreType3 // - resources.ApplyResources(this.cmbCoreType3, "cmbCoreType3"); this.cmbCoreType3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cmbCoreType3.FormattingEnabled = true; + resources.ApplyResources(this.cmbCoreType3, "cmbCoreType3"); this.cmbCoreType3.Name = "cmbCoreType3"; // // labCoreType3 @@ -550,9 +568,9 @@ // // cmbCoreType2 // - resources.ApplyResources(this.cmbCoreType2, "cmbCoreType2"); this.cmbCoreType2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cmbCoreType2.FormattingEnabled = true; + resources.ApplyResources(this.cmbCoreType2, "cmbCoreType2"); this.cmbCoreType2.Name = "cmbCoreType2"; // // labCoreType2 @@ -562,9 +580,9 @@ // // cmbCoreType1 // - resources.ApplyResources(this.cmbCoreType1, "cmbCoreType1"); this.cmbCoreType1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cmbCoreType1.FormattingEnabled = true; + resources.ApplyResources(this.cmbCoreType1, "cmbCoreType1"); this.cmbCoreType1.Name = "cmbCoreType1"; // // labCoreType1 @@ -574,19 +592,19 @@ // // tabPage3 // - resources.ApplyResources(this.tabPage3, "tabPage3"); this.tabPage3.Controls.Add(this.groupBox2); + resources.ApplyResources(this.tabPage3, "tabPage3"); this.tabPage3.Name = "tabPage3"; this.tabPage3.UseVisualStyleBackColor = true; // // groupBox2 // - resources.ApplyResources(this.groupBox2, "groupBox2"); this.groupBox2.Controls.Add(this.label18); this.groupBox2.Controls.Add(this.cmbSystemProxyAdvancedProtocol); this.groupBox2.Controls.Add(this.label13); this.groupBox2.Controls.Add(this.label12); this.groupBox2.Controls.Add(this.txtsystemProxyExceptions); + resources.ApplyResources(this.groupBox2, "groupBox2"); this.groupBox2.Name = "groupBox2"; this.groupBox2.TabStop = false; // @@ -597,8 +615,8 @@ // // cmbSystemProxyAdvancedProtocol // - resources.ApplyResources(this.cmbSystemProxyAdvancedProtocol, "cmbSystemProxyAdvancedProtocol"); this.cmbSystemProxyAdvancedProtocol.FormattingEnabled = true; + resources.ApplyResources(this.cmbSystemProxyAdvancedProtocol, "cmbSystemProxyAdvancedProtocol"); this.cmbSystemProxyAdvancedProtocol.Name = "cmbSystemProxyAdvancedProtocol"; // // label13 @@ -616,11 +634,119 @@ resources.ApplyResources(this.txtsystemProxyExceptions, "txtsystemProxyExceptions"); this.txtsystemProxyExceptions.Name = "txtsystemProxyExceptions"; // + // tabPage4 + // + this.tabPage4.Controls.Add(this.portForwardingNetworkLabel); + this.tabPage4.Controls.Add(this.portForwardingNetworkComboBox); + this.tabPage4.Controls.Add(this.portForwardingDstPortLabel); + this.tabPage4.Controls.Add(this.portForwardingDstPortTextBox); + this.tabPage4.Controls.Add(this.portForwardingDstHostLabel); + this.tabPage4.Controls.Add(this.portForwardingLocalPortLabel); + this.tabPage4.Controls.Add(this.portForwardingLocalIpLabel); + this.tabPage4.Controls.Add(this.portForwardingTagLabel); + this.tabPage4.Controls.Add(this.portForwardingRemoveButton); + this.tabPage4.Controls.Add(this.portForwardingAddButton); + this.tabPage4.Controls.Add(this.portForwardingDstHostTextBox); + this.tabPage4.Controls.Add(this.portForwardingLocalPortTextBox); + this.tabPage4.Controls.Add(this.portForwardingLocalIpTextBox); + this.tabPage4.Controls.Add(this.portForwardingTagTextBox); + this.tabPage4.Controls.Add(this.tsbPortForwardingCheckListBox); + resources.ApplyResources(this.tabPage4, "tabPage4"); + this.tabPage4.Name = "tabPage4"; + this.tabPage4.UseVisualStyleBackColor = true; + // + // portForwardingNetworkLabel + // + resources.ApplyResources(this.portForwardingNetworkLabel, "portForwardingNetworkLabel"); + this.portForwardingNetworkLabel.Name = "portForwardingNetworkLabel"; + // + // portForwardingNetworkComboBox + // + this.portForwardingNetworkComboBox.FormattingEnabled = true; + this.portForwardingNetworkComboBox.Items.AddRange(new object[] { + resources.GetString("portForwardingNetworkComboBox.Items"), + resources.GetString("portForwardingNetworkComboBox.Items1"), + resources.GetString("portForwardingNetworkComboBox.Items2")}); + resources.ApplyResources(this.portForwardingNetworkComboBox, "portForwardingNetworkComboBox"); + this.portForwardingNetworkComboBox.Name = "portForwardingNetworkComboBox"; + // + // portForwardingDstPortLabel + // + resources.ApplyResources(this.portForwardingDstPortLabel, "portForwardingDstPortLabel"); + this.portForwardingDstPortLabel.Name = "portForwardingDstPortLabel"; + // + // portForwardingDstPortTextBox + // + resources.ApplyResources(this.portForwardingDstPortTextBox, "portForwardingDstPortTextBox"); + this.portForwardingDstPortTextBox.Name = "portForwardingDstPortTextBox"; + // + // portForwardingDstHostLabel + // + resources.ApplyResources(this.portForwardingDstHostLabel, "portForwardingDstHostLabel"); + this.portForwardingDstHostLabel.Name = "portForwardingDstHostLabel"; + // + // portForwardingLocalPortLabel + // + resources.ApplyResources(this.portForwardingLocalPortLabel, "portForwardingLocalPortLabel"); + this.portForwardingLocalPortLabel.Name = "portForwardingLocalPortLabel"; + // + // portForwardingLocalIpLabel + // + resources.ApplyResources(this.portForwardingLocalIpLabel, "portForwardingLocalIpLabel"); + this.portForwardingLocalIpLabel.Name = "portForwardingLocalIpLabel"; + // + // portForwardingTagLabel + // + resources.ApplyResources(this.portForwardingTagLabel, "portForwardingTagLabel"); + this.portForwardingTagLabel.Name = "portForwardingTagLabel"; + // + // portForwardingRemoveButton + // + resources.ApplyResources(this.portForwardingRemoveButton, "portForwardingRemoveButton"); + this.portForwardingRemoveButton.Name = "portForwardingRemoveButton"; + this.portForwardingRemoveButton.UseVisualStyleBackColor = true; + this.portForwardingRemoveButton.Click += new System.EventHandler(this.portForwardingRemoveButton_Click); + // + // portForwardingAddButton + // + resources.ApplyResources(this.portForwardingAddButton, "portForwardingAddButton"); + this.portForwardingAddButton.Name = "portForwardingAddButton"; + this.portForwardingAddButton.UseVisualStyleBackColor = true; + this.portForwardingAddButton.Click += new System.EventHandler(this.portForwardingAddButton_Click); + // + // portForwardingDstHostTextBox + // + resources.ApplyResources(this.portForwardingDstHostTextBox, "portForwardingDstHostTextBox"); + this.portForwardingDstHostTextBox.Name = "portForwardingDstHostTextBox"; + // + // portForwardingLocalPortTextBox + // + resources.ApplyResources(this.portForwardingLocalPortTextBox, "portForwardingLocalPortTextBox"); + this.portForwardingLocalPortTextBox.Name = "portForwardingLocalPortTextBox"; + // + // portForwardingLocalIpTextBox + // + resources.ApplyResources(this.portForwardingLocalIpTextBox, "portForwardingLocalIpTextBox"); + this.portForwardingLocalIpTextBox.Name = "portForwardingLocalIpTextBox"; + // + // portForwardingTagTextBox + // + resources.ApplyResources(this.portForwardingTagTextBox, "portForwardingTagTextBox"); + this.portForwardingTagTextBox.Name = "portForwardingTagTextBox"; + // + // tsbPortForwardingCheckListBox + // + this.tsbPortForwardingCheckListBox.FormattingEnabled = true; + resources.ApplyResources(this.tsbPortForwardingCheckListBox, "tsbPortForwardingCheckListBox"); + this.tsbPortForwardingCheckListBox.Name = "tsbPortForwardingCheckListBox"; + this.tsbPortForwardingCheckListBox.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(this.tsbPortForwardingCheckListBox_ItemChecked); + this.tsbPortForwardingCheckListBox.SelectedIndexChanged += new System.EventHandler(this.tsbPortForwardingCheckListBox_SelectedIndexChanged); + // // panel2 // - resources.ApplyResources(this.panel2, "panel2"); this.panel2.Controls.Add(this.btnClose); this.panel2.Controls.Add(this.btnOK); + resources.ApplyResources(this.panel2, "panel2"); this.panel2.Name = "panel2"; // // btnOK @@ -662,6 +788,8 @@ this.tabPage3.ResumeLayout(false); this.groupBox2.ResumeLayout(false); this.groupBox2.PerformLayout(); + this.tabPage4.ResumeLayout(false); + this.tabPage4.PerformLayout(); this.panel2.ResumeLayout(false); this.ResumeLayout(false); @@ -746,5 +874,21 @@ private System.Windows.Forms.ComboBox cmbSystemProxyAdvancedProtocol; private System.Windows.Forms.Label label18; private System.Windows.Forms.NumericUpDown numStatisticsFreshRate; + private System.Windows.Forms.TabPage tabPage4; + private System.Windows.Forms.CheckedListBox tsbPortForwardingCheckListBox; + private System.Windows.Forms.TextBox portForwardingDstHostTextBox; + private System.Windows.Forms.TextBox portForwardingLocalPortTextBox; + private System.Windows.Forms.TextBox portForwardingLocalIpTextBox; + private System.Windows.Forms.TextBox portForwardingTagTextBox; + private System.Windows.Forms.Label portForwardingTagLabel; + private System.Windows.Forms.Button portForwardingRemoveButton; + private System.Windows.Forms.Button portForwardingAddButton; + private System.Windows.Forms.Label portForwardingDstPortLabel; + private System.Windows.Forms.TextBox portForwardingDstPortTextBox; + private System.Windows.Forms.Label portForwardingDstHostLabel; + private System.Windows.Forms.Label portForwardingLocalPortLabel; + private System.Windows.Forms.Label portForwardingLocalIpLabel; + private System.Windows.Forms.Label portForwardingNetworkLabel; + private System.Windows.Forms.ComboBox portForwardingNetworkComboBox; } } \ No newline at end of file diff --git a/v2rayN/v2rayN/Forms/OptionSettingForm.cs b/v2rayN/v2rayN/Forms/OptionSettingForm.cs index 5d065166..07014e03 100644 --- a/v2rayN/v2rayN/Forms/OptionSettingForm.cs +++ b/v2rayN/v2rayN/Forms/OptionSettingForm.cs @@ -27,6 +27,10 @@ namespace v2rayN.Forms InitGUI(); InitCoreType(); + + InitPortForwardingCheckListBox(); + + InitPortForwardingParamGUI(0); } /// @@ -327,5 +331,92 @@ namespace v2rayN.Forms Process.Start(Utils.GetPath("EnableLoopback.exe")); } + private void InitPortForwardingCheckListBox() + { + for (int i = 0; i < config.portForwarding.Count; i++) + { + tsbPortForwardingCheckListBox.Items.Add(config.portForwarding[i].tag); + tsbPortForwardingCheckListBox.SetItemChecked(i, Boolean.Equals(config.portForwarding[i].enable, true)); + } + } + + private void InitPortForwardingParamGUI(int index) + { + if (index >= 0 && index < config.portForwarding.Count) + { + var item = config.portForwarding[index]; + portForwardingTagTextBox.Text = item.tag; + portForwardingLocalIpTextBox.Text = item.localIp; + portForwardingLocalPortTextBox.Text = item.localPort.ToString(); + portForwardingDstHostTextBox.Text = item.dstHost; + portForwardingDstPortTextBox.Text = item.dstPort.ToString(); + portForwardingNetworkComboBox.Text = item.network; + } + } + + private void SyncPortForwardingConfig(int index) + { + var item = new PortForwardingItem() + { + tag = portForwardingTagTextBox.Text, + localIp = portForwardingLocalIpTextBox.Text, + localPort = Convert.ToInt32(portForwardingLocalPortTextBox.Text), + dstHost = portForwardingDstHostTextBox.Text, + dstPort = Convert.ToInt32(portForwardingDstPortTextBox.Text), + network = portForwardingNetworkComboBox.Text, + enable = tsbPortForwardingCheckListBox.GetItemChecked(index), + }; + if (index >= 0 && index < config.portForwarding.Count) + { + config.portForwarding[index] = item; + } else + { + config.portForwarding.Add(item); + } + } + + private void portForwardingAddButton_Click(object sender, EventArgs e) + { + if (String.IsNullOrEmpty(portForwardingTagTextBox.Text)) + { + return; + } + var index = tsbPortForwardingCheckListBox.Items.IndexOf(portForwardingTagTextBox.Text); + if (index == -1) + { + tsbPortForwardingCheckListBox.Items.Add(portForwardingTagTextBox.Text); + SyncPortForwardingConfig(tsbPortForwardingCheckListBox.Items.Count - 1); + tsbPortForwardingCheckListBox.SetItemChecked(tsbPortForwardingCheckListBox.Items.Count - 1, true); + tsbPortForwardingCheckListBox.SelectedIndex = tsbPortForwardingCheckListBox.Items.Count - 1; + } + else if (index != -1 && tsbPortForwardingCheckListBox.SelectedIndex == index) + { + SyncPortForwardingConfig(index); + } + else if (index != -1 && tsbPortForwardingCheckListBox.SelectedIndex != index) + { + tsbPortForwardingCheckListBox.SelectedIndex = index; + } + } + + private void portForwardingRemoveButton_Click(object sender, EventArgs e) + { + if (tsbPortForwardingCheckListBox.SelectedIndex > -1) + { + config.portForwarding.RemoveAt(tsbPortForwardingCheckListBox.SelectedIndex); + tsbPortForwardingCheckListBox.Items.RemoveAt(tsbPortForwardingCheckListBox.SelectedIndex); + tsbPortForwardingCheckListBox.SelectedIndex = tsbPortForwardingCheckListBox.Items.Count > 0 ? 0 : -1; + } + } + + private void tsbPortForwardingCheckListBox_ItemChecked(object sender, ItemCheckEventArgs e) + { + config.portForwarding[e.Index].enable = e.NewValue == CheckState.Checked ? true : false; + } + + private void tsbPortForwardingCheckListBox_SelectedIndexChanged(object sender, EventArgs e) + { + InitPortForwardingParamGUI(tsbPortForwardingCheckListBox.SelectedIndex); + } } } diff --git a/v2rayN/v2rayN/Forms/OptionSettingForm.resx b/v2rayN/v2rayN/Forms/OptionSettingForm.resx index d4682ccc..3b2a2adf 100644 --- a/v2rayN/v2rayN/Forms/OptionSettingForm.resx +++ b/v2rayN/v2rayN/Forms/OptionSettingForm.resx @@ -117,839 +117,491 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - tabPage6 - - - 351, 211 - - - groupBox1 - - - - 6 - - - Listening port - - - 8 - - - 317, 12 - - - panel2 - - - tabPage7 - - - tabPage7 - 355, 16 - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 97, 21 - - - error - - - 15, 129 - - - readBufferSize - - - - NoControl - - - chkudpEnabled - - - 45 - - - txtpass - - - 282, 23 - - - info - - - downlinkCapacity - - - mtu - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 1 - - - labCoreType4 - - - 506, 16 - - - 41 - - - 36 - - - 143, 20 - - - 10 - - - 120, 21 - - - True - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Log level - - - groupBox1 - - - panel1 - - - tabPage6 - - - 11 - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 35 - - - 6 - - - 45, 150 - - - Enable UDP - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 15, 131 - - - tabPage7 - - - 8, 41 - - - 45, 46 - - - 94, 21 - - - 390, 16 - - - groupBox1 - - - 2 - - - tabPage7 - - - 285, 25 - - - 15, 16 - - - 179, 12 - - - 97, 21 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Statistics freshrate (second) - - - warning - - - 0 - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox1 - - - Keep older when deduplication - - - txtlocalPort - - - 84, 16 - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage6 - - - True - - - 15 - - - groupBox2 - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 193, 162 - - - 342, 17 - - - 95, 12 - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 27, 188 - - - 8 - - - tabPage7 - - - 236, 66 - - - 1 - - - groupBox1 - - - 13 - - - 2 - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 15, 39 - - - 124, 25 - - - True - - - 11 - - - 0 - - - 9 - - - protocol - - - True - - - tabPage6 - - - 3, 3, 3, 3 - - - True - - - chkEnableStatistics - - - OptionSettingForm - - - 9 - - - 12 - - - label14 - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - - Record local logs - - - Automatically adjust column width after updating subscription - - - Auth user - - - 3, 3, 3, 3 - - - label15 - - - 43 - - - labCoreType3 - - - 5 - - - True - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 33, 29 - - - 11 - - - 117, 172 - - - Use semicolon (;) - - + 75, 23 - - tabControl1 + + + 7 - - tabPage2 + + &Cancel - - 12 + + btnClose - - 3, 3, 3, 3 + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - groupBox1 - - - lbFreshrate - - - labCoreType1 - - - 44 - - - 10 - - - 9 - - - 14 - - - 4, 4, 4, 4 - - - True - - - NoControl - - - 4, 22 - - - Core Type - - - 736, 453 - - - 59, 12 - - - 15, 108 - - - True - - - 2 - - - True - - - 31 + + panel2 0 - + + True + + + + NoControl + + + 397, 65 + + + 59, 12 + + + 39 + + + Auth pass + + + label16 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 0 + + + True + + + NoControl + + + 224, 65 + + + 59, 12 + + + 38 + + + Auth user + + + label4 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 1 + + + 496, 61 + + + 120, 21 + + + 37 + + + txtpass + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 2 + + + 285, 61 + + + 97, 21 + + 36 - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + txtuser + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 3 + + + True + + + NoControl + + + 15, 192 + + + 102, 16 + + + 35 + + + allowInsecure + + + chkdefAllowInsecure + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 4 + + + True + + + NoControl + + + 15, 63 + + + 204, 16 + + + 29 + + + Allow connections from the LAN + + + chkAllowLANConn + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 5 + + + True + + + NoControl + + + 496, 27 + + + 120, 16 + + + 31 + + + Turn on Sniffing + + + chksniffingEnabled + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 6 + + + True + + + NoControl + + + 15, 129 + + + 174, 16 + + + 20 + + + Turn on Mux Multiplexing + + + chkmuxEnabled + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 7 + + + False + + + socks + + + http + + + 285, 25 + + + 97, 20 + + + 12 + + + cmbprotocol + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 8 + + + True + + + NoControl + + + 224, 29 + + + 53, 12 + + + 11 + + + protocol + + + label1 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 9 + + + True + + + NoControl + + + 397, 27 + + + 84, 16 + + + 10 + + + Enable UDP + + + chkudpEnabled + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 10 + + + True + + + NoControl + + + 15, 160 + + + 126, 16 + + + 9 + + + Record local logs + + + chklogEnabled + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 11 + + + debug + + + info + + + warning + + + error none - - 7 + + 257, 158 - - 45, 98 + + 97, 20 - - label10 + + 6 - - 94, 21 + + cmbloglevel - - 4 + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + groupBox1 + + + 12 + + True + + NoControl + + + 193, 162 + + + 59, 12 + + + 8 + + + Log level + + + label5 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox1 + + + 13 + + + 124, 25 + 78, 21 3 - - txtsystemProxyExceptions + + txtlocalPort - - 236, 104 - - - 42 - - - True - - - label11 - - - 12 - - - True - - - chkEnableAutoAdjustMainLvColWidth - - - 0 - - - 7 - - - $this - - - btnSetLoopback - - - chkEnableSecurityProtocolTls13 - - - 10 - - - 15, 160 - - - 97, 20 - - - 143, 20 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - NoControl - - - 23 - - - cmbloglevel - - - 496, 61 - - - label16 - - - 20 - - - v2rayN settings - - - groupBox1 - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - - tabPage7 - - - 4 - - - 120, 16 - - - groupBox1 - - - NoControl - - - cmbCoreType6 - - - True - - - 663, 37 - - - label17 - - - 97, 21 - - - v2rayN.Forms.BaseForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - - - tabPageCoreType - - - tabPageCoreType - - - 496, 27 - - - linkDnsObjectDoc - - - System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - cmbCoreType5 - - - tabPageCoreType - - - Do not use proxy server for addresses beginning with - - - tabPageCoreType - - - 0, 463 - - - 143, 20 - - - True - - - Bottom - - - tti - - - 468, 16 - - - Enable Security Protocol TLS v1.3 (subscription/update/speedtest) - - - 94, 21 - - - 0 - - - NoControl - - - groupBox1 - - + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - tabPage6 + + groupBox1 - - 6 + + 14 - - groupBox2 - - - 3 - - - 9 - - - 94, 21 - - - tabPage6 - - - Settings - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - + True - - 11 + + NoControl - + + 33, 29 + + 89, 12 - - label12 + + 2 - - 0 - - - chkmuxEnabled - - - 0 - - - Automatic update interval of and Geo (hours) + + Listening port label2 - - 1 - - - Automatically start at system startup - - - groupBox1 - - - label6 - - - tabPage6 - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 13 - - - label13 - - - 46 - - - 0 - - - tabControl1 - - - 111, 100 - - - 2 - - - 37 - - - label18 - - - 0 - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - - 7 - - - Automatic update interval of subscriptions (hours) - - - Custom DNS (multiple, separated by commas (,)) - - - 2 - - - 30, 376 - - - chklogEnabled - - - True - - - 345, 62 - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 59, 12 - - - 4 - - - 5 - - - 8, 17 - - - 41 - - - 39 - - - 111, 24 - - - 97, 21 - - - &OK - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 groupBox1 - - txtKcpmtu - - - 6 + + 15 Fill @@ -957,1204 +609,2187 @@ 3, 3 - - NoControl + + 902, 421 - - 8, 52 - - - 4 - - - 102, 16 - - - cmbCoreType4 - - - groupBox2 - - - Fill - - - groupBox1 - - + 6 - - 736, 523 + + groupBox1 - + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage1 + + + 0 + + + 4, 22 + + + 3, 3, 3, 3 + + + 908, 427 + + + 0 + + + Core: basic settings + + + tabPage1 + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabControl1 + + + 0 + + + True + + + NoControl + + + 342, 17 + + + 0, 0, 0, 0 + + + 107, 12 + + + 40 + + + Support DnsObject + + + linkDnsObjectDoc + + + System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage2 + + + 0 + + + 8, 41 + + + True + + + Vertical + + + 638, 356 + + + 39 + + + txtremoteDNS + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 tabPage2 - - txtKcpwriteBufferSize - - - 18, 28 - - - 62, 21 - - - 736, 10 - - - 236, 28 - - - groupBox2 - - - groupBox1 - - - NoControl - - - 8 - - - 75, 23 - - - 0 - - - 345, 100 - - - 39 - - - 3 - - - 15, 63 - - - Exception - - - cmbSystemProxyAdvancedProtocol - - - tabPage7 - - - 38 - - - chkIgnoreGeoUpdateCore - - - NoControl - - - chksniffingEnabled - - - tabPage7 - - - 5 - - - labCoreType6 - - - 198, 16 - - - numStatisticsFreshRate - - - 0, 0, 0, 0 - - - 15, 62 - - - 0, 10 - - - NoControl - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 42 - - - 397, 65 - - - tabPageCoreType - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 44 - - - tabPage7 - - - 53, 12 - - - 2 - - - tabPageCoreType - - - Core Type - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - - 5 - - - 728, 427 - - - labCoreType2 - - - 8 - - - NoControl - - - 8, 28 - - - 9 - - - 59, 12 - - - chkKeepOlderDedupl - - - 45 - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage7 - - - 6, 12 - - - 84, 16 - - - 329, 12 - - + 1 - - NoControl - - - label5 - - - 59, 12 - - - 728, 427 - - - Core Type - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 728, 427 - - - True - - - 479, 41 - - - tabControl1 - - - 1 - - - tabPage1 - - - 45, 176 - - - 10 - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 9 - - - 3 - - - 351, 157 - - - 43 - - - 47 - - - 59, 12 - - - allowInsecure - - - 36 - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 10 - - - tabPage7 - - - Core Type - - - 728, 427 - - - True - - - btnOK - - - True - - - 8 - - - cmbCoreType3 - - - 397, 27 - - - 42 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 41 - - - 42 - - - 45, 124 - - - tabPage7 - - - tabControl1 - - - 59, 12 - - - 10 - - - Core: basic settings - - - 6 - - - CoreType settings - - - 6 - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPage3 - - - 263, 12 - - - panel2 - - - tabPage7 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - groupBox2 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 3 - - - chkAutoRun - - - 143, 20 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 15, 192 - - - tabPage2 - - - btnClose - - - 638, 356 - - - chkdefAllowInsecure - - - 1 - - - groupBox2 - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 638, 219 - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 4 - - - tabPage3 - - - 40 - - - 143, 20 - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - txtKcptti - - - 23, 12 - - - 3, 3, 3, 3 - - - 23, 12 - - - 4, 22 - True - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 30 - - - 285, 61 - - - 45, 72 - - - System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPageCoreType - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - writeBufferSize - - - 117, 146 - - - Ignore Geo files when updating core - - - 736, 60 - - - 39 - - - 38 - - - txtKcpdownlinkCapacity - - - 117, 42 - - - label4 - - - 29 - - - label8 - - - 257, 158 - - + NoControl - - True - - - &Cancel - - - 15, 85 - - - 4, 22 - - - 351, 184 - - - NoControl - - - groupBox1 - - - chkAllowLANConn - - - txtautoUpdateSubInterval - - - tabPage7 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 27, 215 - - - 89, 12 - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - - 234, 16 - - - 89, 12 - - - 12 - - - Tray right-click menu servers display limit - - - congestion - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 107, 12 - - - groupBox1 - - - False - - - 97, 20 - - - 5 - - - 11 - - - tabPage6 - - - txtuser - - - tabControl1 - - - 107, 12 - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 20 - - - 117, 120 - - - True - - - 143, 20 - - - 345, 24 - - - Top - - - 11 - - - True - - - NoControl - - - 4, 22 - - - NoControl - - - 8 - - - 59, 12 - - - 39 - - - 18, 66 - - - Allow connections from the LAN - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - NoControl - - - 18, 104 - - - Set Windows10 UWP Loopback - - - txtautoUpdateInterval - - - 246, 16 - - - tabPage1 - - - 2 - - - 94, 21 - - - Fill - - - True - - - 13 - - - txtKcpreadBufferSize - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - - 6 - - - Turn on Mux Multiplexing - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 4, 22 - - - tabPageCoreType - - - groupBox1 - - - 7 - - - 94, 21 - - - Turn on Sniffing - - - socks - - - tabPageCoreType - - - 117, 94 - - - 14 - - - 29 - - - http - - - True - - - NoControl - - - Vertical - - - 8 - - - True - - - 37 - - - label1 - - - 5 - - - groupBox1 - - - 37 - - - $this - - - 728, 427 - - - 3 - - - label9 - - - True - - - tabPage7 - - - txttrayMenuServersLimit - - - Support DnsObject - - - True - - - 267, 16 - - - NoControl - - - txtKcpuplinkCapacity - - - 3 - - - tabPage6 - - - 40 - - - 174, 16 - - - 224, 29 - - - 40 - - - 722, 421 - - - 117, 68 - - - 4 - - - True - - - 224, 65 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Vertical - - - Core Type - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 4, 22 - - - cmbCoreType2 - - - 8, 346 - - - 38 + + 8, 17 281, 12 - + + 38 + + + Custom DNS (multiple, separated by commas (,)) + + + label14 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage2 + + + 2 + + + 4, 22 + + + 908, 427 + + + 4 + + + Core: DNS settings + + + tabPage2 + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabControl1 + + + 1 + + + True + + NoControl 20, 143 - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 84, 16 - - Core Type + + 20 - - 44 - - - True - - - System proxy settings - - - 15 - - - 126, 16 - - - cmbCoreType1 - - - label3 - - - 5 - - - tabPage6 - - - 2 - - - label7 - - - NoControl - - - tabPage6 - - - 59, 12 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - txtremoteDNS - - - Auth pass - - - tabPage7 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 40 - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 204, 16 - - - True - - - 12 - - - 47 - - - 2 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Core: DNS settings - - - 45 - - - 59, 12 - - - 27, 161 - - - 0, 0 - - - Enable Statistics (Realtime netspeed and traffic records. Require restart) - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - panel2 - - - debug - - - 7 - - - Core: KCP settings - - - tabControl1 - - - labCoreType5 - - - 111, 62 - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 305, 12 - - - 38 - - - 1 - - - 4 + + congestion chkKcpcongestion - - 1 + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage6 0 - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 345, 100 - - 33 + + 94, 21 - - 7 + + 15 - + + txtKcpwriteBufferSize + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 101, 12 - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 269, 12 - - - 728, 427 - - - NoControl - - - tabPageCoreType - - + tabPage6 - - 728, 427 + + 1 - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + True + + + NoControl + + + 236, 104 + + + 95, 12 + + + 14 + + + writeBufferSize + + + label10 System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 638, 20 + + tabPage6 - - tabPageCoreType + + 2 - + + 111, 100 + + + 94, 21 + + + 13 + + + txtKcpreadBufferSize + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage6 + + + 3 + + True - - 6, 283 + + NoControl - - 11 + + 18, 104 - - cmbprotocol + + 89, 12 - - 2 + + 12 + + + readBufferSize + + + label11 System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - tabPageCoreType - - - 4 - - - 3 - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - + tabPage6 - - tabPage2 + + 4 - - tabPageCoreType + + 345, 62 - + + 94, 21 + + + 11 + + + txtKcpdownlinkCapacity + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage6 + + + 5 + + + True + + NoControl - - True + + 236, 66 + + + 101, 12 + + + 10 + + + downlinkCapacity + + + label8 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage6 + + + 6 + + + 111, 62 + + + 94, 21 9 - - 0, 0 + + txtKcpuplinkCapacity - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + tabPage6 + + + 7 + + + True + + NoControl - - 8, 371 + + 18, 66 + + + 89, 12 + + + 8 uplinkCapacity - - 10 + + label9 - - 14 - - - tabControl1 - - - Advanced proxy settings, protocol selection (optional) - - + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + tabPage6 + + + 8 + + + 345, 24 + + + 94, 21 + + + 7 + + + txtKcptti + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage6 + + + 9 + + + True + + NoControl + + 236, 28 + + + 23, 12 + + + 6 + + + tti + + + label7 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage6 + + + 10 + + + 111, 24 + + + 94, 21 + + + 5 + + + txtKcpmtu + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage6 + + + 11 + + + True + + + NoControl + + + 18, 28 + + + 23, 12 + + + 4 + + + mtu + + + label6 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage6 + + + 12 + + + 4, 22 + + + 3, 3, 3, 3 + + + 908, 427 + + + 2 + + + Core: KCP settings + tabPage6 + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabControl1 + + + 2 + + + 663, 37 + + + 62, 21 + + + 47 + + + numStatisticsFreshRate + + + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage7 + + + 0 + + + 351, 211 + + + 97, 21 + + + 45 + + + txttrayMenuServersLimit + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage7 + + + 1 + + + True + + + NoControl + + + 27, 215 + + + 263, 12 + + + 44 + + + Tray right-click menu servers display limit + + + label17 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage7 + + + 2 + + + 351, 184 + + + 97, 21 + + + 43 + + + txtautoUpdateSubInterval + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage7 + + + 3 + + + True + + + NoControl + + + 27, 188 + + + 305, 12 + + + 42 + + + Automatic update interval of subscriptions (hours) + + + label3 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage7 + + + 4 + + + NoControl + + + 15, 131 + + + 506, 16 + + + 41 + + + Enable Security Protocol TLS v1.3 (subscription/update/speedtest) + + + chkEnableSecurityProtocolTls13 + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage7 + + + 5 + + + True + + + NoControl + + + 15, 108 + + + 390, 16 + + + 40 + + + Automatically adjust column width after updating subscription + + + chkEnableAutoAdjustMainLvColWidth + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage7 + + + 6 + + + NoControl + + + 30, 376 + + + 282, 23 + + + 39 + + + Set Windows10 UWP Loopback + + + btnSetLoopback + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage7 + + + 7 + + + 351, 157 + + + 97, 21 + + + 38 + + + txtautoUpdateInterval + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage7 + + + 8 + + + True + + + NoControl + + + 27, 161 + + + 269, 12 + + + 37 + + + Automatic update interval of and Geo (hours) + + + label15 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage7 + + + 9 + + + True + + + NoControl + + + 15, 85 + + + 234, 16 + + + 36 + + + Ignore Geo files when updating core + + + chkIgnoreGeoUpdateCore + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage7 + + + 10 + + + True + + + NoControl + + + 15, 62 + + + 198, 16 + + + 33 + + + Keep older when deduplication + + + chkKeepOlderDedupl + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage7 + + + 11 + + + True + + + NoControl + + + 479, 41 + + + 179, 12 + + + 30 + + + Statistics freshrate (second) + + + lbFreshrate + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage7 + + + 12 + + + True + + + NoControl + + + 15, 39 + + + 468, 16 + + + 29 + + + Enable Statistics (Realtime netspeed and traffic records. Require restart) + + + chkEnableStatistics + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage7 + + + 13 + + + True + + + NoControl + + + 15, 16 + + + 246, 16 + + + 23 + + + Automatically start at system startup + + + chkAutoRun + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage7 + + + 14 + + + 4, 22 + + + 3, 3, 3, 3 + + + 908, 427 + + + 3 + + + v2rayN settings + + + tabPage7 + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabControl1 + + + 3 + + + 117, 172 + + + 143, 20 + + + 46 + + + cmbCoreType6 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCoreType + + + 0 + + + True + + + NoControl + + + 45, 176 + + + 59, 12 + + + 47 + + + Core Type + + + labCoreType6 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCoreType + 1 - + + 117, 146 + + + 143, 20 + + + 44 + + + cmbCoreType5 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCoreType + + + 2 + + + True + + + NoControl + + + 45, 150 + + + 59, 12 + + + 45 + + + Core Type + + + labCoreType5 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCoreType + + + 3 + + + 117, 120 + + + 143, 20 + + + 42 + + + cmbCoreType4 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCoreType + + + 4 + + + True + + + NoControl + + + 45, 124 + + + 59, 12 + + + 43 + + + Core Type + + + labCoreType4 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCoreType + + + 5 + + + 117, 94 + + + 143, 20 + + + 40 + + + cmbCoreType3 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCoreType + + + 6 + + + True + + + NoControl + + + 45, 98 + + + 59, 12 + + + 41 + + + Core Type + + + labCoreType3 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCoreType + + + 7 + + + 117, 68 + + + 143, 20 + + + 38 + + + cmbCoreType2 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCoreType + + + 8 + + + True + + + NoControl + + + 45, 72 + + + 59, 12 + + + 39 + + + Core Type + + + labCoreType2 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCoreType + + + 9 + + + 117, 42 + + + 143, 20 + + + 36 + + + cmbCoreType1 + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCoreType + + + 10 + + + True + + + NoControl + + + 45, 46 + + + 59, 12 + + + 37 + + + Core Type + + + labCoreType1 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCoreType + + + 11 + + + 4, 22 + + + 3, 3, 3, 3 + + + 908, 427 + + + 6 + + + CoreType settings + + + tabPageCoreType + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabControl1 + + + 4 + + + True + + + NoControl + + + 8, 346 + + + 329, 12 + + + 45 + + + Advanced proxy settings, protocol selection (optional) + + + label18 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + 0 + + 8, 371 + + + 638, 20 + + + 44 + + + cmbSystemProxyAdvancedProtocol + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 1 + + + True + + + NoControl + + + 6, 283 + + + 107, 12 + + + 42 + + + Use semicolon (;) + + + label13 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 2 + + + True + + + NoControl + + + 8, 28 + + + 317, 12 + + + 40 + + + Do not use proxy server for addresses beginning with + + + label12 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 3 + + + 8, 52 + + + True + + + Vertical + + + 638, 219 + + + 41 + + + txtsystemProxyExceptions + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBox2 + + + 4 + + + Fill + + + 0, 0 + + + 908, 427 + + + 42 + + + Exception + + + groupBox2 + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage3 + + + 0 + + + 4, 22 + + + 908, 427 + + + 5 + + + System proxy settings + + + tabPage3 + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabControl1 + + + 5 + + + True + + + NoControl + + + 328, 332 + + + 47, 12 + + + 14 + + + network + + + portForwardingNetworkLabel + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage4 + + + 0 + + + tcp + + + udp + + + tcp,udp + + + 419, 329 + + + 121, 20 + + + 13 + + + tcp + + + portForwardingNetworkComboBox + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage4 + + + 1 + + + True + + + NoControl + + + 328, 272 + + + 53, 12 + + + 12 + + + dst port + + + portForwardingDstPortLabel + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage4 + + + 2 + + + 419, 269 + + + 161, 21 + + + 11 + + + portForwardingDstPortTextBox + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage4 + + + 3 + + + True + + + NoControl + + + 328, 212 + + + 53, 12 + + + 10 + + + dst host + + + portForwardingDstHostLabel + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage4 + + + 4 + + + True + + + NoControl + + + 328, 152 + + + 65, 12 + + + 9 + + + local port + + + portForwardingLocalPortLabel + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage4 + + + 5 + + + True + + + NoControl + + + 328, 92 + + + 53, 12 + + + 8 + + + local ip + + + portForwardingLocalIpLabel + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage4 + + + 6 + + + True + + + 328, 32 + + + 23, 12 + + + 7 + + + tag + + + portForwardingTagLabel + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage4 + + + 7 + + + NoControl + + + 82, 382 + + + 75, 23 + + + 6 + + + remove + + + portForwardingRemoveButton + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage4 + + + 8 + + + 419, 382 + + + 75, 23 + + + 5 + + + save + + + portForwardingAddButton + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage4 + + + 9 + + + 419, 209 + + + 161, 21 + + + 4 + + + portForwardingDstHostTextBox + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage4 + + + 10 + + + 419, 149 + + + 161, 21 + + + 3 + + + portForwardingLocalPortTextBox + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage4 + + + 11 + + + 419, 89 + + + 161, 21 + + + 2 + + + portForwardingLocalIpTextBox + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage4 + + + 12 + + + 419, 29 + + + 161, 21 + + + 1 + + + portForwardingTagTextBox + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage4 + + + 13 + + + 19, 18 + + + 226, 340 + + + 0 + + + tsbPortForwardingCheckListBox + + + System.Windows.Forms.CheckedListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPage4 + + + 14 + + + 4, 22 + + + 3, 3, 3, 3 + + + 908, 427 + + + 7 + + + Port forwarding settins + + + tabPage4 + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabControl1 + + + 6 + + + Fill + + + 0, 10 + + + 916, 453 + + + 10 + + + tabControl1 + + + System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 0 + + + 267, 16 + + + 75, 23 + + + 8 + + + &OK + + + btnOK + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panel2 + + + 1 + + + Bottom + + + 0, 463 + + + 916, 60 + + + 11 + + + panel2 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 1 + + + Top + + + 0, 0 + + + 916, 10 + + + 9 + + + panel1 + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 2 + True + + 6, 12 + + + 916, 523 + + + + AAABAAYAICAQAAAAAADoAgAAZgAAABAQEAAAAAAAKAEAAE4DAAAgIAAAAQAIAKgIAAB2BAAAEBAAAAEA + CABoBQAAHg0AACAgAAABACAAqBAAAIYSAAAQEAAAAQAgAGgEAAAuIwAAKAAAACAAAABAAAAAAQAEAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA + /wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIoiI + iIiIiIiIiIiIiIiIiIiCIigiIiIozMzMzMzMyCIogiIoIiIiKM7m5ubm5sgiKIIiKCIiIijObm5ubm7I + IiiCIigiIiIozubm5ubmyCIogiIoIiIiKM5ubm5ubsgiKIIiKCIiIijO5ubm5ubIIiiIiIiIiIiIzm5u + bm5uyCIogRERERERGM7u7u7u7sgiKIHZWVlZWRjMzMzMzMzIIiiB1ZWVlZUYiIiIiIiIiIiIgdlZWVlZ + GDMzMzMzMzMzOIHVlZWVlRg/uLi4uLi4uDiB2VlZWVkYP7uLi4uLi4s4gdWVlZWVGD+4uLi4uLi4OIHZ + WVlZWRg/u4uLi4uLiziB1ZWVlZUYP7i4uLi4uLg4gdlZWVlZGD+7i4uLi4uLOIHVlZWVlRg/uLi4uLi4 + uDiB3d3d3d0YP7uLi4uLi4s4gRERERERGD+4uLi4uLi4OIiIiIiIiIg/u4uLi4uLiziCIiIiIiIoP7i4 + uLi4uLg4giIiIiIiKD+7i4uLi4uLOIIiIiIiIig/uLi4uLi4uDiCIiIiIiIoP7u7u7u7u7s4giIiIiIi + KD//////////OIIiIiIiIigzMzMzMzMzMziIiIiIiIiIiIiIiIiIiIiIIiIiIiIiIiIiIiIiIiIiIv// + ////////AAAAAHv4AA57+AAOe/gADnv4AA57+AAOe/gADgAAAA4AAAAOAAAADgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/4AAB/+AAAf/gAAH/4AAB/+AAAf/gAAAAA + AAD/////KAAAABAAAAAgAAAAAQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAACA + gACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAiIiIiIiIiIoiI + iIiIiIiIgigijMzMyCiCKCKM5mbIKIiIiIzu7sgogRERjMzMyCiB2ZGIiIiIiIHZkYMzMzM4gdmRg/u7 + uziB3dGD+7u7OIEREYP7u7s4iIiIg/u7uziCIiKD+7u7OIIiIoP///84giIigzMzMziIiIiIiIiIiP// + KCIAACjObALm5mwCIigAAoiIAAKIzgAAbm4AACIoAAAREQAAGM4AAO7uAAAiKHwAWVl8ABjMfADMzAAA + IigoAAAAIAAAAEAAAAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAA + AACAAIAAgIAAAICAgADA3MAA8MqmAKo/KgD/PyoAAF8qAFVfKgCqXyoA/18qAAB/KgBVfyoAqn8qAP9/ + KgAAnyoAVZ8qAKqfKgD/nyoAAL8qAFW/KgCqvyoA/78qAADfKgBV3yoAqt8qAP/fKgAA/yoAVf8qAKr/ + KgD//yoAAABVAFUAVQCqAFUA/wBVAAAfVQBVH1UAqh9VAP8fVQAAP1UAVT9VAKo/VQD/P1UAAF9VAFVf + VQCqX1UA/19VAAB/VQBVf1UAqn9VAP9/VQAAn1UAVZ9VAKqfVQD/n1UAAL9VAFW/VQCqv1UA/79VAADf + VQBV31UAqt9VAP/fVQAA/1UAVf9VAKr/VQD//1UAAAB/AFUAfwCqAH8A/wB/AAAffwBVH38Aqh9/AP8f + fwAAP38AVT9/AKo/fwD/P38AAF9/AFVffwCqX38A/19/AAB/fwBVf38Aqn9/AP9/fwAAn38AVZ9/AKqf + fwD/n38AAL9/AFW/fwCqv38A/79/AADffwBV338Aqt9/AP/ffwAA/38AVf9/AKr/fwD//38AAACqAFUA + qgCqAKoA/wCqAAAfqgBVH6oAqh+qAP8fqgAAP6oAVT+qAKo/qgD/P6oAAF+qAFVfqgCqX6oA/1+qAAB/ + qgBVf6oAqn+qAP9/qgAAn6oAVZ+qAKqfqgD/n6oAAL+qAFW/qgCqv6oA/7+qAADfqgBV36oAqt+qAP/f + qgAA/6oAVf+qAKr/qgD//6oAAADUAFUA1ACqANQA/wDUAAAf1ABVH9QAqh/UAP8f1AAAP9QAVT/UAKo/ + 1AD/P9QAAF/UAFVf1ACqX9QA/1/UAAB/1ABVf9QAqn/UAP9/1AAAn9QAVZ/UAKqf1AD/n9QAAL/UAFW/ + 1ACqv9QA/7/UAADf1ABV39QAqt/UAP/f1AAA/9QAVf/UAKr/1AD//9QAVQD/AKoA/wAAH/8AVR//AKof + /wD/H/8AAD//AFU//wCqP/8A/z//AABf/wBVX/8Aql//AP9f/wAAf/8AVX//AKp//wD/f/8AAJ//AFWf + /wCqn/8A/5//AAC//wBVv/8Aqr//AP+//wAA3/8AVd//AKrf/wD/3/8AVf//AKr//wD/zMwA/8z/AP// + MwD//2YA//+ZAP//zAAAfwAAVX8AAKp/AAD/fwAAAJ8AAFWfAACqnwAA/58AAAC/AABVvwAAqr8AAP+/ + AAAA3wAAVd8AAKrfAAD/3wAAVf8AAKr/AAAAACoAVQAqAKoAKgD/ACoAAB8qAFUfKgCqHyoA/x8qAAA/ + KgBVPyoA8Pv/AKSgoACAgIAAAAD/AAD/AAAA//8A/wAAAAAAAAD//wAA////AP39/f39/f39/f39/f39 + /f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39 + /f39/f39/f39/f39/f39/f39/f39/f39qoYIqoYIhqoIqgiqCaoIqgiqhqqGhoYIhoYIqv39/f0I/f39 + /ar9/f39/YY2Ng4yDg4ODgoOCgoKCgqG/f39/Yb9/f39CP39/f39qjY7Ozs3Nzc3NjMSMjIOCqr9/f39 + qv39/f2G/f39/f0IN19fOzs3Nzc3NjcODg4KCP39/f0I/f39/ar9/f39/ao6X19fXzs7Ozc3NzY3NgqG + /f39/Yb9/f39CP39/f39hl9jY19jX187Ozs7Nzc3Dqr9/f39qv39/f2G/f39/f0IOodjh19jX19fXztf + OzcOCP39/f0ICAmqCAiqCKoICapfCYdjh2ODY19fXzs7Ow6q/f39/QhITEwoSCUoKSQoqmMJCYcJCWNj + Y2NfY19fNgj9/f39qkyZmZmYmJRwlCmqX19fXl9fX186WzY3Njc2gv39/f0JcJ2dmZmZlJmUJAmqCaoJ + hggIqggICKoIqggI/f39/YZwnp2dnZmZmJVMqnx8fHx8fFR8VHhUVFRUVKr9/f39CHChoZ2dnZ2ZmUwJ + fKSkxqSkxqSkpKSkpKBUCP39/f2qcKLDoqGdnZ2ZTKp8ysakxqSkxqSkxqSkpFSq/f39/QiUpqbDoqHE + nZ1Mq3ykqMakyqSkxqSkpKSkVAj9/f39hpTIyKbHoqGhoXAIfMrLpMqkxqSkxqTGpKRUqv39/f0IlMym + yKbIpcShcAh8y6jKpMqkxsqkpKSkxlQI/f39/aqUzMzMyKbIpqJwqnzLy8qpxsqkpMakxqSkeAj9/f39 + CJSUlJSUlJSUlJQJgMupy8qpysqkyqSkxqRUqv39/f2GCKoIqgiqCKoIhgigrcvPqcuoy8qkxsqkxnyG + /f39/ar9/f39/f39/f39qnzPz6nLy8uoyqnKpKTKVAj9/f39CP39/f39/f39/f0IfNDPz8+py8upyqjG + yqR8hv39/f2G/f39/f39/f39/Qik0K7P0M+ty8vLy6jKpXyq/f39/ar9/f39/f39/f39CHzQ09Ctz8/P + qcupy6jKeAj9/f39CP39/f39/f39/f2qoNPQ0NPQ0M/Qz8vLy6l8CP39/f2G/f39/f39/f39/QmkfKR8 + oHx8fHx8fHx8fHyG/f39/aoIqgiqCKoIqgiqCKoIqgiqCKoIqgiqCKoIqgj9/f39/f39/f39/f39/f39 + /f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3///////////// + ///AAAAD3vgAA974AAPe+AAD3vgAA974AAPe+AADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AA + AAPAAAADwAAAA8AAAAPAAAADwAAAA9/4AAPf+AAD3/gAA9/4AAPf+AAD3/gAA8AAAAP//////////ygA + AAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAA + gACAgAAAgICAAMDcwADwyqYAqj8qAP8/KgAAXyoAVV8qAKpfKgD/XyoAAH8qAFV/KgCqfyoA/38qAACf + KgBVnyoAqp8qAP+fKgAAvyoAVb8qAKq/KgD/vyoAAN8qAFXfKgCq3yoA/98qAAD/KgBV/yoAqv8qAP// + KgAAAFUAVQBVAKoAVQD/AFUAAB9VAFUfVQCqH1UA/x9VAAA/VQBVP1UAqj9VAP8/VQAAX1UAVV9VAKpf + VQD/X1UAAH9VAFV/VQCqf1UA/39VAACfVQBVn1UAqp9VAP+fVQAAv1UAVb9VAKq/VQD/v1UAAN9VAFXf + VQCq31UA/99VAAD/VQBV/1UAqv9VAP//VQAAAH8AVQB/AKoAfwD/AH8AAB9/AFUffwCqH38A/x9/AAA/ + fwBVP38Aqj9/AP8/fwAAX38AVV9/AKpffwD/X38AAH9/AFV/fwCqf38A/39/AACffwBVn38Aqp9/AP+f + fwAAv38AVb9/AKq/fwD/v38AAN9/AFXffwCq338A/99/AAD/fwBV/38Aqv9/AP//fwAAAKoAVQCqAKoA + qgD/AKoAAB+qAFUfqgCqH6oA/x+qAAA/qgBVP6oAqj+qAP8/qgAAX6oAVV+qAKpfqgD/X6oAAH+qAFV/ + qgCqf6oA/3+qAACfqgBVn6oAqp+qAP+fqgAAv6oAVb+qAKq/qgD/v6oAAN+qAFXfqgCq36oA/9+qAAD/ + qgBV/6oAqv+qAP//qgAAANQAVQDUAKoA1AD/ANQAAB/UAFUf1ACqH9QA/x/UAAA/1ABVP9QAqj/UAP8/ + 1AAAX9QAVV/UAKpf1AD/X9QAAH/UAFV/1ACqf9QA/3/UAACf1ABVn9QAqp/UAP+f1AAAv9QAVb/UAKq/ + 1AD/v9QAAN/UAFXf1ACq39QA/9/UAAD/1ABV/9QAqv/UAP//1ABVAP8AqgD/AAAf/wBVH/8Aqh//AP8f + /wAAP/8AVT//AKo//wD/P/8AAF//AFVf/wCqX/8A/1//AAB//wBVf/8Aqn//AP9//wAAn/8AVZ//AKqf + /wD/n/8AAL//AFW//wCqv/8A/7//AADf/wBV3/8Aqt//AP/f/wBV//8Aqv//AP/MzAD/zP8A//8zAP// + ZgD//5kA///MAAB/AABVfwAAqn8AAP9/AAAAnwAAVZ8AAKqfAAD/nwAAAL8AAFW/AACqvwAA/78AAADf + AABV3wAAqt8AAP/fAABV/wAAqv8AAAAAKgBVACoAqgAqAP8AKgAAHyoAVR8qAKofKgD/HyoAAD8qAFU/ + KgDw+/8ApKCgAICAgAAAAP8AAP8AAAD//wD/AAAAAAAAAP//AAD///8A/f39/f39/f39/f39/f39/f0I + hgiqCKoICKoICKaGCP39qv39hv2GNg4ODjII/ar9/Yb9/ar9qjdjXzsOCP2G/f0IhquGCAleCWNfNob9 + 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 + bv+3d0n/wr/B/wAAAAAAAAAAAAAAAAAAAADCv8H/FRqE/0dN1v8/RNL/Nz3Q/y40zv8nLcz/ISfK/xwh + yf8WHMf/GxJh/8K/wf/gr3r/4K96/+Cvev/gr3r/3614/9yqdf/apnL/16Nw/9Sea//Rmmj/zZZk/8qR + X//GjFz/w4dW/7+CUv/Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/wf8SHZD/WF3a/05U1/9FS9X/PUPS/zU7 + 0P8uM83/JyzL/yAmyf8aFGn/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/ + wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf8AAAAAAAAAAAAAAAAAAAAAwr/B/xAfnP9obt7/YGTc/1Zb + 2f9NU9f/RUrU/ztB0v80OdD/LDHO/xgWcv/Cv8H/Dn+n/w18pP8MeqH/DHie/wt1m/8Kc5j/CXGV/wlv + k/8JbJD/CGqN/wdpi/8HZ4j/BmWH/wZkhf8GYoP/wr/B/wAAAAAAAAAAAAAAAAAAAADCv8H/DiKp/3l+ + 4/9vdeH/Zmze/11i2/9UWtn/S1HW/0NI1P86P9H/Fhh9/8K/wf8Ogar/Barp/wGo6P8Apef/AKPm/wCi + 5P8An+L/AJ7h/wCd3/8AnN7/AJnc/wCY2/8AmNn/AJbX/wZjhP/Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/ + wf8MJbX/iI7n/4CF5v93fOP/bnPg/2Vr3f9bYdv/UljY/0lP1v8UGoj/wr/B/w+Erf8Lrur/Bqvq/wOo + 6f8Apuf/AKTm/wCi5f8AoOT/AJ/i/wCd4f8AnN//AJrd/wCZ2/8AmNr/BmWH/8K/wf8AAAAAAAAAAAAA + AAAAAAAAwr/B/wkowP+WnOz/jpTq/4aL6P9+hOX/dXri/2xx4P9jaN3/WV/b/xEek//Cv8H/EIaw/xay + 7P8Or+z/Cavr/wWq6v8Bp+j/AKbn/wCj5f8AoeT/AJ/j/wCe4f8AnOD/AJve/wCa3f8HZ4n/wr/B/wAA + AAAAAAAAAAAAAAAAAADCv8H/CCrK/6Ko7/+coe7/lZrr/42T6f+Fiub/fIHl/3N54v9rcN//ECGg/8K/ + wf8QiLP/I7nu/xq07f8Ssez/C63r/war6v8Cqen/AKbo/wCk5v8AouX/AKHk/wCf4f8AneH/AJzf/who + i//Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/wf8GLNP/q7Hy/6as8P+hpu//mp/u/5OY6/+LkOj/g4nm/3qA + 5P8NI6z/wr/B/xCKtv8xvvD/J7rv/x627f8Vsuz/Dq/s/wmr6/8Equn/Aafo/wCl5/8Ao+X/AKHk/wCf + 4v8AnuH/CGqO/8K/wf8AAAAAAAAAAAAAAAAAAAAAwr/B/wUu2/+vtPP/r7Tz/6qv8v+mq/D/oKXv/5me + 7f+Sl+v/io/p/wsmt//Cv8H/Eo24/0HF8f82wfD/LLzv/yK47v8atO3/EbHs/wut6/8Gq+r/A6np/wCm + 6P8Apeb/AKLl/wCh5P8IbJD/wr/B/wAAAAAAAAAAAAAAAAAAAADCv8H/BC/h/wQv3/8FL9z/BS3Z/wYt + 1v8GLNL/ByvP/wgqy/8IKcb/CSnC/8K/wf8Sjrv/Uszy/0fH8f87w/H/Mb7v/ye67/8et+7/FbPt/w6v + 6/8IrOv/BKnp/wGo6P8Apef/AKPl/wluk//Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/wf/Cv8H/wr/B/8K/ + wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/xKRvf9j0/P/WM/z/0zK8f9BxfH/N8Hw/yy8 + 7/8iuO7/GbTt/xGx7P8Lruv/Bqrq/wOo6f8Apuf/CnGV/8K/wf8AAAAAAAAAAAAAAAAAAAAAwr/B/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCv8H/E5LA/3Ta8/9q1fP/XtHz/1LM + 8v9Hx/H/O8Pw/zG+7/8nu+//Hrbt/xay7f8Or+v/CKzq/wSq6f8Kc5j/wr/B/wAAAAAAAAAAAAAAAAAA + AADCv8H/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMK/wf8UlMH/hOD1/3rc + 9f9v2PP/ZNTy/1jO8v9NyvH/Qsbx/zbB8P8svO//I7ju/xm07f8SsOz/C67r/wt2m//Cv8H/AAAAAAAA + AAAAAAAAAAAAAMK/wf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwr/B/xSW + w/+T5vb/iuL1/3/e9P912vT/adbz/13R8/9SzPL/R8jx/zzD8P8xvvD/J7rv/x627v8Vsuz/C3ie/8K/ + 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 + + + + 4, 4, 4, 4 + + + Settings + + + OptionSettingForm + + + v2rayN.Forms.BaseForm, v2rayN, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/v2rayN/v2rayN/Forms/OptionSettingForm.zh-Hans.resx b/v2rayN/v2rayN/Forms/OptionSettingForm.zh-Hans.resx index 04e93138..b1a83a35 100644 --- a/v2rayN/v2rayN/Forms/OptionSettingForm.zh-Hans.resx +++ b/v2rayN/v2rayN/Forms/OptionSettingForm.zh-Hans.resx @@ -379,4 +379,31 @@ 参数设置 + + 端口转发 + + + 目标主机 + + + 目标端口 + + + 本地监听IP + + + 本地监听端口 + + + 网络 + + + 命名 + + + 保存 + + + 删除 + \ No newline at end of file diff --git a/v2rayN/v2rayN/Handler/ConfigHandler.cs b/v2rayN/v2rayN/Handler/ConfigHandler.cs index 77b804d1..680350bc 100644 --- a/v2rayN/v2rayN/Handler/ConfigHandler.cs +++ b/v2rayN/v2rayN/Handler/ConfigHandler.cs @@ -90,6 +90,13 @@ namespace v2rayN.Handler config.inbound[0].protocol = Global.InboundSocks; } } + + // 端口转发 + if (config.portForwarding == null) + { + config.portForwarding = new List(); + } + //路由规则 if (Utils.IsNullOrEmpty(config.domainStrategy)) { diff --git a/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs b/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs index a5707bee..158d657d 100644 --- a/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs +++ b/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs @@ -157,6 +157,12 @@ namespace v2rayN.Handler Inbounds inbound2 = GetInbound(config.inbound[0], Global.InboundHttp, 1, false); v2rayConfig.inbounds.Add(inbound2); + // 端口转发 + foreach (var item in config.portForwarding) + { + v2rayConfig.inbounds.Add(GetPortForwarding(item)); + } + if (config.inbound[0].allowLANConn) { Inbounds inbound3 = GetInbound(config.inbound[0], Global.InboundSocks2, 2, true); @@ -207,6 +213,25 @@ namespace v2rayN.Handler return inbound; } + private static Inbounds GetPortForwarding(PortForwardingItem portForwardingItem) + { + Inbounds inbound = new Inbounds(); + inbound.tag = portForwardingItem.tag; + inbound.listen = portForwardingItem.localIp; + inbound.port = portForwardingItem.localPort; + inbound.protocol = Global.InboundAPIProtocal; + Inboundsettings settings = new Inboundsettings(); + settings.udp = true; + settings.address = portForwardingItem.dstHost; + settings.port = portForwardingItem.dstPort; + settings.network = portForwardingItem.network; + settings.timeout = 0; + settings.followRedirect = false; + settings.userLevel = 0; + inbound.settings = settings; + return inbound; + } + /// /// 路由 /// diff --git a/v2rayN/v2rayN/Mode/Config.cs b/v2rayN/v2rayN/Mode/Config.cs index 8dab69c6..95700a5a 100644 --- a/v2rayN/v2rayN/Mode/Config.cs +++ b/v2rayN/v2rayN/Mode/Config.cs @@ -149,6 +149,14 @@ namespace v2rayN.Mode get; set; } + /// + /// 端口转发(基于InItem) + /// + public List portForwarding + { + get; set; + } + /// /// vmess服务器信息 /// @@ -599,6 +607,67 @@ namespace v2rayN.Mode } + [Serializable] + public class PortForwardingItem + { + /// + /// TAG + /// + public string tag + { + get; set; + } + + /// + /// 本地监听IP + /// + public string localIp + { + get; set; + } + + /// + /// 本地监听端口 + /// + public int localPort + { + get; set; + } + + /// + /// 目标主机 + /// + public string dstHost + { + get; set; + } + + /// + /// 目标端口 + /// + public int dstPort + { + get; set; + } + + /// + /// 网络[network: "tcp" | "udp" | "tcp,udp"],默认为tcp + /// + public string network + { + get; set; + } + + /// + /// 是否启用 + /// + public bool enable + { + get; set; + } + + } + [Serializable] public class KcpItem { diff --git a/v2rayN/v2rayN/Mode/V2rayConfig.cs b/v2rayN/v2rayN/Mode/V2rayConfig.cs index 1ce64c3c..8deff769 100644 --- a/v2rayN/v2rayN/Mode/V2rayConfig.cs +++ b/v2rayN/v2rayN/Mode/V2rayConfig.cs @@ -128,6 +128,31 @@ namespace v2rayN.Mode /// public string address { get; set; } + /// + /// 端口,端口转发使用 + /// + public int port { get; set; } + + /// + /// 网络类型,端口转发使用["tcp" | "udp" | "tcp,udp"] + /// + public string network { get; set; } + + /// + /// 连接空闲的时间限制,端口转发使用 + /// + public int timeout { get; set; } + + /// + /// 端口转发使用 + /// + public bool followRedirect { get; set; } + + /// + /// 端口转发使用 + /// + public int userLevel { get; set; } + /// /// ///