-
Notifications
You must be signed in to change notification settings - Fork 0
/
HttpProxy.drawio
244 lines (244 loc) · 22.7 KB
/
HttpProxy.drawio
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
<mxfile host="app.diagrams.net" modified="2023-05-08T01:48:44.861Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36" etag="lT2lVxgPYRMgbYdBclN9" version="21.2.9" type="github">
<diagram name="Page-1" id="8XETg-70EDmgeIA6E9z_">
<mxGraphModel dx="968" dy="692" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="nLy7EduG_a8Vsz1NF6yK-32" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=default;dashed=1;" parent="1" vertex="1">
<mxGeometry x="620" y="780" width="160" height="180" as="geometry" />
</mxCell>
<mxCell id="nLy7EduG_a8Vsz1NF6yK-30" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=default;dashed=1;" parent="1" vertex="1">
<mxGeometry x="20" y="780" width="400" height="180" as="geometry" />
</mxCell>
<mxCell id="nLy7EduG_a8Vsz1NF6yK-4" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=none;shadow=1;" parent="1" vertex="1">
<mxGeometry x="290" y="1011" width="490" height="330" as="geometry" />
</mxCell>
<mxCell id="nLy7EduG_a8Vsz1NF6yK-5" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=none;shadow=1;" parent="1" vertex="1">
<mxGeometry x="310" y="1031" width="400" height="250" as="geometry" />
</mxCell>
<mxCell id="nLy7EduG_a8Vsz1NF6yK-2" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=none;shadow=1;" parent="1" vertex="1">
<mxGeometry x="335" y="1051" width="295" height="180" as="geometry" />
</mxCell>
<mxCell id="nLy7EduG_a8Vsz1NF6yK-3" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=none;shadow=1;" parent="1" vertex="1">
<mxGeometry x="355" y="1071" width="210" height="120" as="geometry" />
</mxCell>
<mxCell id="RhbkSSskdxaJuLNrv9G9-12" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;dashed=1;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="215" y="170" width="330" height="140" as="geometry" />
</mxCell>
<mxCell id="RhbkSSskdxaJuLNrv9G9-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;" parent="1" source="RhbkSSskdxaJuLNrv9G9-1" target="RhbkSSskdxaJuLNrv9G9-2" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="RhbkSSskdxaJuLNrv9G9-1" value="Client" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="40" y="200" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="RhbkSSskdxaJuLNrv9G9-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;" parent="1" source="RhbkSSskdxaJuLNrv9G9-2" target="RhbkSSskdxaJuLNrv9G9-1" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="RhbkSSskdxaJuLNrv9G9-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;" parent="1" source="RhbkSSskdxaJuLNrv9G9-2" target="RhbkSSskdxaJuLNrv9G9-3" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="RhbkSSskdxaJuLNrv9G9-2" value="Proxy" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
<mxGeometry x="320" y="200" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="RhbkSSskdxaJuLNrv9G9-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;" parent="1" source="RhbkSSskdxaJuLNrv9G9-3" target="RhbkSSskdxaJuLNrv9G9-2" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="RhbkSSskdxaJuLNrv9G9-3" value="Server" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="600" y="200" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="RhbkSSskdxaJuLNrv9G9-8" value="client_in" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="242" y="190" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="RhbkSSskdxaJuLNrv9G9-9" value="client_out" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="242" y="260" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="RhbkSSskdxaJuLNrv9G9-10" value="server_out" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="460" y="190" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="RhbkSSskdxaJuLNrv9G9-11" value="server_in" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="460" y="260" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="eDuGHIDuK_WC9twe6rPm-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="eDuGHIDuK_WC9twe6rPm-1" target="eDuGHIDuK_WC9twe6rPm-3" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="eDuGHIDuK_WC9twe6rPm-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;" parent="1" source="eDuGHIDuK_WC9twe6rPm-1" target="eDuGHIDuK_WC9twe6rPm-2" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="80" y="510" />
<mxPoint x="80" y="670" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="eDuGHIDuK_WC9twe6rPm-1" value="HostA@Home" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="122" y="480" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="eDuGHIDuK_WC9twe6rPm-2" value="HostB@Company<br><b>run web_server</b>" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="122" y="640" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="eDuGHIDuK_WC9twe6rPm-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="eDuGHIDuK_WC9twe6rPm-3" target="eDuGHIDuK_WC9twe6rPm-2" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="eDuGHIDuK_WC9twe6rPm-3" value="HostC@Remote<br><b>has public IP</b>" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="480" y="560" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="eDuGHIDuK_WC9twe6rPm-6" value="[<b>LocalForward</b>] HostA:3000 --&gt; HostC:2000" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="270" y="480" width="250" height="30" as="geometry" />
</mxCell>
<mxCell id="eDuGHIDuK_WC9twe6rPm-7" value="[<b>RemoteForward</b>] HostC:2000 --&gt; HostB:3000" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="260" y="670" width="280" height="30" as="geometry" />
</mxCell>
<mxCell id="eDuGHIDuK_WC9twe6rPm-9" value="" style="shape=cross;whiteSpace=wrap;html=1;rotation=45;fillColor=#FF0000;" parent="1" vertex="1">
<mxGeometry x="41" y="550" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="nLy7EduG_a8Vsz1NF6yK-1" value="真实请求" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d80073;strokeColor=#A50040;shadow=1;glass=0;fontColor=#ffffff;" parent="1" vertex="1">
<mxGeometry x="375" y="1091" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="nLy7EduG_a8Vsz1NF6yK-6" value="VLESS" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="495" y="1151" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="nLy7EduG_a8Vsz1NF6yK-7" value="WebSocket" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="560" y="1196" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="nLy7EduG_a8Vsz1NF6yK-8" value="TLS" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="631" y="1242" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="nLy7EduG_a8Vsz1NF6yK-9" value="TCP" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="700" y="1301" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="nLy7EduG_a8Vsz1NF6yK-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" parent="1" source="nLy7EduG_a8Vsz1NF6yK-10" target="nLy7EduG_a8Vsz1NF6yK-11" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nLy7EduG_a8Vsz1NF6yK-10" value="浏览器" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="40" y="840" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="nLy7EduG_a8Vsz1NF6yK-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endArrow=none;endFill=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;startArrow=classic;startFill=1;" parent="1" source="nLy7EduG_a8Vsz1NF6yK-11" target="nLy7EduG_a8Vsz1NF6yK-23" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="420" y="870" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="nLy7EduG_a8Vsz1NF6yK-11" value="V2Ray Client" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="280" y="840" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="nLy7EduG_a8Vsz1NF6yK-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;startArrow=classic;startFill=1;" parent="1" source="nLy7EduG_a8Vsz1NF6yK-12" target="nLy7EduG_a8Vsz1NF6yK-13" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nLy7EduG_a8Vsz1NF6yK-12" value="V2Ray Server" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="640" y="840" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="nLy7EduG_a8Vsz1NF6yK-13" value="目标服务器" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="880" y="840" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="nLy7EduG_a8Vsz1NF6yK-25" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="nLy7EduG_a8Vsz1NF6yK-23" target="nLy7EduG_a8Vsz1NF6yK-12" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nLy7EduG_a8Vsz1NF6yK-23" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.direct_data;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="430" y="850" width="180" height="40" as="geometry" />
</mxCell>
<mxCell id="nLy7EduG_a8Vsz1NF6yK-26" value="安全隧道" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="485" y="855" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="nLy7EduG_a8Vsz1NF6yK-27" value="真实请求" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="190" y="840" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="nLy7EduG_a8Vsz1NF6yK-28" value="真实请求" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="790" y="840" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="nLy7EduG_a8Vsz1NF6yK-29" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;dashed=1;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="515" y="920" as="sourcePoint" />
<mxPoint x="515" y="1000" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="nLy7EduG_a8Vsz1NF6yK-31" value="Local Machine" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="30" y="790" width="90" height="30" as="geometry" />
</mxCell>
<mxCell id="nLy7EduG_a8Vsz1NF6yK-33" value="VPS" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="620" y="780" width="50" height="30" as="geometry" />
</mxCell>
<mxCell id="3WjPgzuBG_YjzJ2R6KPt-1" value="<font color="#808080">TCP连接1</font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="190" y="870" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="3WjPgzuBG_YjzJ2R6KPt-2" value="<font color="#808080">TCP连接2</font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="486" y="887" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="3WjPgzuBG_YjzJ2R6KPt-3" value="<font color="#808080">TCP连接3</font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="790" y="870" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="nfXhNy4vDQ093EoNlY_l-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" edge="1" parent="1" source="nfXhNy4vDQ093EoNlY_l-2" target="nfXhNy4vDQ093EoNlY_l-4">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nfXhNy4vDQ093EoNlY_l-2" value="浏览器<br><span style="font-weight: normal;"><font style="font-size: 10px;">(配置了 SOCKS 代理)</font></span>" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="77" y="1480" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="nfXhNy4vDQ093EoNlY_l-4" value="SOCKS<br>代理服务器" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="317" y="1480" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="nfXhNy4vDQ093EoNlY_l-5" value="SOCKS 协议" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="220.5" y="1480" width="73" height="30" as="geometry" />
</mxCell>
<mxCell id="nfXhNy4vDQ093EoNlY_l-6" value="<font color="#808080">TCP连接1</font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="227" y="1510" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="nfXhNy4vDQ093EoNlY_l-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" edge="1" parent="1" target="nfXhNy4vDQ093EoNlY_l-8" source="nfXhNy4vDQ093EoNlY_l-4">
<mxGeometry relative="1" as="geometry">
<mxPoint x="437" y="1510" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="nfXhNy4vDQ093EoNlY_l-8" value="目标服务器" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="557" y="1480" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="nfXhNy4vDQ093EoNlY_l-9" value="HTTP 协议" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="467" y="1480" width="63" height="30" as="geometry" />
</mxCell>
<mxCell id="nfXhNy4vDQ093EoNlY_l-10" value="<font color="#808080">TCP连接2</font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="467" y="1510" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="nfXhNy4vDQ093EoNlY_l-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" edge="1" parent="1" source="nfXhNy4vDQ093EoNlY_l-13" target="nfXhNy4vDQ093EoNlY_l-14">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nfXhNy4vDQ093EoNlY_l-13" value="浏览器" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="91" y="1650" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="nfXhNy4vDQ093EoNlY_l-14" value="虚拟网卡<br>(VPN客户端建立)" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="331" y="1650" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="nfXhNy4vDQ093EoNlY_l-15" value="IP包" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="234.5" y="1650" width="73" height="30" as="geometry" />
</mxCell>
<mxCell id="nfXhNy4vDQ093EoNlY_l-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" edge="1" parent="1" source="nfXhNy4vDQ093EoNlY_l-14" target="nfXhNy4vDQ093EoNlY_l-18">
<mxGeometry relative="1" as="geometry">
<mxPoint x="451" y="1680" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="nfXhNy4vDQ093EoNlY_l-18" value="虚拟网卡<br style="border-color: var(--border-color);">(VPN服务端建立)" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="571" y="1650" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="nfXhNy4vDQ093EoNlY_l-19" value="VPN 协议" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="481" y="1650" width="63" height="30" as="geometry" />
</mxCell>
<mxCell id="nfXhNy4vDQ093EoNlY_l-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" edge="1" parent="1" target="nfXhNy4vDQ093EoNlY_l-22" source="nfXhNy4vDQ093EoNlY_l-18">
<mxGeometry relative="1" as="geometry">
<mxPoint x="691" y="1680" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="nfXhNy4vDQ093EoNlY_l-22" value="真正网卡<br style="border-color: var(--border-color);">(VPN服务端)" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="811" y="1650" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="nfXhNy4vDQ093EoNlY_l-23" value="IP包转发" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="721" y="1650" width="63" height="30" as="geometry" />
</mxCell>
<mxCell id="nfXhNy4vDQ093EoNlY_l-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" edge="1" parent="1" target="nfXhNy4vDQ093EoNlY_l-25">
<mxGeometry relative="1" as="geometry">
<mxPoint x="931" y="1680" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="nfXhNy4vDQ093EoNlY_l-25" value="目标服务器" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="1051" y="1650" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="nfXhNy4vDQ093EoNlY_l-26" value="IP包" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="961" y="1650" width="63" height="30" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>