Node:vm和vm2
node vm
作用:
最基本的作用是,为被调用的代码提供一个不同于调用代码的全局对象。这就避免了使用 eval() 时会出现的,能访问当前作用域的所有变量的情况。
同时,该模块支持控制代码块的编译、保存和运行。
方式:
使用 V8 Context 编译和运行代码。
代码块编译、保存和运行
1234567891011121314151617const vm = require('node:vm');// ====== 方式一:立即编译并执行 ======vm.runInNewContext('x + 1', { x: 2 }); // 返回 3// ====== 方式二:先编译,稍后再执行 ======// 第一步:编译(此时不执行)const script = new vm.Script('x + 1');// 可以过很久……// 第二步:想什么时候执行就什么时候执行,还能在不同 context 里反复执行const ctx1 = vm.createContext({ x: 10 }) ...
IPv6 & WireGuard 大战看不见的敌人
前情提要
我的需求是从外面方便地访问家里的另一台电脑(能 ssh 上就行),并且我不喜欢多装太多服务在工作电脑上。
家里的电脑是一台 kali,是我们预备连接的 server。外面这台我经常带着跑的是 windows 系统,是 client。为了简单起见,我后面直接叫它们 kali 和 windows。
<<<<<<< HEAD
b554a624d262f3d101562d676a05454784af0fc4
嘉宾介绍
首先是一个符合国情的需求:两台电脑都要有梯子。我在两边都装了 Clash Verge Rev,并且开了 TUN 模式,按照规则转发。梯子常年开着,这意味着两边的虚拟网卡都被 Clash 接管。
kali 的环境
租房处提供的路由器,普通的 DHCP。经过测试,kali 在这里没有独立的 IPv4 地址,是通过 NAT 出去的,一家人穿一条裤子出门。但是!好消息是它有独立的 IPv6 地址。这意味着我有机会不经过 NAT 转换,直接点对点连上这台电脑。
windows 的环境
这个就比较复杂了。分类 ...

