问题描述
突然发现通过cf的tunnel访问的威联通nas无法访问了,通过ssh登录nas发现网络断开,ping不通外网,但是内网可以ping通。
解决方法
上网随便查了下,手动添加了网关,问题解决。
不知道重启后会不会有问题,暂时记录下。
1 | cloudflared | 2023-10-31T02:27:43Z INF Retrying connection in up to 1m4s connIndex=0 event=0 ip=198.41.192.67 |
个人博客
突然发现通过cf的tunnel访问的威联通nas无法访问了,通过ssh登录nas发现网络断开,ping不通外网,但是内网可以ping通。
上网随便查了下,手动添加了网关,问题解决。
不知道重启后会不会有问题,暂时记录下。
1 | cloudflared | 2023-10-31T02:27:43Z INF Retrying connection in up to 1m4s connIndex=0 event=0 ip=198.41.192.67 |
Cloudflare WARP 可以做什么就不赘述了,这里记录下使用过程中的一些问题。
流量的获取有3种方法
/settings/general
; 邮箱后缀修改 /settings/devices/edit
;WARP有安卓、IOS、Windows、MacOS、Linux、等客户端,目前试过 MacOS、IOS、安卓,前两者非常简单,直接设置使用即可,安卓麻烦点。
就这些。
findOne
和 findAll
方法,当传入条件类似于 ['AND', ['id' => 1], ['>', 'num', 3]]
这样时,会导致结果与预期不符,且不会报错查找原因,这两个方法的 $condition
参数不可以与 where
方法的 $condition
视为等同,因为中间做了一层处理,代码如下:
1 | if (!ArrayHelper::isAssociative($condition) && !$condition instanceof ExpressionInterface) { |
其中 ArrayHelper::isAssociative($condition)
这句就是判断 $condition
是否是关联数组(associative array,相当于其它语言中的Map),如果不是关联数组,会再做处理,问题就出在这里。
由于条件中的 AND
是没有String Key的,ArrayHelper::isAssociative
判断为 false
,所以会把条件处理成 ['id' => ['AND', ['id' => 1], ['>', 'num', 3]]]
,最终导致结果与预期不符。
underscores_in_headers on|off;
用于允许 header 中出现下划线,这个配置默认是off
,所以如果 header 中出现下划线,默认情况下是会丢失的,使用中如非必要,header 中不要出现下划线,否则会丢失。实在需要下划线的话要记得改这项配置。相关文档:http://nginx.org/en/docs/http/ngx_http_core_module.html#underscores_in_headers
移动宽带价格较便宜,但是没有公网IPv4地址,所以一般的DDNS服务难以解决外网访问问题,经过一番设置,设置了IPv6 DDNS,外网可以访问了,但是访问需要客户侧网络支持IPv6,所以还是不够完美,于是开始了cloudflare折腾之旅。
这个很简单,只要把域名托管到cloudflare,然后在cloudflare的DNS设置里面添加一条A记录,指向服务器IP地址,然后在cloudflare的CDN设置里面开启CDN服务,就可以了。
折腾过程中有个坑,就是cloudflare的回源端口是有限制的,只支持几个固定的端口,如下:
HTTP: | 80 | 8080 | 8880 | 2052 | 2082 | 2086 | 2095 |
---|---|---|---|---|---|---|---|
HTTPS: | 443 | 8443 | 2053 | 2083 | 2087 | 2096 |
国内的民用宽带80,443端口都是被封的,cloudflare CDN服务也是同端口访问,所以考虑到搞个反向代理,将服务端口转为正常的HTTPS服务端口 443。
这里用到了 reflare 这个项目,这个项目是一个cloudflare的worker,一番折腾做好路由后,以失败告终。本次失败粗略得出两个结论(可能有误,求指正):
没想到这个Tunnel居然非常顺利,而且速度感觉也比CDN快。
附上步骤链接:https://zhuanlan.zhihu.com/p/591320825
教程是群晖的,我直接用的docker-compose,大同小异自己理解下即可
还有一个差别就是cloudflare 的 Tunnel 入口有所改变,面板独立到这里https://one.dash.cloudflare.com/了,但操作不影响
注意点:
No ENTRYPOINT | ENTRYPOINT exec_entry p1_entry | ENTRYPOINT [“exec_entry”, “p1_entry”] | |
---|---|---|---|
No CMD | error, not allowed | /bin/sh -c exec_entry p1_entry | exec_entry p1_entry |
CMD [“exec_cmd”, “p1_cmd”] | exec_cmd p1_cmd | /bin/sh -c exec_entry p1_entry | exec_entry p1_entry exec_cmd p1_cmd |
CMD exec_cmd p1_cmd | /bin/sh -c exec_cmd p1_cmd | /bin/sh -c exec_entry p1_entry | exec_entry p1_entry /bin/sh -c exec_cmd p1_cmd |
一句话抓重点: 如果 ENTRYPOINT 设置没有使用数组方式,CMD不会被执行
1 | FROM busybox |
1 | # 构建 |
1 | # 运行 |
运行镜像显示使用了:printf
--entrypoint
)1 | docker run --entrypoint="echo" overridden |
可以通过传参来设置新的CMD:
1 | docker run --entrypoint="echo" overridden thisisthenewcommand |
Github 报错如下:
kex_exchange_identification: Connection closed by remote host
fatal: Could not read from remote repository.Please make sure you have the correct access rights
and the repository exists.
解决方法如下:
编辑 ~/.ssh/config
文件
1 | Host github.com |
参考文档:
后面频繁出现 time out,解决方法,加代理
1 | # 必须是 github.com |
参考文档:
使用yilia主题打开网站会有个 https://litten.me:9005/badjs/?id=1&uin=xxxxxx
的访问一直转圈,主题作者最后维护已经是N年前,这个统计链接也早已失效
查找了一下,代码在themes/yilia/source-src/js/report.js
,但这里是源码,实际使用的是编译后的文件,所以更改这里并不能解决问题
文件:themes/yilia/source/main.0cf68a.js
查找
1 | 192:function(e,t,n){"use strict";function o(e){var t=new RegExp("(^|&)"+e+"=([^&]*)(&|$)","i"),n=window.location.search.substr(1).match(t);return null!=n?unescape(n[2]):null}var r=n(388);if(n(197),window.BJ_REPORT){BJ_REPORT.init({id:1}),BJ_REPORT.init({id:1,uin:window.location.origin,combo:0,delay:1e3,url:"//litten.me:9005/badjs/",ignore:[/Script error/i],random:1,repeat:5e5,onReport:function(e,t){},ext:{}});var i=window.location.host,a=top===window,u=!(/localhost/i.test(i)||/127.0.0.1/i.test(i)||/0.0.0.0/i.test(i));a&&u&&BJ_REPORT.report("yilia-"+window.location.host);var l=o("f"),c="yilia-from";l?(a&&BJ_REPORT.report("from-"+l),r.set(c,l)):document.referrer.indexOf(window.location.host)>=0?(l=r.get(c),l&&a&&BJ_REPORT.report("from-"+l)):r.remove(c)}e.exports={init:function(){}}}, |
替换为
1 | 192:function(e,t,n){}, |
这个配置文件中没有介绍到,很简单,在 themes/yilia/_config.yml
中加入一下两项即可:
1 | # 作者 |
原因就是Front-matter中设置 permalink
后,content.json
返回的数据中 path
比没有设置的左边多了个 /
源文件位置 themes/yilia/source-src/js/slider.js
85行,代码修改如下,修改位置见注释
1 | urlformat: (str) => { |
同样的,这里是原始文件,修改这里是无法生效的,所以需要在编译文件中替换如下:
文件位置:themes/yilia/source/slider.e37972.js
查找
1 | urlformat:function(t){return window.yiliaConfig&&window.yiliaConfig.root?window.yiliaConfig.root+t:"/"+t} |
替换为
1 | urlformat:function(t){t=t.replace(/^\/+/,'');return window.yiliaConfig&&window.yiliaConfig.root?window.yiliaConfig.root+t:"/"+t} |
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true