Claw cloud(俗称小阿里云)老早推出了个叫 claw run 的免费容器服务 🎉,就是免费部署 Docker 容器,每个月送5美元且自带免费10G 流量。免费版支持 http/https/wss 访问,正好可以做个 301 重定向服务,这样访问家里 web 就不用记住烦人的端口号了!
关于 301 免输端口号访问家里 web
这个去年4月写过一期,相关知识查看往期 《免输入端口号访问!告别端口映射/穿透后烦人的端口号》 内容,但我知道肯定有人不会看 👀,所以这里再说下相关基础知识。
为什么需要 301 重定向? 🤔
不少同学家里有 NAS 后都会把各种端口开放到公网,做到出门在外也能访问家里的影音服务器。但是由于家宽的特殊性,无法使用 443/80 端口,这在访问各类内网网站的时候都需要加上端口号,有时候不一定会记住那么多的端口号,用起来显然不方便 😩。这时候就可以用到 301 重定向功能,就可以做到不用再记住那烦人的端口号了!
什么是 301 重定向? 🤔
所谓的 301 重定向就是把一个 URL 重定向到另一个 URL 上,比如访问的是“a.com”,但是会自动重定向(跳转)到“b.com:1234”这个网站上。从用户角度来看就是自己访问的是”http://a.com” 这个地址 但是打开了”https://b.com:1234″ 这个网站(在浏览器直接输入 a.com 实际展开是 “http://a.com:80″,只是浏览器自动补全了 80 端口以及对应的协议,如果 https 可以自动转到 443 端口),那相当于自己只用记住 a.com 这一个域名就可以了,特别是在服务多的情况下就记住对应的域名就行,极大的避免了自己会记错端口号导致访问不上的尴尬情况。
但是 301 重定向也有对应的局限性,只适用于有 web 的情况,如果服务没有 web 或者本身不支持重定向,那此方法就无效,例如 jeffylin 本身有 web,那就可以用 301 重定向来实现不加端口号访问,但是如果是 ssh 这种不是 http 就无效。
如何实现 301 重定向? 🤔
之前的文章里面介绍过几种方式:
- DNS 解析 + 重定向: 这种方法是基于 DNS 服务商实现,缺点是要域名服务商支持,而且国内服务商要花钱, cf那种因为服务器问题速度会偏慢;
- 用云服务器实现重定向: 这种方式也要花钱,国内服务器还要备案。
总之要么花钱,要么体验不好。 claw run 的这个免费容器我试了下国内访问速度还行,做重定向没问题,注册也没门槛,不用绑卡,部署也很简单,有手就会 💪!
一、注册claw run
注册我就不多说了,谷歌找到官网注册就行,aff我都不放。说一下claw这个免费是什么个情况,claw run用GitHub注册,且github账户已存在180天,即可每个月赠送5美元的额度,同时还有10g流量,这个5美元额度我们就可以部署配置较低的docker容器,总之不要超过5美元/月的费用随便折腾,但是需要注意,免费账户是只能http/https/wss连接,且只有10g免费流量(超过就扣钱),但我们做301重定向,根本花不了多少流量,一个月10g足够了,况且不用绑卡,花费超过5美元/月也没事。

注册了后会要求选个区域,这个选个近点的区域就行了,没要求。

二、部署caddy
caddy是什么,就是和nginx一样的反向代理程序,这里我们用它实现301重定向,那为什么不用nginx,因为caddy配置简单,占用也比nginx更低。
登录后新建容器,如果看不懂英文就翻译下,容器名称输入“caddy”,配置那里直接拉最低,0.1的cpu和64m的内存,一天才0.1美元,这样你还可以开点其他容器玩,,,,,然后下面的端口,默认80不要动,要开启公共访问,这里最好准备个域名,选择自定义域名。


claw会给出他分配的默认域名,你可以通过这个域名访问,但很显然,这个域名并不好记,所以需要自己准备个域名,例如我这里就是“ikun.claw.xxx.xxx”,这时候需要先到域名服务商创建对应的cname解析,这部应该都会吧,不会就谷歌。等个几秒钟cname生效后再回到calw run保存这个自定义域名。


最后的最后,还需要添加caddy的配置文件,如图所示,添加一个,目录固定是“/etc/caddy/Caddyfile”,下面的301重定向规则参考如下:
:80 {
redir https://taimei.xxx:1234 permanent
#只用改动这一行,域名和端口改成自己的
}


然后部署就是了,再等待个几分钟,可以在浏览器输入“ikun.claw.xxx.xxx”,浏览器就然后可以自动跳转到“http(s)://taimei.xxx:1234”。
诶,我猜肯定有人会问,你这不是只能一个301重定向,我有多个需要重定向的web界面怎么办?那还不简单,在容器管理界面添加多个端口和自定义域名不就行了,但同样的,caddy的配置文件也需要修改:
http://1.xxx.xxx {
#监听的自定义域名
redir https://kunkun.xxx:1234 permanent
#需要301重定向到的域名以及端口号
}
http://2.xxx.xxx {
redir https://kunkun.xxx:12345 permanent
}

原创文章,作者:kp51,如若转载,请注明出处:https://www.kepu51.com/instant-messaging/190.html