毛毛的梦
https://www.maodream.com/
一个记录生活的小站
-
语言学习的要点
https://www.maodream.com/archives/257/
2025-02-21T23:13:00+08:00
分享一下最近学英语悟到的几个学习语言时需要注意的要点:{dotted startColor="#ff6c6c" endColor="#1989fa"/}1. 沟通比语法更重要 学习英语并不需要过于关注语法是否完美。母语者更关心的是你是否能清晰地表达你的想法,而不是是否使用了正确的语法。尽管你的表达中有例如语法不正确和拼写错误等小问题,只要表达清晰、意思明确,母语者通常能理解你的意思,并且不会介意。练习英语时最重要的是自信,不怕犯错。 语法错误其实不是什么大问题,母语者通常会根据上下文来猜测和理解你想表达的意思,语法错误和拼写错误不会影响交流的流畅性。例如我发消息和别人说 I like elphants ,对方也能知道我想表达的是我喜欢大象,尽管我在 elephants 犯了一个拼写/输入错误 (typo)。最重要的是勇于表达,就算经常犯错,但通过不断学习和实践,自己的水平也会慢慢得到提升,失败乃成功之母。{collapse}{collapse-item label="我尝试用英语和 AI 交流,了解到了以上信息"}{/collapse-item}{/collapse}{dotted startColor="#ff6c6c" endColor="#1989fa"/} 2. 意识到自己正在学习一门全新的语言 时刻记住自己学习的是一门全新的语言,避免母语等更熟悉的语言引发的经验主义。 举个很简单的例子。在美国歌手 Sia 的歌曲 Cheap Thrills 中有一句歌词是 I don't need no money,这句歌词里用到了两个no,中文母语者很容易因为中文中存在“双重否定表肯定”的概念,将这句话理解为我需要钱(我不不需要钱)。 然而,英语中没有双重否定这种概念。实际上这个句子是一个俚语 (slang)。它表达的就是“我不需要钱”,不存在像中文一样两个no否定叠加在一起 "负负得正" 表肯定。由于这是一种及其非正式的说法,因此它几乎不会出现在教科书中。 另一个适用于中文母语者的例子是单词"混沌的,混乱的"——chaos,他的读法并不是像拼音一样的吵死 (chɑ̀o s),而是像 "克诶奥斯" (/ke.ɑs/, 美式发音) 或 "克诶偶斯" (/ke.s/, 英式发音)。(这是因为 c 在英语中大部分情况下发 k 音){dotted startColor="#ff6c6c" endColor="#1989fa"/}3. 培养自己的"语言直觉" 除此之外,如果想要更深地掌握外语,可以试着培养自己的 "语言直觉" (Language Intuition)。这是指在语言学习中,直接用目标语言表达,而不需要经过母语翻译后再表达的能力。 例如别人问我 What did you eat last morning? (你昨天早上吃了什么?),我不需要将这句话翻译成英文,而是脑子里直接理解了别人希望 know what did I eat last morning (了解我昨天早上吃了什么),然后回想 I remember drinking a bottle of milk and eating two eggs yesterday morning (我记得我昨天喝了一瓶牛奶,吃了两个鸡蛋),最后直接回答 I drank a bottle of milk and ate two eggs yesterday morning (我昨天早上喝了一瓶牛奶,吃了两个鸡蛋),全程不涉及任何中文,而是直接使用英语进行原生思考 (这是我的叫法) 并且回答。 掌握这个能力被视为语言学习迈入 "高阶流利"阶段 的标志。培养这种能力主要的方式就是多听、多说、多写。{collapse}{collapse-item label="语言直觉的定义和提升的方法"}{/collapse-item}{/collapse}{dotted startColor="#ff6c6c" endColor="#1989fa"/}4. 扩宽自己的视野 外语是一门极其特殊的学科。无论是英语日语意大利语还是其他语言,若想真的掌握一门外语与人沟通或是以后出去,而不是简单地为了考试,只靠了解语法和背单词是远远不够的。更要扩宽自己的视野,明辨是非地接收不同来源的信息,了解风土人情,积累俚语、 习语 (idioms, 像成语) 和 短语 (phrases, 固定搭配)。 例如 I'm so tired but I have to bite the bullet and finish my work 这句话,直译过来是 我很累了,但是我必须咬着子弹完成我的工作,让人听得云里雾里的: 为啥要咬着子弹这玩意?其实 bite the bullet 并不是字面意思上的 "咬子弹",而是形容硬着头皮去做某事。这句话的文化背景是在19世纪的美国战场上,士兵接受手术时没有麻醉药,只能 咬住子弹 (硬着头皮) 来忍受疼痛。 一个更知名的例子是 It's raining cats and dogs ,直译是 正在下猫下狗(雨)。而这句话实际表达的意思是 正在下大暴雨,现在的主流说法是这句话起源于17世纪的伦敦,当时街道排水系统很差,下大暴雨时水会冲走路上的垃圾和流浪猫狗等动物尸体,让人感觉像是 "天上下了猫和狗"。{dotted startColor="#ff6c6c" endColor="#1989fa"/} 另外也不能因为这篇文章就产生了 "既然别人都不在意我说的对不对,那我说的意思到了就行了呗"。人往高处走,水往低处流。若想掌握一门语言,应该继续求知、刨根问底、虚心接受,而不是让“错误可被接受”成为不纠正错误的借口。{collapse}{collapse-item label="错误示范: 意思到位就行了"}{/collapse-item}{/collapse}{dotted startColor="#ff6c6c" endColor="#1989fa"/} 中国的教育模式是应试教育 (exam-oriented education),这就导致了对于一门语言的学习,重点聚焦的不是与人沟通,而是语法、拼写等是否正确。这样的学习方式更容易通过分数等量化指标衡量学生对一门学科知识掌握的程度,但是同时也有极大的局限性,学到最后得到的可能只是简单的分数,对自己用外语与人交流几乎没有任何帮助。想突破这层限制,就要懂得前文所述的内容,重视实践。 勇敢迈出第一步。尽管我自认为我的英语能力还不错,但是我对AI提的问题中还是有许多语法错误和不够简洁的表达。But so what? WHO CARES? 那咋了? 对方照样完美理解了所有我想表达的意思,这何尝不是对前文"沟通比语法更重要"的最佳印证呢?
-
全方位视奸·睡似了吗? 重生版
https://www.maodream.com/archives/255/
2025-02-03T14:30:00+08:00
Project Sleepy网址: https://maao.cc/project-sleepy/ 在2024年的夏天,因为中考后的假期太闲,我又算是个比较爱睡觉(小睡)的人,所以基本上每天都处在睡着->醒来->睡着->醒来的循环中。有时候朋友们会找我帮忙,大部分都是发信息留言,很多时候我回复得不太及时。而直接打电话又显得有些唐突(实际上我觉得在大部分情况下打电话才是最好的沟通方式),所以我就抱着写着玩的心态 写了一个能让各位知道我睡没睡着的网页,分享给了我的朋友们,并且做成视频发在了B站上。令我意想不到的是,这个项目受到了极大的关注,B站视频收获了近 8 万播放,博客文章的阅读量达到了 1.4 万次。但是在每天反复的操作中,我逐渐体会到了最初的项目存在的问题:使用原来的更新状态的方式并没有想象中的那么方便,由于我比较懒,上学后基本没再更新过状态。我心里其实一直有个想法是将家里的智能家居的状态也分享出来,大家可以更全面地「视奸」我。我希望使用虚拟的智能家居设备作为开关来更新睡眠的状态,于是我决定开启一个全新的项目。写了近一个月,项目基本完工了。网址: https://maao.cc/project-sleepy/现在还在测试阶段,新项目的信息更加全面,包含了我家中所有智能家居的状态,例如灯的开关、音响播放的内容、环境光的明暗和温湿度等,以及我电脑上正在运行的程序。上个项目获得广泛关注之后,有人说看我就像看电子宠物,这回算是真彻底变成电子宠物了。这个项目不仅能让朋友们更方便地知道如何联系我好,还能让大家一起监督我大晚上有没有开着灯熬夜。(当然我还是觉得打电话好)Project Sleepy 也是我做过的最认真的开源项目,开源在 GitHub: https://github.com/maoawa/project-sleepy这个项目的扩展 Sleepy Helper 也开源在 GitHub: https://github.com/maoawa/sleepy-helper(可能打不开,打不开不用管)我真的有非常用心的写各种配置和说明文档,并且让希望复刻这个项目的人方便修改。目前功能已经基本完善了,我也想不到还能再添加什么。如果各位有什么建议或者意见,亦或者是发现了神秘小bug,欢迎留言或者联系我喵!顺祝新年快乐!(虽然有点晚)
-
在 WeChat 上通过 Passkey (通行密钥) 登录 (新功能)
https://www.maodream.com/archives/239/
2024-11-16T21:32:00+08:00
昨天(2024年11月15日),WeChat 团队发布了 WeChat iOS/iPadOS 设备上的 8.0.54 版本,该版本的其中一个亮点就是增加了对 Passkey (通行密钥) 的支持,可以以 Passkey 作为验证方式登录 WeChat 账户。{message type="info" content="关于WeChat:微信是由深圳市腾讯计算机系统有限公司开发并运营的一款社交软件,而 WeChat 则是由微信团队开发,由不同地区的实体在全球运营的软件。WeChat 主要功能与微信并无太大差异,但在一些功能和用户体验上与微信有些许不同。例如无朋友圈广告,提供在 Apple 设备上直接通过系统电话应用接听 WeChat 音频和 WeChat Out 等特色功能。本文使用美国区域 WeChat 账户演示,该区域的 WeChat 运营实体为 WeChat International Pte. Ltd. (Singapore)。"/}Passkey (通行密钥) 是什么? Passkey 是一种基于密码学的安全认证方式,旨在取代传统密码。它结合了公钥和私钥加密,提供更安全的身份验证方式。用户通过设备进行身份验证,而无需输入密码,减少了密码泄露的风险。 在 Apple 设备上,Passkey 通过 iCloud 钥匙串进行管理,允许用户在多个 Apple 设备之间同步登录信息。通过 Face ID、Touch ID 或设备密码进行身份验证时,Passkey 可以自动完成登录,无需记住或输入密码,提升了安全性和便捷性。 ——( 来自 ChatGPT )在 WeChat 中添加 Passkey 首先,将 WeChat 更新至8.0.54版本。 更新后打开 WeChat 主页右下角"我"->设置->账户安全,可以看到这里多出了通行密钥的选项。 点击通行密钥选项,打开通行密钥设置界面。这里有一些关于通行密钥的介绍,点击下方的绿色按钮,创建通行密钥。 输入当前的微信密码验证身份。 接下来,系统将会弹出一个菜单,可以选择将通行密钥储存在其他设备上,或点击继续按钮储存在 iCloud 钥匙串中,并在同一 Apple 账户下的所有设备间同步。 通行密钥保存完后,通过通行密钥登录的选项将会被自动启用。此外,在这个页面,你还可以放弃此前设置的并重新设置一个新的通行密钥,也可以选择删除通行密钥并关闭该功能。{dotted startColor="#ff6c6c" endColor="#1989fa"/}通过 Passkey 登录 WeChat 实测 根据 Apple 支持的文章,在Apple设备上使用通行密钥需要设备运行 iOS 16、 iPadOS 16、macOS 13、Apple tvOS 16 或更高版本。iCloud 钥匙串和双重认证也必须打开。 如果想要通过 Passkey 登录 WeChat,设备必须满足以上条件,同时安装最新版本 WeChat (>=8.0.54)。接下来我们将使用一台 iPhone 8 Plus (iOS 16.7.7) 作为演示。 Passkey 已经同步到了这台设备上。 打开 WeChat ,点击登录,识别到了设备上的 Passkey ,将会自动弹出通过 Passkey 登录的选项。 或者也可以在登录界面选择更换登录方式,选择使用 Passkey 登录。 授权通过后,并没有如我所愿直接进入账户,而是跳转到了人机验证。。。我 Passkey 都给你了,还要看看我是不是人呗。 通过了人机验证后,又跳转到了经典的微信新设备验证。 看来目前还不能通过 Passkey 一键登录 WeChat 账户,或许是 WeChat 团队面对用户的聊天数据和财产安全做出了妥协。但在我看来,Passkey 验证方式已经足够安全,并不需要再设置一道防护。WeChat 团队还是需要多加考虑,平衡新技术带来的便利性和对安全的保护,这样才能给用户带来一个既便捷又安心的使用体验。{dotted startColor="#ff6c6c" endColor="#1989fa"/}附: WeChat 安全中心官方网站对通行密钥的介绍 简体中文 | 繁体中文 | 英文
-
配置AWS亚马逊云EC2服务器的IPv6网络
https://www.maodream.com/archives/211/
2024-10-26T20:25:00+08:00
AWS (Amazon Web Services, 亚马逊云服务)是 Amazon 旗下全球领先的云计算平台,许多个人和组织都在使用由 AWS 提供的服务,我个人就有在使用 AWS 的 EC2 服务器。但是 EC2 默认只会被分配 IPv4 地址,而不会被分配 IPv6 地址,也就是说 EC2 默认并不能通过 IPv6 访问 Internet。不过我们可以给 EC2 手动分配一个甚至多个 IPv6 地址来解决这个问题。{dotted startColor="#ff6c6c" endColor="#1989fa"/} 首先登入 AWS 控制台,打开希望启用 IPv6 的实例,转到实例绑定的 VPC 展开 VPC 的 Actions (操作) 菜单,点击 Edit CIDRs (编辑CIDR) 点击 IPv6 CIDRs 中的 Add new IPv6 CIDR (添加新的IPv6 CIDR),在弹出的选项卡中选择 Amazon-provided IPv6 CIDR block (由Amazon提供的IPv6 CIDR块),然后点击 Select CIDR (选择CIDR) 这样,VPC 就有了一个由 Amazon 提供的 IPv6 CIDR 块,如图{dotted startColor="#ff6c6c" endColor="#1989fa"/} VPC 有了 IPv6 CIDR 块后,我们还要给 Subnet (子网) 分配 CIDR。回到希望启用 IPv6 的实例的控制台,转到实例绑定的 Subnet (子网) 展开 Subnet 的 Actions (操作) 菜单,点击 Edit IPv6 CIDRs (编辑IPv6 CIDR) 在 Subnet CIDR block (子网CIDR块) 中,点击 Add IPv6 CIDR (添加IPv6 CIDR) 点击Save (保存),这样 Subnet 就有了 CIDR 块 随后,需要给实例分配 IPv6 地址。再次回到希望启用 IPv6 的实例的控制台,展开实例的 Actions (操作) 菜单,展开 Networking (网络),点击 Manage IP addresses (管理IP地址) 展开网络适配器,如图 点击 IPv6 addresses (IPv6 地址) 中的 Assign new IP address (分配新IP地址)。可以选择自己指定一个 IPv6 地址,指定的地址需要在 Subnet 分配到的 IPv6 CIDR 中,也可以让 AWS 来 Auto-assign (自动分配)。随后点击页面底部的 Save (保存) 弹出选项卡二次确认,提示将会分配一个新的 IP 地址,这正是我们想要的。点击 Confirm (确认) 随后就会自动跳转回到实例的控制台,我们已经可以在这里看到实例已经被分配到了一个 IPv6 地址 最后一步是在路由表中新增一条规则,允许 EC2 正常通过 IPv6 与广域网通讯。转到 VPC 控制台,打开左侧的 Route tables (路由表),选中与之前的 VPC 关联的 Route tables,展开 Actions (操作) 菜单,点击 Edit routes (编辑路由) 点击 Add route (添加路由),Destination (目的地) 中键入 ::/0 (全部IPv6),Target (目标) 选择 Internet Gateway (互联网网关),在 Target 的输入框中输入互联网网关的 ID (以 igw- 开头,一般点击输入框,列出的列表中的就是),然后点击网页右下方的 Save changes (确认更改){dotted startColor="#ff6c6c" endColor="#1989fa"/} 至此,我们就已经成功为 EC2 服务器分配了一个可用的 IPv6 地址。值得注意的是,分配IPv6 地址后可能需要更新一下安全组策略,确保需要的 IPv6 入站流量被允许通过。现在可以试试连接至 EC2,测试 IPv6 的连通性。 执行 curl -6 my.ip-addr.is后,返回如下结果 CONGRATULATIONS! 现在这台 EC2 就已经能使用 IPv6 网络了,这篇教程至此圆满结束。 之前提到的 my.ip-addr.is 是我的好朋友 zkn 提供的一个服务,可以通过 curl 请求这个地址来获取自己机器当前的公网 IP 地址,具体用法如下:curl my.ip-addr.is # 获取默认的 IP 协议版本的信息
curl -4 my.ip-addr.is # 仅获取 IPv4 信息
curl -6 my.ip-addr.is # 仅获取 IPv6 信息 ip-addr.is 是一个非常实用的工具站,可以查询自己的 IP 地址、IP 地址信息、域名与 ASN 的 WHOIS 信息、查询 rDNS 解析,国家顶级域名列表。网站界面干净简洁无广告,域名简单直接,便于记忆,使用方便,现在在我心里已经取代 DNSCHECKER,成为了我的首选工具。
-
上海之行航拍照片
https://www.maodream.com/archives/197/
2024-09-15T18:01:00+08:00
前言 2024年,中考完后的那个暑假,我和朋友Eric Eric的主页 来到了中国的国际化大都市——上海,在这里度过了五天时间。上海这座魔幻的城市给我们留下了许多深刻的印象,在这一次旅途中,我们也在浦东新区拍下了许多好看的照片。{dotted startColor="#ff6c6c" endColor="#1989fa"/}
-
写了一个能让各位知道我睡没睡着的网页
https://www.maodream.com/archives/192/
2024-07-02T20:11:00+08:00
{alert type="warning"}这个项目已过时船新升级!全方位视奸,包括但不限于我在听的歌、家中灯的开关和电脑运行的程序,甚至还能直接和我互动!!详见: 全方位视奸·睡似了吗? 重生版 网址: maao.cc/project-sleepy {/alert}前言 因为中考完后的假期太闲,我又算是个比较爱睡觉(小睡)的人,所以基本上每天都处在睡着->醒来->睡着->醒来的循环中。朋友们喜欢留言找我,但一两条通知没法吵醒我,直接打电话又有些唐突。于是我决定写一个网页,来让访问网页的各位看到我是活着的还是似着的(){dotted startColor="#ff6c6c" endColor="#1989fa"/} 首先实现思路就是后端给两个接口。一个切换状态(switch)接口,当带 status=1 参数请求时,将状态更改为醒着(awake);当带 status=0 参数请求时,将状态更改为梦中(sleeping)。对于切换状态接口,任何操作都必须带上正确的 secret 密钥参数,否则直接返回 Invalid secret.。第二个接口是查询状态(query)接口,无需任何参数,请求接口后直接返回当前状态。前端请求查询状态(query)接口后,即可显示当前状态。更改状态使用快捷指令发送get请求。{dotted startColor="#ff6c6c" endColor="#1989fa"/} 最终成功实现了想要的效果: https://maao.cc/sleepy/{bilibili bvid="BV1fE421A7PE" page=""/}
-
大陆用户使用国际版支付宝
https://www.maodream.com/archives/163/
2024-04-30T00:40:00+08:00
前言 事情的起因是一天闲着没事,偶然刷到了一则帖子,才得知原来大陆用户是可以申请开通支付宝国际版的。 支付宝国际版相比标准版界面更加简洁、直观、高端大气上档次,很适合只用几个常用的功能,又不喜欢花里胡哨的用户。{dotted startColor="#ff6c6c" endColor="#1989fa"/} 首先进入支付宝客服中心,接入人工客服,然后直接和对方说出要求(想切换到支付宝国际版),对方会转接给「相应工作人员」处理。 转接后再次描述自己的需求,会用对一些功能有影响为理由最后挽留一下。这时候表达自己能接受,他们就会直接提交申请。 (有人说自己尝试,对面本来不同意,说了句求求你之类的话就同意了。这可能因人而异,只要非常坚定要切换就行) 我是工作日中午提交的申请,三个小时左右就通过了,效率还算快。 根据收到的短信的指引切换至国际版后,就能拥有一个简洁的支付宝了。还可以切换支付宝语言为英语,体验更纯正的「国际版」。{dotted startColor="#ff6c6c" endColor="#1989fa"/} 切换到国际版后,有了新的绑定银行卡界面,支持 Visa / Mastercard / Diners Club / Discover / JCB / 银联 但是似乎因为实名认证的方式,切换到国际版支付宝似乎并没有对绑定国际银行卡有加成,还是没法绑定超过两张国际银行卡,会提示所谓的环境不安全。
-
有没有这样一种可能,我接有线网延迟只有14毫秒?
https://www.maodream.com/archives/141/
2024-02-09T21:00:00+08:00
{dplayer src="https://www.maodream.com/usr/uploads/2024/02/sd1707482316_2.MP4"/}只是对同学的回复,祝大家新年快乐!!
-
给常联系页面加了个英文
https://www.maodream.com/archives/129/
2024-01-13T23:53:00+08:00
因为自己有时候可能会和一些外国友人交流,所以挺早之前就想给自己的常联系页面加一个英语,但是一直没去行动。我认识一个来自埃及的朋友,之前经常和他一起打游戏啥的,但是三个多月前,他突然就没任何动静了。我问了很久,他也没回复。终于半个月前(这半个月没怎么上线),他回复了我: 这次经历教会了我们,好朋友之间还是要留下足够多的联系方式。刚好最近不是很忙,就抽出时间给我的联系页加了一个英文的选项:( https://maao.cc/global ) 我选择是将中文和英文分成两个单独的子目录,访问网站首页时,自动检测用户的语言,跳转到对应的语言目录。实现起来非常简单,只需要15行代码(不完全遵守规范的话,还可以更少):<!DOCTYPE html>
<html>
<head>
<title>maao.cc</title>
<script>
var userLang = navigator.language || navigator.userLanguage;
if (userLang === 'zh-CN') {
window.location.href = '/cn';
} else {
window.location.href = '/global';
}
</script>
</head>
</html> 这样,访问首页就会自动判断,将用户引导至合适的语言。当用户的语言是 zh-CN (简体中文)时,就自动跳转到https://maao.cc/cn 是其他语言时,就跳转到https://maao.cc/global 当然,如果识别出错或者只是想看看另一种语言的页面的话,我也做了一个区域选择器(Region Selector 有点模仿任天堂官网那意思): https://maao.cc/regionselector 因为一般来说大部分简体中文访问者不会打开这个页面,所以在这里我是把英文放在第一个。 同时,我也将常联系站(maao.cc)的境外流量接入了上一篇文章提到的Amazon CloudFront(详见 本站的境外网络访问优化记录 - 毛毛的梦 ),现在全球连接速度都嘎嘎快
-
本站的境外网络访问优化记录
https://www.maodream.com/archives/104/
2023-12-16T21:39:00+08:00
毛毛的梦是我的一个个人博客网站,由于我是中国人,网站主要访客在中国大陆,所以网站服务器也自然是在国内。同时为了提升国内各地区访问者的体验,我使用了阿里云的DCDN全站加速服务,通过分布在各地的缓存服务器来加快连接速度,减轻源服务器压力,同时还能在一定程度上避免网络攻击。经过优化后,大陆地区的访问速度确实快多了,但是由于阿里云全站加速服务是按流量收费的,而境外的流量费和大陆的不一致,境外要比大陆贵得多(如图) 一般来说境外的攻击比国内要更多,再加上成本原因,最终还是选择只加速大陆地区。设置只加速大陆地区后,境外访问者将会被解析到位于上海的服务器,并且算作国内流量。这样的好处是能大大降低成本,但同时坏处也显而易见,境外地区的访问者就不会有非常优秀的体验。 虽然我网站的境外访客不算多,但是也并不是完全没有。为了照顾到他们的体验,我还是决定使用境外CDN服务。但阿里云的肯定不行,主要原因还是攻击多并且流量费太贵。不过好在我的域名使用阿里云的DNS云解析服务,可以通过简单的配置来实现让不同地区的访问者被解析到不同的服务器。这意味着我可以让国内的访问者使用阿里云的全站加速服务,而让境外的访问者被引导至另一个服务商。 接下来就是寻找一个合适的境外CDN服务提供商。我首先想到的是Akamai,作为全球最大、历史最久的的分布式计算平台之一,Akamai有着非常不错的口碑,并且一直为IBM、Adobe等大公司提供稳定的服务。然而经过我的一些了解,Akamai主要方向似乎是帮助团队和公司,对个人开发者并不是非常友好。 我又去找了亚马逊AWS(Amazon Web Services),亚马逊有CDN业务,他们叫做Amazon CloudFront。Amazon CloudFront有永久免费套餐,每月有1TB的免费出站流量,这对于我这样一个小站来说是完完全全足够了的。 我先注册了AWS账号,选择Amazon CloudFront免费套餐,AWS要求我提供银行卡信息来绑定自动扣款。我刚好有一张中信银行的Visa白金借记卡(持卡人是我本人,因为是借记卡,所以未成年人也可以办),但是激活的时候,柜台的工作人员和我说因为国家反诈要求,这种新办的外币卡需要等待一段时间才能完全可用。我之前也尝试过绑定Paypal和Apple Pay,但是都失败了,说明在解锁之前确实不行。不过我还是抱着试一试的心态,填入了我的银行卡信息: 到了下一步,似乎是通过验证了?接下来要求我验证我的手机号: 验证通过后,到了选择支持计划的页面,我可以选择支付一笔费用升级到更高级的支持计划,会有专业人员来帮助我解决我的问题。但是对于我这种个人开发者,还是选择自食其力: 点击完成注册后,提示我成功激活了我的AWS账户: 看来这张还没有解锁的卡也能通过验证(我还尝试过使用这张卡开通Cloudflare for Saas,也成功了) 进入Amazon CloudFront控制台,点击“创建 CloudFront 分配” 先将我的DIgicert SSL安全证书导入到美国东部(弗吉尼亚北部)区域(us-east-1) 创建完CloudFront分配后,我得到了CNAME解析域名。接下来登录到阿里云云解析DNS配置页面,点击添加记录,主机记录填写www,解析请求来源选择境外(即向除中国内地以外的其他国家和地区,返回设置的记录值),记录值填入刚得到的分配域名: 稍等片刻,使用工具检测解析,确认解析设置生效: 接下来,请求我「身在境外的朋友」帮忙打开我的网站,看看是否有效: 提示网站使用了不受支持的协议,看来是某个地方配置有问题。我搜索了一下,发现似乎并没有人和我遇到同样的错误。于是我便开始了漫长的摸索... 后来我通过搜索,找到了亚马逊云服务官方在知乎发布的一篇文章:《 技术干货 | 手把手教你排查 Amazon CloudFront 常见配置问题 》,在这篇文章里,提到了一个问题:“中国区 CloudFront 直接访问CloudFront 生成的 url,返回 403”,在这里给出的原因是:“中国区访问 CF 分发的时候,只能用客户自己的已经备过案的域名访问,不可以用 http://xxx.cloudfront.cn 的域名访问”: 这段话看得我云里雾里,我百思不得其解,经过了一段时间的“头脑风暴”后,我得出了这样一个结论:上文提到的CloudFront分配给我的域名“d342janx8v6j2q.cloudfront.net”,是相当于分配给我的一个子域名... 我作为国际AWS用户,可以使用这个域名来建立网站,并让访客用这个域名来访问我的网站。我注意到,点击分配域名旁的复制按钮,复制下来的是“https://d342janx8v6j2q.cloudfront.net”,而不是“d342janx8v6j2q.cloudfront.net”: 如果这个域名只是用于CNAME解析,那么不应该将https前缀也复制进来。并且,直接访问“https://d342janx8v6j2q.cloudfront.net”,能显示出403页面。这说明这个“分配域名”不止是用于CNAME解析。于是我尝试知乎原文的解决方法,将www.maodream.com添加进“备用域名”: 应用更改后,果然能连接上了: 于是我将AWS控制台切换到了英文,发现“分配域名”的原文是“Distribution domain name”: 这里的“Distribution”翻译到中文确实是“分配”,但是Distribution是CloudFront里的一个概念,有点像是“实例”,如果直接翻译成分配,很容易让人理解成是分配的域名。看来AWS的翻译质量还是不咋地,索性直接留在英文界面。 虽然现在网站是能连接上了,但并没有显示出正常的网页,而是得到了一个来自CloudFront的403错误,大意是CloudFront的边缘服务器无法连接到源站。这就麻烦了,因为可能引起这种问题的原因有很多。我搜索了一下,似乎还是没有人遇到同样的问题,看来又得自己慢慢摸索了... 我尝试多刷新几次,然后去查看源服务器上的网站日志,发现根本没有新记录。这说明CloudFront的服务器与我的服务器根本就没有建立连接,于是去看源站配置。源站域名这个地方,因为不能填IP地址,我就填的www.maodream.com(我以为是回源host)。但是我又突然想起来,它不能填IP地址,但是可以填CNAME解析的域名啊。 于是我把绑定我源服务器IP的域名填了进去,保存。等一段时间生效后,再次打开网站,居然就稀里糊涂地成功了: 后来我才意识到,这里不是回源host,填写的是源站信息,而不是源站域名(当时中文界面,这里叫做“源域”,解释是“选择 AWS 源,或者输入源的域名。”,看来这翻译质量是真不咋地)。而且,我的www.maodream.com这个域名在海外是解析到CloudFront的,相当于CloudFront自己把自己当源服务器访问,那肯定是有问题的。 现在,本站境外加速服务就由Amazon CloudFront提供,成功实现了国内和境外“一片绿”的美好景象: 境外区域也得到加速后,来自全球的访问者就都能得到一个好的访问体验了。那这次境外网络访问优化就算圆满成功了!!