diff --git a/docs/desc.md b/docs/desc.md
index ee53ae2..3c29aca 100644
--- a/docs/desc.md
+++ b/docs/desc.md
@@ -1,9 +1,8 @@
# 实现原理
-基于tls链接,protobuf进行数据传输,下面举例在办公网络穿透到家庭网络,
-并通过rdp进行连接家庭网络下的某台windows设备
+基于tls链接,protobuf进行数据传输,下面举例远程连接服务器集群内的某台主机
-
+
server端配置(10.0.1.1):
@@ -17,9 +16,9 @@ server端配置(10.0.1.1):
key: /dir/to/tls/key/file # tls密钥
crt: /dir/to/tls/crt/file # tls证书
-家庭网络client配置(192.168.1.100):
+服务器client配置(192.168.1.100):
- id: home # 客户端ID
+ id: server # 客户端ID
server: 10.0.1.1:6154 # 服务器地址
secret: 0123456789 # 预共享密钥,必须与server端相同,否则握手失败
log:
@@ -38,27 +37,24 @@ server端配置(10.0.1.1):
rotate: 7 # 保留数量
rules: # 远端rule列表可为空
- name: rdp # 链路名称
- target: home # 目标客户端ID
- type: tcp # 连接类型tcp或udp
+ target: server # 目标客户端ID
+ type: shell # 连接类型tcp或udp
local_addr: 0.0.0.0 # 本地监听地址
local_port: 3389 # 本地监听端口号
- remote_addr: 192.168.1.101 # 目标客户端连接地址
- remote_port: 3389 # 目标客户端连接端口号
工作流程如下:
1. 办公网络与家庭网络中的np-cli创建tls连接到np-svr
2. np-cli服务发送握手包,并将配置文件中的secret字段进行md5哈希
3. np-svr等待握手报文,若等待超时则为非法链接,直接断开
-4. 办公网络客户机创建新连接到172.16.1.100的3389端口
-5. 172.16.1.100上的np-cli接收到新请求后创建新的link并生成链接id
-6. 172.16.1.100上的np-cli发送connect_request消息,告知连接类型和链接目标地址和端口
-7. np-svr转发connect_request消息至192.168.1.100上的np-cli
-8. 192.168.1.100上的np-cli接收到connect_request消息,根据请求信息创建链接到目标地址和端口
-9. 192.168.1.100上的np-cli根据链接创建结果返回connect_response消息
-10. np-svr转发connect_response消息至172.16.1.100上的np-cli
-11. 172.168.1.100上的np-cli接收到connect_response消息后根据是否成功来决定是否需要断开rdp客户端链接
-12. 链路打通,两端各自发送data消息到对应链路
+4. 用户打开办公网络主机172.16.1.100上的终端页面,并连接到服务器集群中的主机server
+5. 172.16.1.100上的np-cli发送connect_request消息,并将连接类型设置为shell
+6. np-svr转发connect_request消息至192.168.1.100上的np-cli
+7. 192.168.1.100上的np-cli接收到connect_request消息,创建/bin/bash进程
+8. 192.168.1.100上的np-cli根据链接创建结果返回connect_response消息
+9. np-svr转发connect_response消息至172.16.1.100上的np-cli
+10. 172.168.1.100上的np-cli接收connect_response消息
+11. 开始转发网页上的输入输出内容
## 软件架构
diff --git a/docs/imgs/example.drawio b/docs/imgs/example.drawio
index 5a25734..53f172b 100644
--- a/docs/imgs/example.drawio
+++ b/docs/imgs/example.drawio
@@ -1,158 +1 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+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
\ No newline at end of file
diff --git a/docs/imgs/example.jpg b/docs/imgs/example.jpg
index 60bb9e0..d36714d 100644
Binary files a/docs/imgs/example.jpg and b/docs/imgs/example.jpg differ