diff --git a/linker.sln b/linker.sln
index 4fe945fa..ab353292 100644
--- a/linker.sln
+++ b/linker.sln
@@ -59,7 +59,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "linker.messenger.tuntap", "
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "linker.messenger.serializer.aot", "src\linker.messenger.serializer.aot\linker.messenger.serializer.aot.csproj", "{0538DDF8-346F-48DE-84DF-AEF3EEBE03EA}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "linker.app", "linker.app\linker.app.csproj", "{60FFFE21-C8F2-4B3A-BB49-7FA2AE31C2B0}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "linker.app", "src\linker.app\linker.app.csproj", "{60FFFE21-C8F2-4B3A-BB49-7FA2AE31C2B0}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/linker.app/App.xaml b/src/linker.app/App.xaml
similarity index 100%
rename from linker.app/App.xaml
rename to src/linker.app/App.xaml
diff --git a/linker.app/App.xaml.cs b/src/linker.app/App.xaml.cs
similarity index 100%
rename from linker.app/App.xaml.cs
rename to src/linker.app/App.xaml.cs
diff --git a/linker.app/AppShell.xaml b/src/linker.app/AppShell.xaml
similarity index 100%
rename from linker.app/AppShell.xaml
rename to src/linker.app/AppShell.xaml
diff --git a/linker.app/AppShell.xaml.cs b/src/linker.app/AppShell.xaml.cs
similarity index 100%
rename from linker.app/AppShell.xaml.cs
rename to src/linker.app/AppShell.xaml.cs
diff --git a/linker.app/MainPage.xaml b/src/linker.app/MainPage.xaml
similarity index 100%
rename from linker.app/MainPage.xaml
rename to src/linker.app/MainPage.xaml
diff --git a/linker.app/MainPage.xaml.cs b/src/linker.app/MainPage.xaml.cs
similarity index 100%
rename from linker.app/MainPage.xaml.cs
rename to src/linker.app/MainPage.xaml.cs
diff --git a/linker.app/MauiProgram.cs b/src/linker.app/MauiProgram.cs
similarity index 100%
rename from linker.app/MauiProgram.cs
rename to src/linker.app/MauiProgram.cs
diff --git a/linker.app/Platforms/Android/AndroidManifest.xml b/src/linker.app/Platforms/Android/AndroidManifest.xml
similarity index 100%
rename from linker.app/Platforms/Android/AndroidManifest.xml
rename to src/linker.app/Platforms/Android/AndroidManifest.xml
diff --git a/linker.app/Platforms/Android/MainActivity.cs b/src/linker.app/Platforms/Android/MainActivity.cs
similarity index 100%
rename from linker.app/Platforms/Android/MainActivity.cs
rename to src/linker.app/Platforms/Android/MainActivity.cs
diff --git a/linker.app/Platforms/Android/MainApplication.cs b/src/linker.app/Platforms/Android/MainApplication.cs
similarity index 100%
rename from linker.app/Platforms/Android/MainApplication.cs
rename to src/linker.app/Platforms/Android/MainApplication.cs
diff --git a/linker.app/Platforms/Android/Resources/values/colors.xml b/src/linker.app/Platforms/Android/Resources/values/colors.xml
similarity index 100%
rename from linker.app/Platforms/Android/Resources/values/colors.xml
rename to src/linker.app/Platforms/Android/Resources/values/colors.xml
diff --git a/linker.app/Platforms/MacCatalyst/AppDelegate.cs b/src/linker.app/Platforms/MacCatalyst/AppDelegate.cs
similarity index 100%
rename from linker.app/Platforms/MacCatalyst/AppDelegate.cs
rename to src/linker.app/Platforms/MacCatalyst/AppDelegate.cs
diff --git a/linker.app/Platforms/MacCatalyst/Entitlements.plist b/src/linker.app/Platforms/MacCatalyst/Entitlements.plist
similarity index 100%
rename from linker.app/Platforms/MacCatalyst/Entitlements.plist
rename to src/linker.app/Platforms/MacCatalyst/Entitlements.plist
diff --git a/linker.app/Platforms/MacCatalyst/Info.plist b/src/linker.app/Platforms/MacCatalyst/Info.plist
similarity index 100%
rename from linker.app/Platforms/MacCatalyst/Info.plist
rename to src/linker.app/Platforms/MacCatalyst/Info.plist
diff --git a/linker.app/Platforms/MacCatalyst/Program.cs b/src/linker.app/Platforms/MacCatalyst/Program.cs
similarity index 100%
rename from linker.app/Platforms/MacCatalyst/Program.cs
rename to src/linker.app/Platforms/MacCatalyst/Program.cs
diff --git a/linker.app/Platforms/Tizen/Main.cs b/src/linker.app/Platforms/Tizen/Main.cs
similarity index 100%
rename from linker.app/Platforms/Tizen/Main.cs
rename to src/linker.app/Platforms/Tizen/Main.cs
diff --git a/linker.app/Platforms/Tizen/tizen-manifest.xml b/src/linker.app/Platforms/Tizen/tizen-manifest.xml
similarity index 100%
rename from linker.app/Platforms/Tizen/tizen-manifest.xml
rename to src/linker.app/Platforms/Tizen/tizen-manifest.xml
diff --git a/linker.app/Platforms/Windows/App.xaml b/src/linker.app/Platforms/Windows/App.xaml
similarity index 100%
rename from linker.app/Platforms/Windows/App.xaml
rename to src/linker.app/Platforms/Windows/App.xaml
diff --git a/linker.app/Platforms/Windows/App.xaml.cs b/src/linker.app/Platforms/Windows/App.xaml.cs
similarity index 100%
rename from linker.app/Platforms/Windows/App.xaml.cs
rename to src/linker.app/Platforms/Windows/App.xaml.cs
diff --git a/linker.app/Platforms/Windows/Package.appxmanifest b/src/linker.app/Platforms/Windows/Package.appxmanifest
similarity index 100%
rename from linker.app/Platforms/Windows/Package.appxmanifest
rename to src/linker.app/Platforms/Windows/Package.appxmanifest
diff --git a/linker.app/Platforms/Windows/app.manifest b/src/linker.app/Platforms/Windows/app.manifest
similarity index 100%
rename from linker.app/Platforms/Windows/app.manifest
rename to src/linker.app/Platforms/Windows/app.manifest
diff --git a/linker.app/Platforms/iOS/AppDelegate.cs b/src/linker.app/Platforms/iOS/AppDelegate.cs
similarity index 100%
rename from linker.app/Platforms/iOS/AppDelegate.cs
rename to src/linker.app/Platforms/iOS/AppDelegate.cs
diff --git a/linker.app/Platforms/iOS/Info.plist b/src/linker.app/Platforms/iOS/Info.plist
similarity index 100%
rename from linker.app/Platforms/iOS/Info.plist
rename to src/linker.app/Platforms/iOS/Info.plist
diff --git a/linker.app/Platforms/iOS/Program.cs b/src/linker.app/Platforms/iOS/Program.cs
similarity index 100%
rename from linker.app/Platforms/iOS/Program.cs
rename to src/linker.app/Platforms/iOS/Program.cs
diff --git a/linker.app/Properties/launchSettings.json b/src/linker.app/Properties/launchSettings.json
similarity index 100%
rename from linker.app/Properties/launchSettings.json
rename to src/linker.app/Properties/launchSettings.json
diff --git a/linker.app/Resources/AppIcon/appicon.svg b/src/linker.app/Resources/AppIcon/appicon.svg
similarity index 100%
rename from linker.app/Resources/AppIcon/appicon.svg
rename to src/linker.app/Resources/AppIcon/appicon.svg
diff --git a/linker.app/Resources/AppIcon/appiconfg.svg b/src/linker.app/Resources/AppIcon/appiconfg.svg
similarity index 100%
rename from linker.app/Resources/AppIcon/appiconfg.svg
rename to src/linker.app/Resources/AppIcon/appiconfg.svg
diff --git a/linker.app/Resources/Fonts/OpenSans-Regular.ttf b/src/linker.app/Resources/Fonts/OpenSans-Regular.ttf
similarity index 100%
rename from linker.app/Resources/Fonts/OpenSans-Regular.ttf
rename to src/linker.app/Resources/Fonts/OpenSans-Regular.ttf
diff --git a/linker.app/Resources/Fonts/OpenSans-Semibold.ttf b/src/linker.app/Resources/Fonts/OpenSans-Semibold.ttf
similarity index 100%
rename from linker.app/Resources/Fonts/OpenSans-Semibold.ttf
rename to src/linker.app/Resources/Fonts/OpenSans-Semibold.ttf
diff --git a/linker.app/Resources/Images/dotnet_bot.png b/src/linker.app/Resources/Images/dotnet_bot.png
similarity index 100%
rename from linker.app/Resources/Images/dotnet_bot.png
rename to src/linker.app/Resources/Images/dotnet_bot.png
diff --git a/linker.app/Resources/Raw/AboutAssets.txt b/src/linker.app/Resources/Raw/AboutAssets.txt
similarity index 100%
rename from linker.app/Resources/Raw/AboutAssets.txt
rename to src/linker.app/Resources/Raw/AboutAssets.txt
diff --git a/linker.app/Resources/Splash/splash.svg b/src/linker.app/Resources/Splash/splash.svg
similarity index 100%
rename from linker.app/Resources/Splash/splash.svg
rename to src/linker.app/Resources/Splash/splash.svg
diff --git a/linker.app/Resources/Styles/Colors.xaml b/src/linker.app/Resources/Styles/Colors.xaml
similarity index 100%
rename from linker.app/Resources/Styles/Colors.xaml
rename to src/linker.app/Resources/Styles/Colors.xaml
diff --git a/linker.app/Resources/Styles/Styles.xaml b/src/linker.app/Resources/Styles/Styles.xaml
similarity index 100%
rename from linker.app/Resources/Styles/Styles.xaml
rename to src/linker.app/Resources/Styles/Styles.xaml
diff --git a/linker.app/linker.app.csproj b/src/linker.app/linker.app.csproj
similarity index 100%
rename from linker.app/linker.app.csproj
rename to src/linker.app/linker.app.csproj
diff --git a/linker.app/linker.app.csproj.user b/src/linker.app/linker.app.csproj.user
similarity index 100%
rename from linker.app/linker.app.csproj.user
rename to src/linker.app/linker.app.csproj.user
diff --git a/src/linker.doc.web/docs/1、首页.md b/src/linker.doc.web/docs/1、首页.md
index e7100d3d..878c64ad 100644
--- a/src/linker.doc.web/docs/1、首页.md
+++ b/src/linker.doc.web/docs/1、首页.md
@@ -60,5 +60,7 @@ sidebar_position: 1
1. win7 或 win8 可能需要安装一些环境,才能运行
2. Microsoft Visual C++ 2015-2019 Redistributable
3. KB3063858
+4. KB3033929
+
:::
diff --git a/src/linker.doc.web/docs/2、首次运行/2.3、安装方法(openwrt).md b/src/linker.doc.web/docs/2、首次运行/2.3、安装方法(openwrt).md
index 2c3d649e..40102afb 100644
--- a/src/linker.doc.web/docs/2、首次运行/2.3、安装方法(openwrt).md
+++ b/src/linker.doc.web/docs/2、首次运行/2.3、安装方法(openwrt).md
@@ -7,4 +7,5 @@ sidebar_position: 2
1. 在 `System(系统)`、`Software(软件包)`、`Update Package(更新列表)`先更新一下
2. 下载对应架构的ipk文件,在`System(系统)`、`Software(软件包)`、`Upload Package(上传软件包)`上传ipk文件安装
3. 如果ui无法安装,或者安装失败,可以尝试使用命令安装,`opkg install --force-overwrite linker-xxx.ipk` 强制安装
+4. 需要 `zlib`,`bash`,`iptables`,`kmod-tun`,`ip-full`,`kmod-ipt-nat`,`libstdcpp`,`libopenssl`,`libopenssl-legacy`
:::
\ No newline at end of file
diff --git a/src/linker.doc.web/docs/4、通信功能/4.1、虚拟网卡/1.1.2、RRAS.md b/src/linker.doc.web/docs/4、通信功能/4.1、虚拟网卡/1.1.2、RRAS.md
index da39e2c3..6012aeff 100644
--- a/src/linker.doc.web/docs/4、通信功能/4.1、虚拟网卡/1.1.2、RRAS.md
+++ b/src/linker.doc.web/docs/4、通信功能/4.1、虚拟网卡/1.1.2、RRAS.md
@@ -4,15 +4,9 @@ sidebar_position: 4
# 1.1.2、RRAS
-:::danger[说明]
-1. 操作不当可能会导致网络无法访问,请谨慎操作,最好先创建还原点
-2. 有局限性,创建虚拟网卡后,需要重新`“配置并启用路由和远程访问”`
-:::
-
:::tip[说明]
-
-1. 在windows server中,你可以选择使用RRAS(Routing and Remote Access Service) 来启用NAT,从而实现点对网
-:::
+1. 操作不当可能会导致网络无法访问,请谨慎操作
+2. 有局限性,创建虚拟网卡后,需要重新`“配置并启用路由和远程访问”`


@@ -27,7 +21,4 @@ sidebar_position: 4



-
-:::danger[说明]
-所有步骤已经结束了,没有其它操作
:::
\ No newline at end of file
diff --git a/src/linker.doc.web/docs/4、通信功能/4.1、虚拟网卡/1.1.3、ICS.md b/src/linker.doc.web/docs/4、通信功能/4.1、虚拟网卡/1.1.3、ICS.md
new file mode 100644
index 00000000..ae140ed8
--- /dev/null
+++ b/src/linker.doc.web/docs/4、通信功能/4.1、虚拟网卡/1.1.3、ICS.md
@@ -0,0 +1,12 @@
+---
+sidebar_position: 5
+---
+
+# 1.1.3、ICS
+
+:::tip[说明]
+1. 操作不当可能会导致网络无法访问,请谨慎操作
+
+
+
+:::
\ No newline at end of file
diff --git a/src/linker.doc.web/docs/4、通信功能/4.1、虚拟网卡/1.2、网对网.md b/src/linker.doc.web/docs/4、通信功能/4.1、虚拟网卡/1.2、网对网.md
index bbd982cd..1058b477 100644
--- a/src/linker.doc.web/docs/4、通信功能/4.1、虚拟网卡/1.2、网对网.md
+++ b/src/linker.doc.web/docs/4、通信功能/4.1、虚拟网卡/1.2、网对网.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 5
+sidebar_position: 6
---
# 1.2、网对网
diff --git a/src/linker.doc.web/docs/4、通信功能/4.1、虚拟网卡/img/ics1.png b/src/linker.doc.web/docs/4、通信功能/4.1、虚拟网卡/img/ics1.png
new file mode 100644
index 00000000..fe684f21
Binary files /dev/null and b/src/linker.doc.web/docs/4、通信功能/4.1、虚拟网卡/img/ics1.png differ
diff --git a/src/linker.ics/Program.cs b/src/linker.ics/Program.cs
new file mode 100644
index 00000000..cad114ee
--- /dev/null
+++ b/src/linker.ics/Program.cs
@@ -0,0 +1,115 @@
+using NETCONLib;
+using System;
+using System.Text;
+
+namespace linker.ics
+{
+ internal class Program
+ {
+ static void Main(string[] args)
+ {
+ string pulicName = args[0];
+ string privateName = args[1];
+ string type = args[2];
+ StringBuilder sb = new StringBuilder();
+
+ GetConnections(pulicName, privateName, out INetSharingConfiguration publicCon, out INetSharingConfiguration privateCon);
+ if (publicCon == null)
+ {
+ sb.Append($"{pulicName} public device not found!");
+ return;
+ }
+ else if (privateCon == null)
+ {
+ sb.Append($"{privateName} private device not found!");
+ return;
+ }
+ else if (type == "enable")
+ {
+ try
+ {
+ publicCon.EnableSharing(tagSHARINGCONNECTIONTYPE.ICSSHARINGTYPE_PUBLIC);
+ }
+ catch (Exception ex)
+ {
+ sb.Append($"{ex.Message},may need to be reboot system");
+ }
+ try
+ {
+ privateCon.EnableSharing(tagSHARINGCONNECTIONTYPE.ICSSHARINGTYPE_PRIVATE);
+ }
+ catch (Exception ex)
+ {
+ sb.Append($"{ex.Message},may need to be reboot system");
+ }
+ }
+ else if (type == "disable")
+ {
+ try
+ {
+ publicCon.DisableSharing();
+ }
+ catch (Exception ex)
+ {
+ sb.Append($"{ex.Message},may need to be reboot system");
+ }
+ try
+ {
+ privateCon.DisableSharing();
+ }
+ catch (Exception ex)
+ {
+ sb.Append($"{ex.Message},may need to be reboot system");
+ }
+ }
+ else
+ {
+ sb.Append($"{type} command invalid");
+ }
+
+ string result = sb.ToString();
+ if (string.IsNullOrEmpty(result))
+ {
+ Console.WriteLine($"{type} success");
+ }
+ else
+ {
+ Console.WriteLine(result);
+ }
+ }
+
+ static void GetConnections(string publicName, string privateName, out INetSharingConfiguration publicCon, out INetSharingConfiguration privateCon)
+ {
+ publicCon = null;
+ privateCon = null;
+
+ try
+ {
+ INetSharingManager netSharingManager = new NetSharingManager();
+
+ foreach (INetConnection connection in netSharingManager.EnumEveryConnection)
+ {
+ INetConnectionProps props = netSharingManager.NetConnectionProps[connection];
+ INetSharingConfiguration sharingConfig = netSharingManager.INetSharingConfigurationForINetConnection[connection];
+ try
+ {
+ if (props.Name == publicName)
+ {
+ publicCon = sharingConfig;
+ }
+ if (props.Name == privateName)
+ {
+ privateCon = sharingConfig;
+ }
+ }
+ catch (Exception)
+ {
+ }
+ }
+ }
+ catch (Exception)
+ {
+ }
+ }
+ }
+}
diff --git a/src/linker.ics/Properties/AssemblyInfo.cs b/src/linker.ics/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..9e8a443a
--- /dev/null
+++ b/src/linker.ics/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 有关程序集的一般信息由以下
+// 控制。更改这些特性值可修改
+// 与程序集关联的信息。
+[assembly: AssemblyTitle("linker.ics")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("linker.ics")]
+[assembly: AssemblyCopyright("Copyright © 2025")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 将 ComVisible 设置为 false 会使此程序集中的类型
+//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
+//请将此类型的 ComVisible 特性设置为 true。
+[assembly: ComVisible(false)]
+
+// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
+[assembly: Guid("bbe91688-7734-4bef-b957-54f8c17f47ce")]
+
+// 程序集的版本信息由下列四个值组成:
+//
+// 主版本
+// 次版本
+// 生成号
+// 修订号
+//
+//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
+//通过使用 "*",如下所示:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/src/linker.ics/linker.ics.csproj b/src/linker.ics/linker.ics.csproj
new file mode 100644
index 00000000..f4e6aea1
--- /dev/null
+++ b/src/linker.ics/linker.ics.csproj
@@ -0,0 +1,47 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {BBE91688-7734-4BEF-B957-54F8C17F47CE}
+ Exe
+ linker.ics
+ linker.ics
+ v3.5
+ 512
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/linker.messenger.tuntap/TuntapPingTransfer.cs b/src/linker.messenger.tuntap/TuntapPingTransfer.cs
index 0f959d9e..e57786c5 100644
--- a/src/linker.messenger.tuntap/TuntapPingTransfer.cs
+++ b/src/linker.messenger.tuntap/TuntapPingTransfer.cs
@@ -37,7 +37,7 @@ namespace linker.messenger.tuntap
{
TimerHelper.SetInterval(async () =>
{
- if (tuntapTransfer.Status == TuntapStatus.Running && lastTicksManager.DiffLessEqual(5000))
+ if (tuntapTransfer.Status == TuntapStatus.Running)
{
await Ping();
}
diff --git a/src/linker.tray.win/default.aproj b/src/linker.tray.win/default.aproj
index 4fde1c84..3836ce3f 100644
--- a/src/linker.tray.win/default.aproj
+++ b/src/linker.tray.win/default.aproj
@@ -1,5 +1,5 @@
-
+
diff --git a/version.txt b/version.txt
index dc62c793..a3af0361 100644
--- a/version.txt
+++ b/version.txt
@@ -1,5 +1,5 @@
v1.6.9
-2025-02-27 15:04:12
+2025-03-01 00:13:17
1. 修复litedb抢锁超时导致客户端登录失败问题
2. 同步信标服务器
3. 其它一些修复优化
\ No newline at end of file