V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MaverickPLS
V2EX  ›  宽带症候群

关于 "家宽不允许开设 Web 服务" 限制的一些解读

  •  2
     
  •   MaverickPLS · 5 天前 · 4892 次点击

    TL;DR: 为避免不必要的麻烦,请不要在家宽的任何端口直接暴露 HTTP(S) 服务;请使用 Tailscale / ZeroTier 。


    最近看到有些朋友因为使用家宽 v4 / v6 在高端口开 HTTP(S) 服务被运营商掐网,要求签保证书不允许架设网站。

    本次以我和广东移动客户经理沟通的内容为基础,简单解读一下该限制到底是如何被执行的。

    叠个甲,这些内容可能并不适用于其它省份和 / 或其它运营商,也仅仅是个人意见,仅供参考。本文也并不涉及 BT / PT / PCDN 相关,仅讨论 "架设 Web 服务" 这一行为。


    首先上一张截取自广东移动政企 "互联网 ICP 备案需要的资料说明" 的,现时常见需备和不需备案的情况:

    image

    这张图里有些术语并没有清晰给出解释,因此以下的内容是根据我和客户经理讨论过后的扩充和规范化解释。

    总结来说,对于服务器任意端口发送 HTTP(S) 请求,能获得表示服务器已完成响应的返回码的情况,那么就需要备案。

    用大白话讲就是,只要使用浏览器 + HTTP(S) 协议请求该 IP / 域名的任意端口,能获得任意并非浏览器自带错误页面的返回码,那么就需要备案;其余情况则不需要备案。

    详细解释:

    • 任何使用 TCP 80 / 8080 / 443 / 8443 的服务 -> 需要备案
    • 发送 HTTP(S) 请求到任意端口,返回 2xx / 3xx / 4xx / 5xx -> 需要备案
    • 如图中所述使用 IP / 域名 连接 App 、POS 机、监控等,但是使用 HTTP(S) 协议 -> 需要备案
    • 返回 Connection Closed (Nginx 444) / HTTP2 Protocol Error / SSL Unrecognized Name Alert -> 不需要备案
    • 不是 HTTP(S) 协议 (如 FTP) -> 不需要备案
    • 通过 HTTP 101 Switch Protocol 转到 Websocket ,用来连接 App ,同时主动关闭任何其余的无效 WebSocket Upgrade 请求,且全程不使用 80 / 8080 / 443 / 8443 端口 -> 不需要备案(这是允许使用 HTTP 协议的唯一例外情况)

    因此,如果以 "只是暴露路由器面板 / 个人网盘" 等理由尝试去绕过该限制的话,最后的结果大概率还是吃封停。

    同时,对于 HTTP(S) 以外的协议,广移方面则几乎不予理会。


    补充解释:

    备注中的 "不需备案情况申请端口开通,需客提供不涉及网页或网站建设承诺书":这个很难办下来,就算批下来也会监控 HTTP(S) 入站使用情况,不建议钻这个空子。

    对于基于 UDP 的 QUIC HTTP/3 ,指南中并没有详细说明,实际上广移政企也没有限制 80 / 443 等端口的 UDP 入站。使用 UDP 入站代替理论上可行,然而考虑到实际使用中 HTTP/3 无法脱离传统的基于 TCP 的协议运行,实际配置成本较高,且可能并不稳定。


    个人的一些小想法:

    假设你需要从外部公网环境访问家中的内容的话,哪怕没有对于建站方面的限制,直接将内部的服务暴露在外部网络都是有很高风险的。既然已经有一个可以直接暴露在公网的端口了,为什么不考虑下异地组网的方案呢?


    (其它想到再补充……)

    49 条回复    2025-05-06 11:30:02 +08:00
    mooyo
        1
    mooyo  
       5 天前
    是的,实践中也是,只管 http/https 协议,其他的基本不管
    xqzr
        2
    xqzr  
       5 天前
    > 获得任意并非浏览器自带错误页面

    返回 4xx 、5xx ,没有 body 也可以得到浏览器自带 4xx/5xx 错误页面

    > HTTP/3 无法脱离传统的基于 TCP 的协议运行

    DNS HTTPS 记录类型; curl --http3-only
    datocp
        3
    datocp  
       5 天前 via Android   ❤️ 4
    网安的观点非常简单,
    不作为,
    不要因为方便了别人,
    麻烦了他们。
    给我停。

    说白了就是政 zi 问题。
    出问题就要找背锅的。
    bluetree2039
        4
    bluetree2039  
       5 天前 via iPhone
    webdav 是 web 吗?
    lovelylain
        5
    lovelylain  
       5 天前 via Android
    @bluetree2039 是的,webdav 是在 web 上传输的 xml
    lns103
        6
    lns103  
       5 天前 via Android
    一个想法,如果把网站的根目录“/”不做任何返回,是不是能规避这个检测
    levelworm
        7
    levelworm  
       5 天前 via Android
    @mooyo 突然想到 Gopher 协议。。。
    kaiveyoung
        8
    kaiveyoung  
       5 天前 via Android   ❤️ 1
    @levelworm 根目录直接 sleep 86400 ,好的,现在就实践
    zhleonix
        9
    zhleonix  
       5 天前
    自己搞个 VPN tunnel
    esrkforward
        10
    esrkforward  
       5 天前 via iPhone
    所以,在外部网络,通过 VPS 上部署的 FRP 来访问家宽端口上的 http/https 有风险吗?
    slowmist
        11
    slowmist  
       5 天前   ❤️ 6
    宽带是实名的 为什么要备案😆
    bluetree2039
        12
    bluetree2039  
       5 天前
    把 家宽当做 frp 服务端应该没问题吧
    strobber16
        13
    strobber16  
       5 天前 via Android
    可以通过 https 记录让浏览器在不访问 tcp 的情况下直接连接 h3 。麻烦的是 chrome 只允许 https 记录指定 443 端口的 h3 。我因为这个原因切换到了基于 ff 的 zen
    kevinhwang
        14
    kevinhwang  
       5 天前
    被发警告的 v 友说一下自己当时的情况吧
    RheatiN
        15
    RheatiN  
       5 天前
    @slowmist #11 俺的域名也实名了,为什么还要备案😂
    PhpBB
        16
    PhpBB  
       5 天前   ❤️ 1
    这两年家宽受到的鞭挞真的给我一种活在申奥前的感觉
    昨天备份了 3 个 G 的文件到网盘,上传速度限死了 64KB,传了十多个小时

    iperf 连下载都限制,反馈几次,打死不承认

    20 块的宽带你说亏本了,可我这接近 300 的宽带,有必要这样吗
    baobao1270
        17
    baobao1270  
       5 天前   ❤️ 1
    按照 MIIT 的规定来讲,其实不管是不是 80/443 ,只要网站是「公开」的,那就需要备案;相反用于 API 、需要登录的内部系统等,如果纯按 MIIT 的说法是不需要备案的

    但是实操上区分是不是「公开网站」太麻烦,所以大多数采用屏蔽 80/443/HTTP 协议特征等「一刀切」的方法,就比如楼主给的这张图里的规则。

    楼主的建议是对的,技术上讲了解运营商的限制方式、作针对性的规避即可。从安全角度上说使用 WireGuard 或者其他内网穿透服务是最佳实践;技术上讲 port knocking 、高位端口的 SSL 双向验证等方式,也是可以的,但是安全性上存在一定的瑕疵。
    baobao1270
        18
    baobao1270  
       5 天前
    顺带一提,主流的这些组网软件都是基于 UDP 的,而主流的应用都是基于 TCP 的,走这些组网软件其实是存在 MTU/MSS 对性能的影响的。当然考虑大多数人 <100Mbps 的上行带宽其实并没有到需要优化 MTU/MSS 的地步。
    MFWT
        19
    MFWT  
       5 天前
    > 发送 HTTP(S) 请求到任意端口,返回 2xx / 3xx / 4xx / 5xx -> 需要备案

    我一直担心的一件事是,比如说,OpenConnect 这种基于 HTTPS (或者说需要 HTTPS 协商)的 VPN ,似乎也不能用了?
    MaverickPLS
        20
    MaverickPLS  
    OP
       5 天前
    @xqzr 没有 Body 的 4xx 5xx 这点确实是我没讲清楚。正文所述 "浏览器自带错误页面" 其实想指代的是服务端没有返回任何有效 HTTP Status Code 的情况。
    MaverickPLS
        21
    MaverickPLS  
    OP
       5 天前
    @xqzr
    @strobber16

    关于直接访问 H3 ,我明白技术上通过 HTTPS 记录确实可行,之前也看到过 v2 上的相关帖子,但是也需要额外配置,不算特别开箱即用。

    以及,我个人有遇到 UDP 443 被偶发阻断的情况,尤其是跨境访问(我人目前在海外)。不知道是不是触发了 GFW 的规则。
    MaverickPLS
        22
    MaverickPLS  
    OP
       5 天前
    @MFWT 如果使用了 HTTPS 来协商,并使用正常的 HTTP Status Code 返回,那么原则上说是的,需要备案。
    MaverickPLS
        23
    MaverickPLS  
    OP
       5 天前
    @esrkforward
    @bluetree2039

    我刚去检查了一下 FRP 支持的传输协议,包括 TCP 、KCP 、QUIC 、Websocket 、WSS 。

    如果是这样的话,不管是在家宽上使用客户端还是服务端,运营商侧都不会理会。

    但是如果你家宽上的 FRP 服务端还额外启用了 HTTP 类型代理的功能,同时开放对应端口,对外监听 HTTP(S),那么则需要备案。
    MaverickPLS
        24
    MaverickPLS  
    OP
       5 天前
    @lns103

    理论上来说,运营商作为中间人,在 HTTPS 入站访问的过程中最多只能得知你的 SNI ,并不知道具体访问的是什么内容。

    但是,他们也可以在得知了 SNI 之后直接撞字典找你的真实 URL 。技术上是可以实现的。
    JensenQian
        25
    JensenQian  
       5 天前
    顺带开 web 不安全
    搞个 wireguard 什么的连回去完事了
    gransh
        26
    gransh  
       5 天前   ❤️ 1
    这算什么,当初我给我 lofter 绑定了一下自己的阿里云域名( lofter 自带的个性域名功能)。
    竟然被打电话要我停止这一行为。我说我域名备案过了,他说博客就是不行。我说我的 lofter 博客是网易提供的,我只是加个域名。
    他们说那也不行,只要有评论功能的博客就不行。
    从此再也不把域名放国内。
    gunner168
        27
    gunner168  
       5 天前
    @bluetree2039 应该算吧,301 跳转只支持 Web ,试了一圈下来只 webdav 协议能访问,smb 或者其他都不行
    morpheuszero2023
        28
    morpheuszero2023  
       5 天前
    你问了,他们肯定告诉你最严格的规定。实际执行的时候不知道是啥样的。
    怕就用 vpn 连回家,不怕就 web 继续用。被封了沟通一下也能解。一天天怕这怕那的,真累。
    kk2syc
        29
    kk2syc  
       5 天前
    @morpheuszero2023 确实,正常使用根本不需要担心。我备案域名( cn )+家宽 81 端口( nginx )直接 ddns 使用已经用超过 10 年了,十多个朋友各种用。只要不是直接访问内容的一点问题没有,加个特定链接 http auth 触发白名单加白的事情。
    JamesR
        30
    JamesR  
       5 天前
    家宽是动态 IP 的,架设网站有多大意义?都是 DDNS ?
    域名放国外,直接开个 FRP ,全过程加密,把端口转移到 VPS 服务器上。
    NoOneNoBody
        31
    NoOneNoBody  
       5 天前
    不是,你没有最终解释权,你解读没有用啊,最多只能算“理解”
    gordengan
        32
    gordengan  
       5 天前
    通过反代加上密码 path 路径呢?
    比如: https://myabc.cn:8888/izki4jeo 可以登录
    然后让 https://myabc.cn:8888/ 返回浏览器自带错误页面(如果可以实现)
    txydhr
        33
    txydhr  
       5 天前
    我觉得这个服务不是指的技术层面的服务,而是法律层面的服务,80/443 等需要备案
    digimoon
        34
    digimoon  
       5 天前
    isp 真的只靠 80/443 端口来判断?这就和杀毒软件只靠文件名来判断病毒差不多水平,至少在我知道的广电用非标端口一样被干
    wuyadaxian
        35
    wuyadaxian  
       5 天前
    直接 nginx default 444 完事。
    summerwar
        36
    summerwar  
       5 天前
    cloudflare tunnel 直接代理下就可以了
    yxmyxmyyy
        37
    yxmyxmyyy  
       5 天前
    反正 ipv6 不会检查
    nicefrp
        38
    nicefrp  
       5 天前
    @esrkforward
    @bluetree2039
    @JamesR FRP 内网穿透出来的服务不会被封,这么干多年了
    JamesR
        39
    JamesR  
       4 天前
    @nicefrp #38 不会,设置过密码了,全程加密的,效果就是等效于把本地端口挪到 VPS 上去了。
    mrleft
        40
    mrleft  
       4 天前
    如果搞动态 ip 验证,会不会被发现?
    vfxx
        41
    vfxx  
       4 天前
    这些年备案政策一直在收紧,看阿里云腾讯云的备案要求就知道了,这是政策层面的要求,运营商说了不算,多一事不如少一事,搞不好可能还会被重罚。大趋势很难改变,怀念当时随便一个域名+空间就能做网站的年代。
    kkwa56188
        42
    kkwa56188  
       4 天前   ❤️ 3
    要领会立法精神,
    现在即使找到规定中的漏洞, 人家立法精神得不到落实, 将来也会被堵的. 何况现在你都没有解释权
    mytsing520
        43
    mytsing520  
       4 天前
    核心逻辑是:家宽不允许备案,而使用国内 IP 地址面向互联网提供 Web 服务的必须先完成备案。

    运营商的宽带产品分类管控有如下几个大类:
    1.普通宽带:含家宽和普通商业宽带,区别有且仅有;此类产品不得用于商业目的,分配动态 IP 地址。运营商向管局报备该类产品相关的 IP 地址为不可备案。
    2.专线:登记地点通常为非居住地址,此类产品分配固定 IP ;如需备案,在运营商完成备案接入。
    3.IDC:运营商让渡 IP 地址给持证 ISP 公司,并让渡一批 IP 地址的备案接入权限给这些公司,由这些公司通过自有的备案管控系统提交开通端口给运营商。

    能不能备案其实就是看你当前使用的 IP 地址归属于上面哪个大类,不同大类的 IP 地址严格区分。
    mytsing520
        44
    mytsing520  
       4 天前
    @mytsing520
    43#

    发出来之前没细读,补充一下
    1.普通宽带:含家宽和普通商业宽带,区别有且仅有用户登记的地址;此类产品不得用于商业目的,分配动态 IP 地址。运营商向管局报备该类产品相关的 IP 地址为不可备案。
    yeh
        45
    yeh  
       4 天前
    楼里总有要杠为何要开 http 服务的

    其实不是想开,但是碰到某些 app ,比如群晖这种 drive 和 photo 应用必须要开 https 端口的

    还有人说那你可以先 wireguard 啥的回家啊

    你说的对,但是给老人手机上装🪜app 并及时帮他们更新并教会他们去用这个难度???……


    这个要求本身就是奇葩。
    tril
        46
    tril  
       3 天前
    @yeh iOS 的 VPN 有“按需启动”,而且 VPN 的配置多少年都不用改一次,基本无感。安卓不知道有没有类似功能。
    redbeanzzZ
        47
    redbeanzzZ  
       3 天前 via Android
    @tril 可以的,手机装个 openvpn 就好了,就和 ios 一样一个开关的事。以前我一直群晖开 20000 端口,没出过问题,后来折腾路由重新开成了 5000 ,没有多久联通直接来我家找我签承诺书了,他肯定是会扫你端口的,只是说高位端口可能运气好没被扫到而已,现在我都用 vpn 回家。

    如果实在实在想外网直接访问,可以搞个阿里云服务器 frp 出去,速率也能有保证,我自己阿里云服务器上也挂了个 frp 当做备用
    Zeaxion
        48
    Zeaxion  
       10 小时 45 分钟前
    这情况,我去年就说过啦
    pdone
        49
    pdone  
       10 小时 9 分钟前
    .cc 域名,动态解析到 ipv6 ,docker 部署了十几个服务,都用的二级域名,大部分使用的 443 端口,目前使用了 3 年多了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2959 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 13:40 · PVG 21:40 · LAX 06:40 · JFK 09:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.