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

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

  •  2
     
  •   MaverickPLS · 46 天前 · 6542 次点击
    这是一个创建于 46 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 的协议运行,实际配置成本较高,且可能并不稳定。


    个人的一些小想法:

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


    (其它想到再补充……)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

    如果实在实在想外网直接访问,可以搞个阿里云服务器 frp 出去,速率也能有保证,我自己阿里云服务器上也挂了个 frp 当做备用
    Zeaxion
        48
    Zeaxion  
       41 天前
    这情况,我去年就说过啦
    pdone
        49
    pdone  
       41 天前
    .cc 域名,动态解析到 ipv6 ,docker 部署了十几个服务,都用的二级域名,大部分使用的 443 端口,目前使用了 3 年多了
    UEVdugfw
        50
    UEVdugfw  
       39 天前 via iPhone
    请教,wireguard 异地组网应该也行吧
    xhcnb
        51
    xhcnb  
       39 天前
    申请一个域名, 全部 https, nginx 配置为 ip 地址直接访问返回 444, 必须使用正确的域名访问才行, 这样扫描器就不会扫到
    zhaoahui
        52
    zhaoahui  
       30 天前
    @UEVdugfw WireGuard 没有考虑混淆 特征很明显 UDP 阻断的很快 常用端口更是秒封
    zhaoahui
        53
    zhaoahui  
       30 天前
    @UEVdugfw DDNS ipv6+反代 没被封过
    也可以试试 cf 的隧道
    Miku233
        54
    Miku233  
       26 天前
    有个问题,v6 也会查这么严吗,反正 v4 我可以保证没有 HTTP(S)端口暴露
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1047 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 18:39 · PVG 02:39 · LAX 11:39 · JFK 14:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.