分类 技术 下的文章

Google Cloud Platform(gcp)谷歌云安装Routeros

一般vps都可以通过dd来安装routeros软路由系统,可以参考青云主机安装routeros,附一键安装routeros脚本
gcp由于特殊的架构设计直接dd routeros的img文件不能正常启动
以下为通过gcp 的storage创建镜像方式安装routeros系统

1,macos系统安装必要工具

brew install wget
brew install truncate
brew install gnu-tar

2,下载routeros chr镜像Raw disk image

wget https://download.mikrotik.com/routeros/6.46.3/chr-6.46.3.img.zip

3,解压镜像文件

unzip chr-6.46.3.img.zip

4,按照gcp创建镜像规则制作镜像文件

4.1,扩展镜像空间,镜像占用大小需要是1G整倍数

truncate -s 1G chr-6.46.3.img

4.2,重命名镜像文件,镜像文件需要以disk.raw命名

mv chr-6.46.3.img disk.raw

4.3,打包镜像,打包文件名需要以.tar.gz结尾

gtar -Sczf chr-6.46.3.tar.gz disk.raw

我已经打包好的镜像,zip解压出gz包后再使用
5,上传到gcp到storage
6,在gcp到compute engine到映像下创建映像
来源选择Cloud Storage 文件中刚上传到chr-6.46.3.tar.gz文件
7,创建instance的时候使用自建映像或者已创建的instance删除原启动磁盘后新建以自建映像创建新磁盘

macos单独设置app的程序语言

个人习惯macos系统语言为英文,app在默认情况下跟随系统,不像ios可以单独设置。有些专业app上一些专有名词不熟悉还是需要查词典,比较影响效率,需要单独设置app语言。
首先查询app的包名

mdls -name kMDItemCFBundleIdentifier /Applications/Final\ Cut\ Pro.app

然后修改默认语言

修改为中文

defaults write com.apple.FinalCut AppleLanguages '("zh_CN")'

修改为英文

defaults write com.apple.FinalCut AppleLanguages '("en")'

实际写入的文件地址为

~/Library/Preferences/com.apple.FinalCut.plist

默认是没有这个属性的
修改后查询

defaults read com.apple.FinalCut AppleLanguages
(
    "zh_CN"
)

附语言代码
ar = Arabic
cs = Czech
da = Danish
de = German
el = Greek
en = English (US)
es = Spanish
fi = Finnish
fr = French
he = Hebrew
hu = Hungarian
id = Indonesian
it = Italian
ja = Japanese
ko = Korean
nl = Netherlands
no = Norwegian
pl = Polish
pt_PT = Portuguese
pt = Portuguese Brazil
ru = Russian
sk = Slovak
sv = Swedish
th = Thai
tr = Turkish
zh_CN = Chinese Simplified
zh_TW = Chinese Taiwan

ikev2自动更新let's encrypt证书

由于ikev2不能使用通配符证书,使用免费一年期证书存在一定风险(比如阿里云,通过证书可以找到跟域名关联的账号,进而实名查水表),所以推荐使用let's encrypt证书。但是let's encrypt证书有一个问题就是有效期只有三个月,所以写了个脚本自动更新证书。

以下以dns更新证书方式,域名dns服务商为cloudflare为例,服务器需要已经使用ikev2自动安装脚本安装ikev2(可以选择自签名证书),python包管理工具pip,

首先拿到cloudflare的Global API Key,目前certbot还不支持cloudflare的 zone api key

创建脚本使用的cloudflare的账号密码文件,记住路径填写到脚本的CLOUDFLARE_CREDENTIALS后

# Cloudflare API credentials used by Certbot
dns_cloudflare_email = cloudflare@example.com
dns_cloudflare_api_key = 0123456789abcdef0123456789abcdef01234567

并修改密码文件权限为400,防止certbot报错

chmod 0400 #文件路径

自动更新脚本,CERT_DOMAIN是ikev2证书的域名,CLOUDFLARE_CREDENTIALS是cloudflare账号密码文件路径,LE_EMAIL是let's encrypt证书联系邮箱(证书过期提醒)

脚本会检测是否安装certbot,域名证书是否第一次签发,证书是否需要更新,并将新证书复制到ipsec的证书目录

#! /bin/bash
CERT_DOMAIN=vpn.example.com
CLOUDFLARE_CREDENTIALS='/root/letsencrypt/cloudflarednsapi.conf'
LE_EMAIL='example@gmail.com'


function checkcertbot(){
if [ -z "`pip list certbot-dns-cloudflare |grep certbot-dns-cloudflare`" ];
then
pip install certbot-dns-cloudflare
fi
}

function checkcert(){
if [ ! -f "/etc/letsencrypt/live/${CERT_DOMAIN}/cert.pem" ];
then renewipseccert
else
CERT_EXPIRE=$(openssl x509 -checkend 1728000 -noout -in /etc/letsencrypt/live/$CERT_DOMAIN/cert.pem|grep not)
if [ -z "$CERT_EXPIRE" ];
then
renewipseccert
else
echo "The cert will not expire in 20 days,nothing to do."
fi
fi
}


function renewipseccert(){
/usr/local/bin/certbot  certonly -d ${CERT_DOMAIN} \
--agree-tos \
--non-interactive \
--email $LE_EMAIL  \
--dns-cloudflare \
--dns-cloudflare-credentials ${CLOUDFLARE_CREDENTIALS}
cp /etc/letsencrypt/live/$CERT_DOMAIN/chain.pem /usr/local/etc/ipsec.d/cacerts/ca.cert.pem
cp /etc/letsencrypt/live/$CERT_DOMAIN/cert.pem /usr/local/etc/ipsec.d/certs/server.cert.pem
cp /etc/letsencrypt/live/$CERT_DOMAIN/privkey.pem /usr/local/etc/ipsec.d/private/server.pem
/usr/sbin/service ipsec restart
}

checkcertbot
checkcert

在crontab里添加每5天执行一次即可

crontab -e
0 0 */5 * * #脚本路径


40Gbps交换机CRS326-24S+2Q+RM开箱及拆解

mikrotik 2019年底发布了他家最高带宽交换机CRS326-24S+2Q+RM,24个10gbps的sfp+口,2个40gbps的qsfp+口
45度照
正面
背面
内部
此交换机配置了三个4cm的三线高转速风速,短期观察有四档温度调节,停转,电压6v低速3k转,9v中速4k转,12v高速6k转,噪音较大,这里更换了猫扇NF-A4x20 PWM,主板风扇接口是4口,而且手上没有NF-A4x20 FLX,所以就直接用了pwm的,短暂测试没有发现问题,系统也可以看到转速。
风扇
风扇
同时购入了两个sfp+转万兆电口模块S+RJ10
万兆电口模块
预计此交换机将替代现在的xs716t成为我的核心交换机

群晖FS1018升级4万兆网络

最近看各位up主纷纷升级了万兆,并且mikrotik新出了40gbps的交换机,我也升级一下我的全固态nas。
我的synology全固态nas FS1018原本用的网卡是x710-da2,这次升级成为xl710-qda2,intel 的40gbps网卡,100gbps的话就需要mellanox的了,intel目前还没有,而且mellanox便宜的二手卡大部分是InfiniBand网卡而不是以太网卡。
群晖FS1018使用的是两张pcie x4转接的12个sata,xl710-qda2使用的是pcie-3.0 x8的接口,按接口来说足够4000MB/s了,但是由于群晖买软件送硬件的特性,FS1018配备的这个奔腾D1508比较孱弱,不知道是否能跑满,由于交换机还没到所以速度测试后面补上。
xl710-qda2使用的是国产寨卡(大厂保修3年),模块也是intel的,是原装还是山寨不清楚
第一次接触40g光纤,使用的mpo接口,以太网卡使用8芯,由于历史原因网速大部分成品都是12芯的,12芯兼容8芯,这里使用的也是12芯。在10g网络以下光纤一般使用双芯lc接口,家用宽带使用单芯sc接口,而mop接口单排8或12芯,更有双排24芯,具体请自行搜索。
下面上图
网卡x710-da2和xl710-qda2
xl710-qda2芯片
xl710-qda2上机
intel 40g模块
模块光纤接口
模块上机
mpo接口光纤

群晖的兼容性列表里没有xl710-qda2,但是按经验intel的驱动兼容自家大部分产品,换之前还稍微有点担心,下图是群晖正确识别
群晖识别xl710-qda2
以下是ssh登陆群晖看到的dmesg内容

[ 58.168571] Intel(R) 10GbE PCI Express Linux Network Driver - version 5.1.3
[ 58.176352] Copyright(c) 1999 - 2017 Intel Corporation.
[ 58.189592] i40e: Intel(R) 40-10 Gigabit Ethernet Connection Network Driver - version 2.3.6
[ 58.198928] i40e: Copyright(c) 2013 - 2017 Intel Corporation.
[ 58.218788] i40e 0000:01:00.0: fw 6.0.48442 api 1.7 nvm 6.01 0x80003492 0.0.0
[ 58.459081] i40e 0000:01:00.0: MAC address: 68:91:d0:xx:xx:xx
[ 58.470715] i40e 0000:01:00.0: PCI-Express: Speed 8.0GT/s Width x8
[ 58.478036] i40e 0000:01:00.0: User requested queue count/HW max RSS count: 0/64
[ 58.486401] i40e 0000:01:00.0: Features: PF-id[0] VFs: 64 VSIs: 66 QP: 4 RSS FD_ATR FD_SB NTUPLE CloudF VxLAN NVGRE PTP VEPA
[ 58.511205] i40e 0000:01:00.1: fw 6.0.48442 api 1.7 nvm 6.01 0x80003492 0.0.0
[ 58.751255] i40e 0000:01:00.1: MAC address: 68:91:d0:xx:xx:xx
[ 58.762888] i40e 0000:01:00.1: PCI-Express: Speed 8.0GT/s Width x8
[ 58.770209] i40e 0000:01:00.1: User requested queue count/HW max RSS count: 0/64
[ 58.778572] i40e 0000:01:00.1: Features: PF-id[1] VFs: 64 VSIs: 66 QP: 4 RSS FD_ATR FD_SB NTUPLE CloudF VxLAN NVGRE PTP VEPA