如何充分利用家宽、通过非大陆服务器中转对外提供 web 服务。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
8023
V2EX    奇思妙想

如何充分利用家宽、通过非大陆服务器中转对外提供 web 服务。

  •  
  •   8023 2021-02-14 17:50:10 +08:00 7393 次点击
    这是一个创建于 1700 天前的主题,其中的信息可能已经有所发展或是发生改变。

    众所周知现在家宽是禁用 80 、443 、8080 等常用端口的,如果想要建站则需要租用昂贵的专线或是云服务器,更可怕的是需要进行 ICP 备案。我个人非常反感备案制度,又不想违法,所以宁愿多牺牲一部分时间和稳定性也不会去备案,更不会找别人代备(请不要回复相似提议)。我家的带宽比较大,联通电信移动三网接入,下载总带宽 1.2G 以上,上传带宽总计 250M 以上,且家里有性能过剩的服务器、数通设备,基础设施完全可以撑起所有网站的性能需求。

    我目前的解决方案是租用韩国、日本、台湾等与大陆临近地区的服务器。但网络质量越来越差、优质带宽的费用越来越高,我就想找一些冷门的解决方案。

    • 反代方案(网上查阅资料最多人建议的方案):将网站搭建在自己家,此时可以通过非标端口访问。在上述地区买一台大带宽低配置的服务器进行反向代理。此时可以省去租用高性能服务器的钱,而且过程对用户不可见。但流量是由我家转发到非大陆地区然后再传输回来,延迟会变高,且需要更大流量的主机,感觉没有折腾的必要。

    • 重定向方案:将网站搭建在自己家,此时可以通过非标端口访问。在上述地区买极低配置的服务器,将所有请求重定向到自己家的服务器(非标端口)。此时可以省去绝大部分租用服务器的钱,但用户访问时浏览器则会显示跳转后的、使用非标准端口的 url 。且不得不使用域名前缀对两台服务器进行区分,对用户来说不算友好。

    • 对象存储方案:将网站搭建在非大陆服务器上,在自己家搭建对象存储,在网站程序中调用对象存储中的数据。此时只有网站中少量请求需要访问非大陆服务器,其余内容(图片、附件等)则可以直接请求我家里的服务器,可以减轻服务器带宽花销(带宽费用比计算费用高得多),提高访问速度。但这个方法需要修改网站程序源代码,对于一些拿不到源码的服务比较麻烦,目前想到的是在网页中插入一段 js,然后将原地址正则替换成家里的服务器地址。

    • iframe 方案:将网站搭建在自己家,此时可以通过非标端口访问。在非大陆地区买极低配置的服务器,服务器中只放一个 html 页面,页面中使用 iframe 访问位于家中的非标端口 web 服务。此时服务器只需付出极少带宽,用户访问时均直连我家,访问速度和迁移难度都非常不错。但也有一些细节问题需要自己处理(浏览器地址栏 url 显示问题、打开 blank 属性超链接 url 为家里服务器非标准端口的地址等)。

    现在想问一下可爱的 v 友,有没有其它可行的操作,或上面的 iframe 方案和对象存储方案有没有现成的项目可以拿来改一改直接使用(明示白嫖)。

    提前表示感谢。

    31 条回复    2025-03-21 19:21:52 +08:00
    bgm004
        1
    bgm004  
       2021-02-14 17:52:02 +08:00 via Android   1
    我个人非常反感备案制度,又不想违法。家宽提供 web 服务,并且没有备案。你已经犯了
    opengps
        2
    opengps  
       2021-02-14 17:56:05 +08:00 via Android
    http 是明文,运营商直接可以识别出并且阻断甚至警告
    Jooooooooo
        3
    Jooooooooo  
       2021-02-14 17:56:45 +08:00
    ?

    用家庭带宽搭 web 服务就是违法的, 不想违法是什么意思?

    和问想杀人但不想违法一样有点奇怪啊
    lutian
        4
    lutian  
       2021-02-14 17:56:48 +08:00 via Android
    小聪明
    8023
        5
    8023  
    OP
       2021-02-14 17:58:34 +08:00
    @Track13 没有吧?互联网连被访问都做不到怎么叫互联网(
    任意端口的 web 服务都不行吗?如果真的是这样的话我也想到了:将域名绑定在一个非大陆服务器,下载一个空白 html 页面和一个 js 文件。使用 js 实现一个私有的隧道协议,使用这个私有协议访问家里服务器的内容,然后渲染到浏览器上,不过感觉过程太麻烦了,不到万不得已不打算这么做...
    xtli12
        6
    xtli12  
       2021-02-14 18:12:10 +08:00 via iPhone
    小心土条子弄死你
    lcdtyph
        7
    lcdtyph  
       2021-02-14 18:14:49 +08:00   1
    cloudflared argo tunnel
    littlewing
        8
    littlewing  
       2021-02-14 18:37:03 +08:00 via iPhone   1
    把你家的服务器等设备托管到机房
    lookas2001
        9
    lookas2001  
       2021-02-14 19:30:55 +08:00   1
    如果正常的网页内容,推荐使用反代,对用户,对搜索引擎都友好。
    如果是大量数据传输的,推荐走非常规协议,自己写一个客户端,如果一定要 web 的话,用 webrtc 。
    再多嘴一句,面对大陆用户的任何形式服务,如果想要做大,做正式,请走合规途径(备案),监管机构不是吃干饭的,你服务器到用户的路径上,如果是合规的,那一定会有三大运营商,他们想搞你不是能不能的问题,是想不想的问题。
    Ptu2sha
        10
    Ptu2sha  
       2021-02-14 19:45:19 +08:00
    每次看到这个节点下的一些点子就觉得中国人不缺智慧
    PMR
        11
    PMR  
       2021-02-14 19:57:33 +08:00 via Android
    《互联网信息服务管理办法》未修订版 即国令 292 号

    第二条 在中华人民共和国境内从事互联网信息服务活动,必须遵守本办法。
    本办法所称互联网信息服务,是指通过互联网向上网用户提供信息的服务活动。



    高级炸鱼
    caola
        12
    caola  
       2021-02-14 19:59:38 +08:00   1
    web 服务可以用 alt-svc 方案,虽然只有较新的浏览器支持
    imydou
        13
    imydou  
       2021-02-14 19:59:58 +08:00
    frp 穿透 80 和 443 端口,公司内部 OA 是这么搞的。
    kerro1990
        14
    kerro1990  
       2021-02-14 20:02:30 +08:00 via iPhone
    数据加密吧,裸奔 web 服务想喝茶嘛
    neteroster
        15
    neteroster  
       2021-02-14 20:14:16 +08:00 via Android   6
    scsb
        16
    scsb  
       2021-02-14 20:44:49 +08:00 via iPhone
    备案不麻烦啊

    这样搞可能会被请喝茶
    tinkerer
        17
    tinkerer  
       2021-02-14 20:47:47 +08:00
    nebula
    yeqizhang
        18
    yeqizhang  
       2021-02-14 20:55:07 +08:00 via Android   1
    我服务器的网页也没备案啊,只是域名要备案,现在我域名都不用的。我也不搞违法的那些东西,单纯是因为为了一个一年使用期的域名备案觉得麻烦。

    不备案应该不是违法行为吧,你不做违法行为也没那么大精力管你的。
    DoctorCat
        19
    DoctorCat  
       2021-02-14 20:56:27 +08:00   1
    论技术圈普法的重要性。用技术对抗我国执法意志,不现实。
    huangsen365
        20
    huangsen365  
       2021-02-15 00:48:21 +08:00 via iPhone
    我想问一下:你家有 UPS 吗?没有的话,这个 web 服务 sla 如何保障?
    initd
        21
    initd  
       2021-02-15 01:22:18 +08:00   2
    网站没必要,家里又不能保证 6 个 9 的可用性。
    存媒体资源,就没有那么多要求,只需要公网 IP,保证最大化带宽速率,端口又不是必须的东西。
    而且自己的资源也不要对公众开放,仅自己能访问才能最大限度的规避问题。
    家里带宽可能最有用的是做 PT (移动宽度除外),做云主机都不行,毕竟一堆不能访问。
    想家里出高效用,就得保证可用性,不断电基本要求,这么算其实成本很高。
    jinliming2
        22
    jinliming2  
       2021-02-15 08:00:58 +08:00 via iPhone   1
    可以尝试使用你说的第一种反代方案配合 HTTP 的 alt-svc 头使用。
    alt-svc 用于指定替代服务,可以指定非标准端口,主流浏览器除了 safari 应该都支持了。
    反代存在延迟高的问题,你可以在反代的服务器上提供 alt-svc 头,指示替代服务并给出较长的缓存时间,浏览器会自动连接替代服务,以降低延迟。替代服务的协议可以使用 http/1.1,也可以直接升级 h2 和 h3 。
    xtli12
        23
    xtli12  
       2021-02-15 14:30:15 +08:00 via iPhone
    牛逼
    40EaE5uJO3Xt1VVa
        24
    40EaE5uJO3Xt1VVa  
       2021-02-15 19:32:51 +08:00
    跟我之前的想法不谋而合,只是用国外的机器反向代理家宽机器,双重延迟,得不偿失。

    t/711228
    Themyth
        25
    Themyth  
       2021-02-17 11:36:21 +08:00
    @8023 这个想法很棒啊 请问 js 实现私有隧道协议有例子么?
    jinliming2
        26
    jinliming2  
       2021-02-18 09:14:52 +08:00 via iPhone
    @Themyth 这个应该只能用 websocket 去实现私有协议,浏览器下限制只能建立 HTTP 连接的。
    不过如果采用这种方案的话,那最简单的,国外那台主机提供的 html 里的资源地址全部指向国内的这台机器就行,用 HTTP 头解决好跨域问题就可以了。
    firefox12
        27
    firefox12  
       2021-02-18 16:39:54 +08:00
    如果只是技术对抗,还是能做做, 但是你人肉在国内,这是要进去的。定位太容易了。 不是 p2p 模式的服务 都是瞬间被切断
    jindom
        28
    jindom  
       2021-02-20 09:51:43 +08:00
    我现在的解决方案就是你说的反代方案:
    1.物理服务器架好 nginx
    2.服务器虚拟化 ROS,转发 web 服务到非标准端口
    3.腾讯云轻量 /OracleCloud 做 iptables 转发 80,443 流量到家宽非标准端口
    多的是下面的一步:
    4.套一层免费的 CloudFlare CDN
    实测套了之后无论是访问速度还是 TTFB 都很赞,但是大的文件资源下载速度不会太理想
    woyaojizhu8
        29
    woyaojizhu8  
       2021-03-15 20:27:56 +08:00
    非标端口也是不行的,只要是 http https 就不行
    james19820515
        30
    james19820515  
       241 天前
    现在有结论了吗?
    xiaoluobo58
        31
    xiaoluobo58  
       204 天前
    本人采用的方案是买个亚洲低延迟 CDN ,一年最多一两百,家宽使用非标准端口+DDNS ,然后把域名绑到 CDN 上
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2697 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 07:23 PVG 15:23 LAX 00:23 JFK 03:23
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86