@@ -66,6 +66,8 @@ func LinkTunnel(w http.ResponseWriter, r *http.Request) {
66
66
cstpBaseMtu := r .Header .Get ("X-CSTP-Base-MTU" )
67
67
masterSecret := r .Header .Get ("X-DTLS-Master-Secret" )
68
68
localIp := r .Header .Get ("X-Cstp-Local-Address-Ip4" )
69
+ // 出口ip
70
+ exportIp4 := r .Header .Get ("X-Cstp-Remote-Address-Ip4" )
69
71
mobile := r .Header .Get ("X-Cstp-License" )
70
72
71
73
cSess .SetMtu (cstpMtu )
@@ -96,14 +98,6 @@ func LinkTunnel(w http.ResponseWriter, r *http.Request) {
96
98
dtlsCiphersuite := checkDtls12Ciphersuite (r .Header .Get ("X-Dtls12-Ciphersuite" ))
97
99
base .Trace ("dtlsCiphersuite" , dtlsCiphersuite )
98
100
99
- // 压缩
100
- if cmpName , ok := cSess .SetPickCmp ("cstp" , r .Header .Get ("X-Cstp-Accept-Encoding" )); ok {
101
- HttpSetHeader (w , "X-CSTP-Content-Encoding" , cmpName )
102
- }
103
- if cmpName , ok := cSess .SetPickCmp ("dtls" , r .Header .Get ("X-Dtls-Accept-Encoding" )); ok {
104
- HttpSetHeader (w , "X-DTLS-Content-Encoding" , cmpName )
105
- }
106
-
107
101
// 返回客户端数据
108
102
HttpSetHeader (w , "Server" , fmt .Sprintf ("%s %s" , base .APP_NAME , base .APP_VER ))
109
103
HttpSetHeader (w , "X-CSTP-Version" , "1" )
@@ -113,11 +107,19 @@ func LinkTunnel(w http.ResponseWriter, r *http.Request) {
113
107
HttpSetHeader (w , "X-CSTP-Netmask" , sessdata .IpPool .Ipv4Mask .String ()) // 子网掩码
114
108
HttpSetHeader (w , "X-CSTP-Hostname" , hn ) // 机器名称
115
109
HttpSetHeader (w , "X-CSTP-Base-MTU" , cstpBaseMtu )
116
- // 要发布的默认域
110
+ // 客户端dns的默认搜索域
117
111
if base .Cfg .DefaultDomain != "" {
118
112
HttpSetHeader (w , "X-CSTP-Default-Domain" , base .Cfg .DefaultDomain )
119
113
}
120
114
115
+ // 压缩
116
+ if cmpName , ok := cSess .SetPickCmp ("cstp" , r .Header .Get ("X-Cstp-Accept-Encoding" )); ok {
117
+ HttpSetHeader (w , "X-CSTP-Content-Encoding" , cmpName )
118
+ }
119
+ if cmpName , ok := cSess .SetPickCmp ("dtls" , r .Header .Get ("X-Dtls-Accept-Encoding" )); ok {
120
+ HttpSetHeader (w , "X-DTLS-Content-Encoding" , cmpName )
121
+ }
122
+
121
123
// 设置用户策略
122
124
SetUserPolicy (cSess .Username , cSess .Group )
123
125
@@ -136,10 +138,14 @@ func LinkTunnel(w http.ResponseWriter, r *http.Request) {
136
138
}
137
139
HttpAddHeader (w , "X-CSTP-Split-Include" , v .IpMask )
138
140
}
139
- // 不允许的路由 X-Cstp-Remote-Address-Ip4:
141
+ // 不允许的路由
140
142
for _ , v := range cSess .Group .RouteExclude {
141
143
HttpAddHeader (w , "X-CSTP-Split-Exclude" , v .IpMask )
142
144
}
145
+ // 排除出口ip路由(出口ip不加密传输)
146
+ if base .Cfg .ExcludeExportIp && exportIp4 != "" {
147
+ HttpAddHeader (w , "X-CSTP-Split-Exclude" , exportIp4 + "/255.255.255.255" )
148
+ }
143
149
144
150
HttpSetHeader (w , "X-CSTP-Lease-Duration" , "1209600" ) // ip地址租期
145
151
HttpSetHeader (w , "X-CSTP-Session-Timeout" , "none" )
0 commit comments