群晖+ipv6+cloudflare实现外部访问

前提🎈🎈🎈🎈🎈🎈:拥有自己的域名。 域名如果没有的话,可以找供应商买一个,一般的小众域名10年也就100来块。国内腾讯云和阿里云都提供的。 家里的nas之前折腾了好久的ipv6,终于实现了ipv6的对外访问。美中不足的是现在好多地方的wifi仍旧是不支持ipv6的。虽然可以通过中国移动的热点解决。但终究还是不够完美。 今天突然想起来,cloudflare是支持免费cdn的。登上自己好久不用的cloudflare账户,看了下果然是可以的。剩下的就是根据提示一步步添加自己的网站。要注意的一点是cloudflare同步原来的域名供应商的解析时可能会漏掉一部分解析。这个需要自己小心检查下,可以手工再补上。其他的就按照cloudflare的提示操作即可。 在cloudflare上添加好自己的网站,并确定把自己的域名解析服务器切换到cloudflare的域名服务器上(这个解析是要在原来域名解析的供应商出修改,比如我的域名是在腾讯云上购买的,那么就需要在腾讯云上进行调整)。如果你调整好了,那么剩下就要等待了。cloudflare发现你的解析已经生效之后,在页面上时可以看到你的域名已经被cloudflare托管了。 后续你的域名解析就都可以在cloudflare上配置了。注意配置的时候要选择被cloudflare代理,这样网络流量就先走cloudflare,然后才是你的服务器。这样配置完之后,你的dns解析地址就可以只配置AAAA记录(也就是ipv6解析)。因为访问你网站的不再是真实客户,而是cloudflare。cloudflare就是v4/v6通吃了。 以下为特殊注意的地方 一个是如果你的网站是http,而你在cloudflare上勾选了强制https的话。那么你的网站可能会有一定几率报错。因为网站上的某些连接并不支持强制https。我这里的wordpress就遇到了这种情况。解决方案就是上插件。worepress插件really-simple-ssl非常好用,安装完之后,网站就再也没有遇到这个错误了。 第二个就是cloudflare上的DNS解析的DDNS问题了。一般家庭宽带是没有固定的ip的。即使ipv6运营商也没有给固定的。这个时候就需要DDNS解决这个问题了。这个大家可以参考 cloudflare-ddns, 非常好用,配置也简单。docker和linux-cron用起来都是很简单的。

2022-01-27 17:52 · 1 min · 江波·林沂

自定义推送消息至自己的apple设备

今天逛v2ex时,看到了一个之前自己有想法但是一直没动手的应用。bark,可以让用户在没有自己的app的前提下,推送消息到个人的apple设备。 使用起来也很简单,下载bark应用,打开就可以看到各种推送接口。而且还可以测试。点击测试之后,一个简单的http get请求即打开在safari中,立刻手机也收到了通知。使用起来非常便捷。 看了看作者的github,发现作者还兼顾了隐私要求,可以让用户自己定义服务端,无需通过作者自己的服务器。按照作者的说明在自己的nas立刻搭建起来,全程花了不到10分钟。然后在app上设置了下自己的服务器地址,curl测试下,非常完美。推送即刻到达。后续研究下怎么把notion上的通知推送到自己的手机上。个人的bark服务器:bark. 欢迎大家使用,仅支持ipv6🤔.(现已支持ipv4,2022.02.05)

2022-01-26 16:11 · 1 min · 江波·林沂

上传本机SSD硬盘使用量情况至notion

M1的Mac有个让人比较关注的点,就是它的ssd硬盘的写入量相比于以前有个很大的提高。写入量的提高可能会导致磁盘提前报废,之前也在网络上引起了很大的讨论。 我这台Mac买来的时候,因为是官翻机的缘故。当时已经有3个T的写入量了。开始的时候我几乎天天观察,每天坚持写入量。但是一连十几天都没什么大的变化。后面也就没怎么看了。最近再看,发现写入量已经达到16.5T了,这个变化有个大,毕竟也就买回来不到4个月。 为了能够不再被蒙在鼓里,我决定写个脚本,每天上传SSD硬盘的信息到notion中,这样就不会稀里糊涂的看到硬盘写入量飙升,详细代码如下: package main import ( "bytes" "fmt" "io/ioutil" "log" "net/http" "os/exec" "strings" "time" ) func main() { fmt.Println("Hello World") out, err := RunCommand("/opt/homebrew/Cellar/smartmontools/7.2/bin/smartctl", "-a", "/dev/disk0") if err != nil { fmt.Println(err) } fmt.Println(out) out = strings.ReplaceAll(out, "\x00", "") outs := strings.Split(out, "\n") var written string var read string for _, str := range outs { if strings.HasPrefix(str, "Data Units Written") { fmt.Println(str) writtens := strings.Split(str, "[") fmt.Println(writtens[1]) written = strings....

2022-01-25 23:00 · 2 min · 江波·林沂

Ipv6腾讯云DDNS配置

自从家里的设备全部支持ipv6后(如何支持见上文), 怎么说呢,就一发不可收拾了。总想着尽可能的利用起来ipv6。想起来自己还有个域名,就尝试着试试看能不能让自己的域名仅支持ipv6。 试了之后发现还是挺简单的,虽然不能直接在域名解析上添加A记录,但是腾讯云还是很友好的发现的想添加的是一个ipv6的地址,于是就指引我去添加AAAA的记录过去了。添加完之后,就等着解析了。很快家里的网络就可以正常解析我只添加了AAAA记录的新地址blog.jiangbo.space。我的博客流程的打开了。 这里有一点比较坑的是,如果你使用了代理工具,特别是clash,这个是亲测可能会有影响的。我目前使用机场的配置文件中默认是不支持ipv6的,导致我走了很多弯路。如果使用这种不支持ipv6的配置,又使用了clash的代理,那么很不幸,即使你本地网络支持ipv6你也不能正常访问仅提供ipv6支持的网站。clash的配置要支持ipv6倒是也简单,添加ipv6:true即可。还望广大机场能尽快跟进,默认配置中就加上这句话。 域名解析添加以后,开始几天倒是还是正常使用的。我一致以为ipv6那么多,运营商现在肯定是给每个用户一个固定的ipv6地址。后来才发现我多想了,现在依旧是动态的,而且是动态的前缀,这就导致我配置一次AAAA记录是不行的。等到路由器断线重连之后,家里网络的ipv6地址就换了个边。这种情况就需要DDNS登场了。 我用的腾讯云解析的dns,这个可能比较小众,反正是没有找到现成的代码。这个时候就发现程序员的主观能动性了,自己主动撸一个了。写起来倒是比较简单,腾讯云还可以主动生成大部分代码,剩下的就是拼拼凑凑了。放在ubuntun上跑起来也简单,直接定时任务没5分钟刷一次好了。具体代码如下: package main import ( "fmt" "net" "regexp" "strings" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile" dnspod "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod/v20210323" ) const dnsPodDomain = "dnspod.tencentcloudapi.com" // 主域名,不包含www const domain = "" // 腾讯云secretId const secretId = "" // 腾讯云secretKey const secretKey = "" func main() { // 目标子域名 subDomains := []string{"ipv6"} // 密钥 credential := common.NewCredential( secretId, secretKey, ) ipv6 := getMyIPV6() fmt.Printf("ipv6地址: %s\n", ipv6) cpf := profile.NewClientProfile() cpf.HttpProfile.Endpoint = dnsPodDomain client, _ := dnspod....

2022-01-25 22:42 · 2 min · 江波·林沂

Mac重新设置

2016-12-24 Mac重新设置 1. 从设置中找出中文输入法。 2. 从Dock中移除邮件,siri和iBooks。 3. 设置触控板为自己喜欢的方式,比如点击,以及三指拖拽。 4. 下载Tyora,这玩意就是用来写this的。 5. 下载Spark,这个玩意是收邮件的,目前我在Mac上找到的最好的邮件客户端了;下载HandShaker,这个用来管理我的一台小米平板,不得不说老罗的Mac软件做的还是有良心的。 6. 又装了微信,看来微信要通知整个世界里。连电脑也离不开它了。 7. 安装Oh My ZSH 8. 给vim加上行数显示及配色。(这里遇到了问题,查了下才发现是因为mac osX 10.10以上启用了新的内核安装机制。最终在简书上找到了解决方案。[地址](http://www.jianshu.com/p/22b89f19afd6) 9. 安装Homebrew。 10. 安装imagemagick和tesseract,这两个事用来做图片识别的。目的是为了学习一个electron的demo。(安装中还是遇到了些问题,tesseract调用时总是显示需要安装环境变量,还好注释够明显,根据注释和安装目录最终配置好了。[ElectronOCR](https://github.com/wxyyxc1992/ElectronOCR) 今天打算暂时就先做到这一步了,这次重装电脑本来就是给电脑减负的,就不一股脑把所有软件都装了。 2016-12-25 设置Vi 1. 设置vi,这个比较简单。就是编辑.vimrc,如果没有就新增。vi ~/.vimrc 在文件后加上syntax on set nu 就可以了。因为我的设置比较简单,就加上颜色和行号久可以了。今天不打算干什么了,就是继续看下了ElectronOCR的代码,不过还是一堆问题,跑不起来。哎! 2016-12-26 安装easyconnect 1. 因为在家要连公司服务器验证,所以想起来要安装easyconnect。结果发现一地狗血。怎么安装都是失败。后来好不容易想起来要安装java,最终还是失败只能明天继续解决。Mac上安装java。讨厌自己从oracle中下载安装就google了下。发现由于java协议的问题,大多没有比较好的建议。不过最终还是找到了brew cask,最终一个命令行搞定。 2016-12-27 调试Electron 1. 下载Electron几天了,一直没把界面真正跑起来。今天带电脑到公司,突然发现是源码中不知怎么少掉了一个目录,于是在github中把源码重新脱下来,最终还是跑起来了。跑起来之后想看看到底是怎么写的,但是发现没有合适的编辑器,vi用着不是很方便,最终还是决定安装visual code。 2016-12-30 1. 安装py模块mustaine,这个模块主要用来使用hessian的。(本来不用管的,只可惜接口的小姑娘太漂亮了)rtx,这个公司必备,没办法呀。政治需要。 2016-12-31 定个小目标 1. 昨天在公司让IT同事在公司安装easyconnect,最后还是失败。后来google一下,发现是vpn服务器的问题,这就没办法了。公司级别事情不是我能解决的了的,只能等喽。实在不行再回退到10.10也行。暂时还是先等吧。打算用node.js抓去下今日头条的评论数据。看看评论世界的水有多深。算是暂时定个小目标吧。

2022-01-25 16:40 · 1 min · 江波·林沂