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; }
+
///
///
///