众所周知现在家宽是禁用 80 、443 、8080 等常用端口的,如果想要建站则需要租用昂贵的专线或是云服务器,更可怕的是需要进行 ICP 备案。我个人非常反感备案制度,又不想违法,所以宁愿多牺牲一部分时间和稳定性也不会去备案,更不会找别人代备(请不要回复相似提议)。我家的带宽比较大,联通电信移动三网接入,下载总带宽 1.2G 以上,上传带宽总计 250M 以上,且家里有性能过剩的服务器、数通设备,基础设施完全可以撑起所有网站的性能需求。
我目前的解决方案是租用韩国、日本、台湾等与大陆临近地区的服务器。但网络质量越来越差、优质带宽的费用越来越高,我就想找一些冷门的解决方案。
反代方案(网上查阅资料最多人建议的方案):将网站搭建在自己家,此时可以通过非标端口访问。在上述地区买一台大带宽低配置的服务器进行反向代理。此时可以省去租用高性能服务器的钱,而且过程对用户不可见。但流量是由我家转发到非大陆地区然后再传输回来,延迟会变高,且需要更大流量的主机,感觉没有折腾的必要。
重定向方案:将网站搭建在自己家,此时可以通过非标端口访问。在上述地区买极低配置的服务器,将所有请求重定向到自己家的服务器(非标端口)。此时可以省去绝大部分租用服务器的钱,但用户访问时浏览器则会显示跳转后的、使用非标准端口的 url 。且不得不使用域名前缀对两台服务器进行区分,对用户来说不算友好。
对象存储方案:将网站搭建在非大陆服务器上,在自己家搭建对象存储,在网站程序中调用对象存储中的数据。此时只有网站中少量请求需要访问非大陆服务器,其余内容(图片、附件等)则可以直接请求我家里的服务器,可以减轻服务器带宽花销(带宽费用比计算费用高得多),提高访问速度。但这个方法需要修改网站程序源代码,对于一些拿不到源码的服务比较麻烦,目前想到的是在网页中插入一段 js,然后将原地址正则替换成家里的服务器地址。
iframe 方案:将网站搭建在自己家,此时可以通过非标端口访问。在非大陆地区买极低配置的服务器,服务器中只放一个 html 页面,页面中使用 iframe 访问位于家中的非标端口 web 服务。此时服务器只需付出极少带宽,用户访问时均直连我家,访问速度和迁移难度都非常不错。但也有一些细节问题需要自己处理(浏览器地址栏 url 显示问题、打开 blank 属性超链接 url 为家里服务器非标准端口的地址等)。
现在想问一下可爱的 v 友,有没有其它可行的操作,或上面的 iframe 方案和对象存储方案有没有现成的项目可以拿来改一改直接使用(明示白嫖)。
提前表示感谢。
1
Track13 2021-02-14 17:52:02 +08:00 via Android 1
我个人非常反感备案制度,又不想违法。家宽提供 web 服务,并且没有备案。你已经犯了
|
2
opengps 2021-02-14 17:56:05 +08:00 via Android
http 是明文,运营商直接可以识别出并且阻断甚至警告
|
3
Jooooooooo 2021-02-14 17:56:45 +08:00
?
用家庭带宽搭 web 服务就是违法的, 不想违法是什么意思? 和问想杀人但不想违法一样有点奇怪啊 |
4
lutian 2021-02-14 17:56:48 +08:00 via Android
小聪明
|
5
8023 OP @Track13 没有吧?互联网连被访问都做不到怎么叫互联网(
任意端口的 web 服务都不行吗?如果真的是这样的话我也想到了:将域名绑定在一个非大陆服务器,下载一个空白 html 页面和一个 js 文件。使用 js 实现一个私有的隧道协议,使用这个私有协议访问家里服务器的内容,然后渲染到浏览器上,不过感觉过程太麻烦了,不到万不得已不打算这么做... |
6
xtli12 2021-02-14 18:12:10 +08:00 via iPhone
小心土条子弄死你
|
7
lcdtyph 2021-02-14 18:14:49 +08:00 1
cloudflared argo tunnel
|
8
littlewing 2021-02-14 18:37:03 +08:00 via iPhone 1
把你家的服务器等设备托管到机房
|
9
lookas2001 2021-02-14 19:30:55 +08:00 1
如果正常的网页内容,推荐使用反代,对用户,对搜索引擎都友好。
如果是大量数据传输的,推荐走非常规协议,自己写一个客户端,如果一定要 web 的话,用 webrtc 。 再多嘴一句,面对大陆用户的任何形式服务,如果想要做大,做正式,请走合规途径(备案),监管机构不是吃干饭的,你服务器到用户的路径上,如果是合规的,那一定会有三大运营商,他们想搞你不是能不能的问题,是想不想的问题。 |
10
Ptu2sha 2021-02-14 19:45:19 +08:00
每次看到这个节点下的一些点子就觉得中国人不缺智慧
|
11
PMR 2021-02-14 19:57:33 +08:00 via Android
《互联网信息服务管理办法》未修订版 即国令 292 号
第二条 在中华人民共和国境内从事互联网信息服务活动,必须遵守本办法。 本办法所称互联网信息服务,是指通过互联网向上网用户提供信息的服务活动。 高级炸鱼🌚 |
12
caola 2021-02-14 19:59:38 +08:00 1
web 服务可以用 alt-svc 方案,虽然只有较新的浏览器支持
|
13
imydou 2021-02-14 19:59:58 +08:00
frp 穿透 80 和 443 端口,公司内部 OA 是这么搞的。
|
14
kerro1990 2021-02-14 20:02:30 +08:00 via iPhone
数据加密吧,裸奔 web 服务想喝茶嘛
|
15
neteroster 2021-02-14 20:14:16 +08:00 via Android 6
|
16
leschans 2021-02-14 20:44:49 +08:00 via iPhone
备案不麻烦啊
这样搞可能会被请喝茶 |
17
tinkerer 2021-02-14 20:47:47 +08:00
nebula
|
18
yeqizhang 2021-02-14 20:55:07 +08:00 via Android 1
我服务器的网页也没备案啊,只是域名要备案,现在我域名都不用的。我也不搞违法的那些东西,单纯是因为为了一个一年使用期的域名备案觉得麻烦。
不备案应该不是违法行为吧,你不做违法行为也没那么大精力管你的。 |
19
DoctorCat 2021-02-14 20:56:27 +08:00 1
论技术圈普法的重要性。用技术对抗我国执法意志,不现实。
|
20
huangsen365 2021-02-15 00:48:21 +08:00 via iPhone
我想问一下:你家有 UPS 吗?没有的话,这个 web 服务 sla 如何保障?
|
21
initd 2021-02-15 01:22:18 +08:00 2
网站没必要,家里又不能保证 6 个 9 的可用性。
存媒体资源,就没有那么多要求,只需要公网 IP,保证最大化带宽速率,端口又不是必须的东西。 而且自己的资源也不要对公众开放,仅自己能访问才能最大限度的规避问题。 家里带宽可能最有用的是做 PT (移动宽度除外),做云主机都不行,毕竟一堆不能访问。 想家里出高效用,就得保证可用性,不断电基本要求,这么算其实成本很高。 |
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 。 |
23
xtli12 2021-02-15 14:30:15 +08:00 via iPhone
牛逼
|
24
40EaE5uJO3Xt1VVa 2021-02-15 19:32:51 +08:00
|
26
jinliming2 2021-02-18 09:14:52 +08:00 via iPhone
@Themyth 这个应该只能用 websocket 去实现私有协议,浏览器下限制只能建立 HTTP 连接的。
不过如果采用这种方案的话,那最简单的,国外那台主机提供的 html 里的资源地址全部指向国内的这台机器就行,用 HTTP 头解决好跨域问题就可以了。 |
27
firefox12 2021-02-18 16:39:54 +08:00
如果只是技术对抗,还是能做做, 但是你人肉在国内,这是要进去的。定位太容易了。 不是 p2p 模式的服务 都是瞬间被切断
|
28
jindom 2021-02-20 09:51:43 +08:00
我现在的解决方案就是你说的反代方案:
1.物理服务器架好 nginx 2.服务器虚拟化 ROS,转发 web 服务到非标准端口 3.腾讯云轻量 /OracleCloud 做 iptables 转发 80,443 流量到家宽非标准端口 多的是下面的一步: 4.套一层免费的 CloudFlare CDN 实测套了之后无论是访问速度还是 TTFB 都很赞,但是大的文件资源下载速度不会太理想 |
29
woyaojizhu8 2021-03-15 20:27:56 +08:00
非标端口也是不行的,只要是 http https 就不行
|