Nginx 的 444 命令(强制切断 TCP 连接),用于对抗运营商检测家宽开服务是否有帮助?

276 天前
 MFWT

背景

我知道 VPN ,我也在用 VPN ,VPN 确实很方便,连上之后直接访问内网地址就可以获取到各项服务

但是,能不能再直接一点呢,比如临时给朋友开个 Web 页面传个文件什么的,用 VPN 还得教他半天,如果能直接浏览器打开那确实是挺好的

考虑到有朋友说路由器管理页面被主动探测到,又有朋友说 ocserv 运行几年毛事没有,也有朋友说裸 TLS 连接(内部没有 HTTP 协议,浏览器无法直接访问)也没啥问题,猜测运营商对于『家宽开 Web 服务』(此处仅讨论非标端口,80/443 就不必说了)大概可能会有这几种:

  1. 对于裸 TLS 连接拦截较少
  2. 模拟浏览器访问(比如 curl ),看看有没有内容(比如 HTTP 头)返回
  3. 同 1 ,但是判定更严谨,检查返回码是不是 200 (或者其他方式来判定是不是可以直接访问)

测试

以下测试都假定已有可用的 TLS 环境(毕竟直接裸 HTTP 连接的话,是个人都知道你在干啥)

nginx 对于拒绝非合法访问,有个选项是 deny all ,但是实测 deny all 也会返回 HTTP 403 ,在某些运营商那里可能会被判定为情况 2 。因此我测试了一下 return 444 ,对于非白名单路径(实例是 private_path_as_a_token )指示 nginx 直接切断连接

相关配置如下

  location / {
    keepalive_timeout 0;
    return 444;
  }
  
  location /private_path_as_a_token {
    root /home/html;
    index index.html;
  }

测试发现,在访问非白名单路径的时候(比如此时的根目录)确实会直接切断 TCP 连接,站在浏览器的角度看就是,这并非一个 HTTP 服务器:


* Trying 10.0.0.233:8000...
* Connected to 10.0.0.233 (10.0.0.233) port 8000 (#0)
> GET / HTTP/1.1
> Host: 10.0.0.233:8000
> User-Agent: curl/8.0.1
> Accept: */*

>
* Empty reply from server
* Closing connection 0
curl: (52) Empty reply from server

现在的问题是,如果我通过这个方式,在公网 IP (我的是公网 v6 )上开放 HTTPS 服务,是否能规避一定程度上的运营商主动探测?

望各位朋友不吝赐教

3322 次点击
所在节点    宽带症候群
33 条回复
LinePro
276 天前
@starryloki #18

运营商不需要探测到合法路径,只需要知道开的是 HTTP(S) 服务就行,也属于题目中所说的家宽开服务了。
leoking6
276 天前
@LinePro 您这个是对的,444 是低版本无奈之举,ssl_reject_handshake 才是正道
lianyue
276 天前
走非 80 8080 443 8443 都会被检测到?

要不做个 ui 伪装成 监控 web 页面 走非上面的端口 比如 走 8000
需要登录才能继续操作
oovveeaarr
276 天前
帮助不大,都是对流量做 DPI 的,没必要主动探测。
BigShot404
276 天前
@lianyue #23 能,连你用哪个端口,请求的什么 URL ,一清二楚。
xqzr
276 天前
配合 reset_timedout_connection on; 可以重置连接
MFWT
276 天前
@lianyue 理论上运营商有这个能力做 DPI ,就看他们愿不愿意投入成本了,而且之前也有路由器/NAS 管理页面透出去而被查的,实属冤枉,但是运营商就是这么干的
lianyue
275 天前
@MFWT 我想的是 伪装成监控, 就算被封了也可以 找借口说这是 监控 页面,走 https 海康威视 的 ui 被查了也有借口
lianyue
275 天前
我以前申请公网 ip 也是 有监控 这个借口, 到现在 公网 ip 都还在
yulihao
275 天前
@MFWT 广东移动不查吧,我广移 IPV6 挂 NAS 一个 web 页面(非标),套群晖 ddns 域名用这么多年了也没见上门
yulihao
275 天前
@yulihao 无论是 tls 还是不加密都没被查过
MFWT
274 天前
@yulihao

小心驶得万年船呢,不查的话最好,查的话就尽量减少特征暴露了
Terminl
273 天前
不一定要阻断。也可以返回空信息。如果是自己用验证 UA 就可以了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/966348

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX