本文主要实现在OpenWRT路由器以及不同系统下通过tinc switch mode搭建SDLAN内网服务器方便远程连接,

Switch Mode相对来说配置比较简单,各节点均在同一广播域内,方便调控,tinc节点本身通过DNAT+SNAT可以实现对不同网间端口的调通,

同时Switch Mode中各节点的hosts文件只需保证在公网地址的节点中全部拥有维护即可,其他节点只需维护本节点以及公网节点的hosts文件

下面主要分三步:

(1)公网节点的部署(Master节点)

(2)其他节点的部署(Slave节点)

(3)节点的NAT配置

本次搭建的拓扑以下为例,两个Master节点,若干个Slave节点(以3个不同操作系统的为例)

- 阅读剩余部分 -

以本站为例,配置Github Pages同步到Qcloud腾讯云对象存储COS

主要是由于Github Pages + CloudFalre CDN的方式最近访问经常会出问题,所以不得不考虑将本站在国内也新增一个节点,

很久之前就已经尝试过 将本站部署到阿里、腾讯、又拍等地方,之前测试过兼容性最好的应该就是又拍云,但是无奈╮(╯▽╰)╭ 腾讯云还有很多优惠券还没使用,所以这次就先将其同步到腾讯云的对象存储+CDN。

方法主要是通过Github的Action功能,

先通过jekyll的docker生成_pages文件夹,然后通过coscmd同步文件到腾讯的对象存储中。CDN配置比较简单忽略。

主要是贴一下action的实现文件如下:

- 阅读剩余部分 -

Zerotier网卡NAT

包括SNAT+DNAT,以Openwrt自带iptables为例

情况举例:

目前有10节点的Zerotier终端,部分终端也是其它子网的网关,那么通过这个网关的端口可以映射子网内其它主机的端口

例如

作为网关br-lan接口地址为192.168.22.1

有一Zerotier子网地址192.168.193.6

那么如果要做一个Zerotier的子网端口映射 192.168.193.6:8080 -> 192.168.22.7:80

可以通过以下iptables规则

iptables -A input_rule -i zt+ -j ACCEPT
iptables -A forwarding_rule -i zt+ -j ACCEPT
iptables -A forwarding_rule -o zt+ -j ACCEPT
iptables -A output_rule -o zt+ -j ACCEPT

iptables -t nat -A POSTROUTING -s 0.0.0.0/0 -o br-lan -j SNAT --to 192.168.22.1

iptables -t nat -A PREROUTING -i ztuku6smag -p tcp -d 192.168.193.6 --dport 8080 -j DNAT --to-destination 192.168.22.7:80

希望大家身体健康

2020又一新年了

今年第一篇贴一个通过Cloudflare API更新DNS记录的脚本

过程基于OpenWRT系统,需要先安装curljsonfilter

先在Profile->api-tokens中申请一个API Token,权限需要Zone->Zone以及Zone->DNS的Edit权限

得到的token作为变量cftoken

- 阅读剩余部分 -

通过Zerotier组大内网

目前加了7个活跃节点进来,2台PC,一台腾讯云服务器,4台OpenWRT路由器。

腾讯云和其中一台有公网IP的OpenWRT作为Moons卫星中继,

测试了两个不同地方的内网设备,带宽能跑到40.8 Mbits/sec,超出预期的效果。

- 阅读剩余部分 -

本文主要实现OpenWRT系统通过Huawei 3G Modem加asterisk套件将GSM通话转为SIP通话

安装openwrt下的asterisk16套件

opkg update
opkg install asterisk16-app-system asterisk16-chan-dongle asterisk16-pjsip asterisk16-codec-ulaw asterisk16-codec-alaw asterisk16-res-rtp-asterisk asterisk16-bridge-simple

调整PJSIP作为默认服务,并且新增几个PJSIP账户,用以测试内线通

- 阅读剩余部分 -

Coding项目通过Jenkins生成jekyll并发布到腾讯云对象存储Qcloud COS

主要是通过Coding Git + 自带的Jenkins构建Docker以及coscmd同步

贴一下Jenkins的实现文件如下:

- 阅读剩余部分 -