diff --git a/v2rayN/ServiceLib/Handler/ConfigHandler.cs b/v2rayN/ServiceLib/Handler/ConfigHandler.cs
index e2cc4c45..774c6d3f 100644
--- a/v2rayN/ServiceLib/Handler/ConfigHandler.cs
+++ b/v2rayN/ServiceLib/Handler/ConfigHandler.cs
@@ -1358,6 +1358,7 @@ namespace ServiceLib.Handler
                 item.PrevProfile = subItem.PrevProfile;
                 item.NextProfile = subItem.NextProfile;
                 item.PreSocksPort = subItem.PreSocksPort;
+                item.Memo = subItem.Memo;
             }
 
             if (Utils.IsNullOrEmpty(item.Id))
diff --git a/v2rayN/ServiceLib/Models/SubItem.cs b/v2rayN/ServiceLib/Models/SubItem.cs
index 851733bf..b6caa374 100644
--- a/v2rayN/ServiceLib/Models/SubItem.cs
+++ b/v2rayN/ServiceLib/Models/SubItem.cs
@@ -33,5 +33,7 @@ namespace ServiceLib.Models
         public string? NextProfile { get; set; }
 
         public int? PreSocksPort { get; set; }
+
+        public string? Memo { get; set; }
     }
 }
\ No newline at end of file
diff --git a/v2rayN/ServiceLib/Resx/ResUI.Designer.cs b/v2rayN/ServiceLib/Resx/ResUI.Designer.cs
index 45fdab2f..26864bef 100644
--- a/v2rayN/ServiceLib/Resx/ResUI.Designer.cs
+++ b/v2rayN/ServiceLib/Resx/ResUI.Designer.cs
@@ -447,6 +447,15 @@ namespace ServiceLib.Resx {
             }
         }
         
+        /// 
+        ///   查找类似 Remarks Memo 的本地化字符串。
+        /// 
+        public static string LvMemo {
+            get {
+                return ResourceManager.GetString("LvMemo", resourceCulture);
+            }
+        }
+        
         /// 
         ///   查找类似 More URLs, separated by commas; Subscription conversion will be invalid 的本地化字符串。
         /// 
diff --git a/v2rayN/ServiceLib/Resx/ResUI.resx b/v2rayN/ServiceLib/Resx/ResUI.resx
index 2b3ea353..0ef7eaef 100644
--- a/v2rayN/ServiceLib/Resx/ResUI.resx
+++ b/v2rayN/ServiceLib/Resx/ResUI.resx
@@ -1366,4 +1366,7 @@
   
     Are you sure to exit?
   
+  
+    Remarks Memo
+  
 
\ No newline at end of file
diff --git a/v2rayN/ServiceLib/Resx/ResUI.zh-Hans.resx b/v2rayN/ServiceLib/Resx/ResUI.zh-Hans.resx
index 304bb387..54951788 100644
--- a/v2rayN/ServiceLib/Resx/ResUI.zh-Hans.resx
+++ b/v2rayN/ServiceLib/Resx/ResUI.zh-Hans.resx
@@ -1363,4 +1363,7 @@
   
     是否确定退出?
   
+  
+    备注备忘
+  
 
\ No newline at end of file
diff --git a/v2rayN/ServiceLib/Resx/ResUI.zh-Hant.resx b/v2rayN/ServiceLib/Resx/ResUI.zh-Hant.resx
index 78113195..6f122426 100644
--- a/v2rayN/ServiceLib/Resx/ResUI.zh-Hant.resx
+++ b/v2rayN/ServiceLib/Resx/ResUI.zh-Hant.resx
@@ -1243,4 +1243,7 @@
   
     是否確定退出?
   
+  
+    備註備忘
+  
 
\ No newline at end of file
diff --git a/v2rayN/v2rayN.Desktop/Views/SubEditWindow.axaml b/v2rayN/v2rayN.Desktop/Views/SubEditWindow.axaml
index c5d22cfd..bd7e01f0 100644
--- a/v2rayN/v2rayN.Desktop/Views/SubEditWindow.axaml
+++ b/v2rayN/v2rayN.Desktop/Views/SubEditWindow.axaml
@@ -52,6 +52,7 @@
                     
                     
                     
+                    
                 
                 
                     
@@ -114,7 +115,7 @@
 
                     
+                
+
+                
                  vm.SelectedSource.PrevProfile, v => v.txtPrevProfile.Text).DisposeWith(disposables);
                 this.Bind(ViewModel, vm => vm.SelectedSource.NextProfile, v => v.txtNextProfile.Text).DisposeWith(disposables);
                 this.Bind(ViewModel, vm => vm.SelectedSource.PreSocksPort, v => v.txtPreSocksPort.Text).DisposeWith(disposables);
+                this.Bind(ViewModel, vm => vm.SelectedSource.Memo, v => v.txtMemo.Text).DisposeWith(disposables);
 
                 this.BindCommand(ViewModel, vm => vm.SaveCmd, v => v.btnSave).DisposeWith(disposables);
             });
diff --git a/v2rayN/v2rayN/Views/SubEditWindow.xaml b/v2rayN/v2rayN/Views/SubEditWindow.xaml
index d6594e70..3853afd8 100644
--- a/v2rayN/v2rayN/Views/SubEditWindow.xaml
+++ b/v2rayN/v2rayN/Views/SubEditWindow.xaml
@@ -1,14 +1,14 @@
 
                     
                     
+                    
                 
                 
                     
@@ -165,7 +166,7 @@
 
                     
+
+
+                
+                
             
         
     
diff --git a/v2rayN/v2rayN/Views/SubEditWindow.xaml.cs b/v2rayN/v2rayN/Views/SubEditWindow.xaml.cs
index 18ff5da1..f070af78 100644
--- a/v2rayN/v2rayN/Views/SubEditWindow.xaml.cs
+++ b/v2rayN/v2rayN/Views/SubEditWindow.xaml.cs
@@ -34,6 +34,7 @@ namespace v2rayN.Views
                 this.Bind(ViewModel, vm => vm.SelectedSource.PrevProfile, v => v.txtPrevProfile.Text).DisposeWith(disposables);
                 this.Bind(ViewModel, vm => vm.SelectedSource.NextProfile, v => v.txtNextProfile.Text).DisposeWith(disposables);
                 this.Bind(ViewModel, vm => vm.SelectedSource.PreSocksPort, v => v.txtPreSocksPort.Text).DisposeWith(disposables);
+                this.Bind(ViewModel, vm => vm.SelectedSource.Memo, v => v.txtMemo.Text).DisposeWith(disposables);
 
                 this.BindCommand(ViewModel, vm => vm.SaveCmd, v => v.btnSave).DisposeWith(disposables);
             });