cloudflare dns 1.1.1.1 域名污染

从昨晚到现在使用MacOS访问国内网站均指向182.43.124.6这个ip的网页(

国家反诈中心、工信部反诈中心、中国电信提示您

), 后来反应过来查看dns:

nslookup zhihu.com

Server: 1.1.1.1

Address: 1.1.1.1#53

Non-authoritative answer:

Name: zhihu.com

Address: 182.43.124.6

笔记本上的DNS Servers的1.1.1.1已经被投毒了,后续删除这个域名服务器(不知道之前是怎么加入进来的),同时清除域名缓存,到此虚惊一场。

MACOS 版本 使用的命令
macOS 12 (Monterey) sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
macOS 11 (Big Sur) sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
macOS 10.15 (Catalina) sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
macOS 10.14 (Mojave) sudo killall -HUP mDNSResponder
macOS 10.13 (High Sierra) sudo killall -HUP mDNSResponder
macOS 10.12 (Sierra) sudo killall -HUP mDNSResponder
OS X 10.11 (El Capitan) sudo killall -HUP mDNSResponder
OS X 10.10 (Yosemite) sudo discoveryutil udnsflushcaches
OS X 10.9 (Mavericks) sudo killall -HUP mDNSResponder
OS X 10.8 (Mountain Lion) sudo killall -HUP mDNSResponder
Mac OS X 10.7 (Lion) sudo killall -HUP mDNSResponder
Mac OS X 10.6 (Snow Leopard) sudo dscacheutil -flushcache
Mac OS X 10.5 (Leopard) sudo lookupd -flushcache
Mac OS X 10.4 (Tiger) lookupd -flushcache

使用v2ex感受

V2EX作为程序员和设计师聚集的网站有一定的知名度,后来因为国内的内容审核成本迁移到海外。最近注册一个账号 https://www.v2ex.com/member/jerry0903 ,说下使用这个网站的一些体会:

1. 注册一个月后才可以发文章

主要是为阻止大量账号灌水,发广告。这个对新用户来说确实有些体验不好。

2. 主要使用markdown格式写文章,图片只能引用链接,不能在网站文章编辑添加图片或必须付费

markdown对普通用户有些门槛,图片这个操作有些不习惯

3. 文章发布后无法修改,只能追加,不能删除

跟主流的blog操作不同,勉强能够接受

4. 不能删除用户的恶意评论

这个是体验最差的,不能屏蔽或删除恶意评论,那个就像一坨翔放在你家门口,对创作者感受最差

5. 不能删除账号

这个确实是奇葩,跟国内那些app或网站一个德行

最后总结一下,整个体验过程太糟糕了,以后也不会在这个网站写任何文章,拜拜了!

Next.js Edge Functions 超时问题

最近使用Next.js框架开发gpt-4应用,发现调用gpt-4返回结果是超过30秒就出现timeout提示。在fetch函数添加各种timeout选项问题依然存在。后面找寻时发现:

“Edge Functions have a timeout of 30 seconds and even longer when streaming, which far exceeds the timeout limit for serverless functions on Vercel’s Hobby plan. Using these can allow you to get past timeout issues when using AI APIs that take longer to respond. As an added benefit, Edge Functions are also cheaper to run.”

也就是说使用streaming功能的函数(包含ReadableStream关键字)必须是edge,即在函数后面添加:

export const runtime = “edge”;

这样即使超过30秒也不会报错。

 

https://vercel.com/docs/concepts/functions/edge-functions/streaming

 

Avoiding CORS Issues in React/Next.js

Cross-Origin Resource Sharing (CORS) 是一个让开发人员有些头疼的事。当在服务器调用外部api时,经常报这个错。以下有两种方法避免:

  1. 安装CORS library (https://www.npmjs.com/package/cors) 并告诉服务器访问,
    app.use(cors({
        origin: 'http://127.0.0.1:3000',
    }))
  2. 增加代理proxy,
    const url;
    if (process.env.NODE_ENV === "production") {
        url = "https://www.example.com/whoami"
    } else {
        url = "http://127.0.0.1:4000/whoami"
    }
    fetch(url)

    在package.json文件添加:

    "proxy": "http://localhost:4000",

    假如使用 Next.js 的话,在next.config.js文件下添加如下:

    module.exports = {
      async rewrites() {
        return [
          {
            source: '/api/:path*',
            destination: 'http://localhost:4000/:path*'
          }
        ]
      }
    }