轶哥

妄图改变世界的全栈程序员。

ESXI+爱快+LEDE 开启IPv6

ESXI+爱快+LEDE的搭配是非常高效的,兼容性也很好。开启IPv6的前提条件是爱快负责DHCP,LEDE作为旁路由模式,路由器改为桥接模式(或配置了IPv6 DHCPv6,且依照下文iKuai的配置方法进行配置)。

目前移动、联通、电信三大运营商都已经为客户分配了公网IPv6。鹏博士(长城宽带)尚未支持IPv6,不过鹏博士可以通过NAT优化渠道支持IPv6。

ESXI+爱快+LEDE 使用2.5G USB网卡 RTL8156

目前爱快完美兼容芯片为RTL8156的2.5G USB有线网卡。目前OpenWRT(LEDE)尚不支持RTL8156。

爱快需要升级到3.4.0+。该版本新增兼容的型号:

  1. PCI网卡驱动:RTL8125
  2. USB有线网卡驱动:RTL8150/8152/8153/8156,AX88179/8817x

ESXI+爱快+LEDE搭配,可以实现完美驱动该网卡,打造2.5G软路由。目前支持2.5G的设备不多,常见的是小米AX6000无线路由器,TP-Link新出的2.5G交换机,自带2.5G口的群辉等,当然群辉+绿联RTL8156也是非常稳定的。

让爱快兼容USB网卡的思路也是先让网卡直通。只不过这里得先让USB控制器直通。

Linux配置Swap

编译程序的时候可能出现aarch64-linux-gnu-gcc: internal compiler error: Killed (program cc1)类似的报错。这是由于内存不足引起的。可以通过开启Swap分区解决。开启swap,即使用一部分硬盘作为虚拟内存,解决内存容量不足的情况。

Json Schema定义“既可以是对象,又可以是数组”

如果我想定义json的内容(root)既可以是一个对象,又可以是一个数组,应该如何书写json schema?

这个问题换一种描述方式,“json schema定义了一个对象,但是希望内容也可以是这个对象的数组,如何书写json schema?”。

例如,Typescript中:root: object | [object]

例如,我希望数据可以是下面这样的一个对象:

{
  "method": "GET"
}

也可以是这样的数组:

[
  {
    "method": "GET"
  }
]
win10链路聚合,双网卡带宽叠加负载均衡

设备具有两个及以上网卡就有可能实现链路聚合,进行带宽叠加。windows平台提供了一些链路聚合的实现方案。

链路聚合方案

  1. 双网卡都设置同样的跃点数(Metric)。需要符合链接速度,参阅
  2. NetSwitchTeam(推荐)
  3. NIC 组合(仅windows server平台)
  4. Intel® PROSet(仅用于Intel部分网卡,需要驱动支持。详见官方文档,不再赘述)
brew安装python2

Homebrew是MacOS中绝佳的包管理工具。通过brew安装pyton3非常容易brew install python@3,将会自动添加python3pip3命令。

关于python的安装,在Homebrew官网给出了详细的说明:https://docs.brew.sh/Homebrew-and-Python

Homebrew provided a python@2 formula until the end of 2019, at which point it was removed due to the Python 2 deprecation.

根据提示,我们知道python@2已经被移除。在2020年初,python@2仍然可以正常安装,但就在不久前,官方移除了python@2。我对Homebrew官方的操作表示支持和理解,毕竟技术的更新和迭代是不可逆转的,是需要大家一起支持的。

JavaScript练习题

学习JavaScript绝佳的方法是阅读代码。阅读代码需要熟悉JavaScript的基本语法,包括作用域、类型及类型转换、原型链、函数、异步、闭包等内容。In-JavaScript-we-trust给我们提供了非常好的练习素材。

赶紧自测一下JavaScript掌握得怎么样!

H5在线练习地址https://js.wyr.me

仅支持手机访问(毕竟做完68道题是需要耐心的,这是为了避免打开调试界面偷懒而设计)。

Linux使用4G/5G无线网卡模块上网

识别模块

5G模块

将4G/5G开发板插入设备,终端输入lsusblspci,看设备是否识别到4G/5G模块。

root@raspberrypi:~ $ lsusb
Bus 001 Device 001: ID 05c6:1000 Qualcomm, Inc. Mass Storage Device

以树莓派(Raspberry)为例,上述命令显示设备识别到高通芯片的4G模块。了解更多详情请阅读《Linux安装无线网卡驱动通用方法》

需要特别注意的是,部分4G模块(特别是性能较好的高通芯片)是内核免驱,载入成功后直接体现为网卡。使用ifconfig即可直接看到网卡并能上网。这种情况下,USB接口实现的是一个USB网卡端,类似于Raspberry OTG USB上网。参考:《树莓派4使用OTG功能变身有线网卡》

  上一页下一页