diff --git a/.gitignore b/.gitignore
index 2cd48b4..c643516 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,7 @@
bin
obj
.vs
+/FastTunnel.Client/*.user
+/FastTunnel.Server/*.user
+/FastTunnel.Client/Properties/PublishProfiles/*.user
+/FastTunnel.Server/Properties/PublishProfiles/*.user
diff --git a/FastTunnel.Core/Models/NewSSHRequest.cs b/FastTunnel.Core/Models/NewSSHRequest.cs
new file mode 100644
index 0000000..59fd096
--- /dev/null
+++ b/FastTunnel.Core/Models/NewSSHRequest.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace FastTunnel.Core.Models
+{
+ public class NewSSHRequest
+ {
+ public string MsgId { get; set; }
+
+ public SSHConfig SSHConfig { get; set; }
+ }
+}
diff --git a/FastTunnel.Core/Models/Protocol.cs b/FastTunnel.Core/Models/Protocol.cs
new file mode 100644
index 0000000..bdcc5c6
--- /dev/null
+++ b/FastTunnel.Core/Models/Protocol.cs
@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace FastTunnel.Core.Models
+{
+ public enum Protocol
+ {
+ TCP = 0,
+ }
+}
diff --git a/FastTunnel.Core/Models/SSHConfig.cs b/FastTunnel.Core/Models/SSHConfig.cs
new file mode 100644
index 0000000..fff4ce6
--- /dev/null
+++ b/FastTunnel.Core/Models/SSHConfig.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace FastTunnel.Core.Models
+{
+ public class SSHConfig
+ {
+ ///
+ /// 协议
+ ///
+ public Protocol Protocol { get; set; }
+
+ ///
+ /// 局域网IP地址
+ ///
+ public string LocalIp { get; set; }
+
+ ///
+ /// 局域网ssh端口号
+ ///
+ public int LocalPort { get; set; } = 22;
+
+ ///
+ /// 服务端监听的端口号 1~65535
+ ///
+ public int RemotePort { get; set; }
+ }
+}
diff --git a/FastTunnel.Core/Models/SSHHandlerArg.cs b/FastTunnel.Core/Models/SSHHandlerArg.cs
new file mode 100644
index 0000000..564f624
--- /dev/null
+++ b/FastTunnel.Core/Models/SSHHandlerArg.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Net.Sockets;
+using System.Text;
+
+namespace FastTunnel.Core.Models
+{
+ public class SSHHandlerArg
+ {
+ public SSHConfig SSHConfig { get; internal set; }
+ public Socket LocalClient { get; internal set; }
+ }
+}
diff --git a/FastTunnel.Core/Models/SSHInfo.cs b/FastTunnel.Core/Models/SSHInfo.cs
new file mode 100644
index 0000000..016604b
--- /dev/null
+++ b/FastTunnel.Core/Models/SSHInfo.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Net.Sockets;
+using System.Text;
+
+namespace FastTunnel.Core.Models
+{
+ public class SSHInfo
+ {
+ public Socket Socket { get; set; }
+
+ public SSHConfig SSHConfig { get; set; }
+
+ public Listener Listener { get; set; }
+ }
+}
diff --git a/FastTunnel.Server/Properties/PublishProfiles/FolderProfile.pubxml b/FastTunnel.Server/Properties/PublishProfiles/FolderProfile.pubxml
new file mode 100644
index 0000000..47d90a6
--- /dev/null
+++ b/FastTunnel.Server/Properties/PublishProfiles/FolderProfile.pubxml
@@ -0,0 +1,14 @@
+
+
+
+
+ FileSystem
+ Release
+ Any CPU
+ netcoreapp3.1
+ bin\Release\netcoreapp3.1\publish\
+ false
+
+
\ No newline at end of file