leenldk 发布的文章

目前问题:
服务器上用公网IPv4的 v2ray 在校园网中可以正常使用,在移动网络下无法连接

服务器代理

在本地使用 remote port forwarding 将本地 7890 端口 forward 到 gorgon 7890 端口
在 gorgon 上使用 remote port forwarding 将本地 7890 端口 forward 到 i1 7890 端口 ssh -R 7890:localhost:7890 e1.sc.team
在 i1 上 export ALL_PROXY="127.0.0.1:7890" 使用代理

wsl 代理

cat /etc/resolv.conf 查看 dns nameserver
export ALL_PROXY="http://$nameserver:7890

翻墙wifi

基本策略:需要翻墙的设备A和提供翻墙的手机B连接同一wifi的局域网,设备A配置代理到手机B,手机B运行翻墙软件并允许局域网的连接。
由于局域网问题,wifi不能由校园网提供,目前解决方案使用手机C开启热点提供wifi

可行的方法:
手机C开启热点,同时热点走校园网wifi
手机B连接手机C热点,使用 v2rayNG,配置文件使用blog,设置允许局域网的连接
设备A连接手机C热点,设置代理端口为 手机B v2rayNG HTTP代理端口,代理服务器为手机B在局域网中 IP。

已知 ios 转日区若当前在日本 IP 则可以不绑定支付方式。

linux 服务器翻墙

服务器安装 v2ray
注意 wget 不支持 socks5 协议,测试时请使用 curl

v2ray 配置文件如下:

{
  "inbounds": [
    {
      "port": local_port, // 监听端口
      "protocol": "socks", // 入口协议为 SOCKS 5
      "sniffing": {
        "enabled": true,
        "destOverride": ["http", "tls"]
      },
      "settings": {
        "auth": "noauth"  //socks的认证设置,noauth 代表不认证,由于 socks 通常在客户端使用,所以这里不认证
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "vmess", // 出口协议
      "settings": {
        "vnext": [
          {
            "address": "server_ip", // 服务器地址,请修改为你自己的服务器 IP 或域名
            "port": server_port,  // 服务器端口
            "users": [
              {
                "id": "server_uuid",  // 用户 ID,必须与服务器端配置相同
                "alterId": server_alterId // 此处的值也应当与服务器相同
              }
            ]
          }
        ]
      }
    }
  ]
}

然后 export http_proxy=socks5://127.0.0.1:[local_port]

ELF : executable and linkable format
四类 ELF : 可执行文件,object file, shared library, core dump

单个 source code 转 单个 object file
object file 静态链接转 static library(.a)
object file 动态链接转 dynamic/shared library(.so)

nm -Du :列出需要外界提供的 symbol
export LD_DEBUG=libs : 输出 library 查找过程
export LD_DEBUG=symbols : 输出 symbol 查找过程
LD_PRELOAD 环境变量:最先查找符号

编译时:

编译 so :
gcc -g -fPIC -c foo.c
gcc -shared foo.o -o libfoo.so

链接:
gcc -g -o main main.c libfoo.so
gcc -g -o main main.c -lfoo -L.
效果相同
-L{$DIR} : 查找 DIR 路径

real name : libX.so.A.B.C
soname : 软链接 libX.so.A -> libX.so.A.B.C
linker name : 软链接 libX.so -> libX.so.A
编译时 -soname (-Wl,-soname,libfoo.so.2) 选项使 ldconfig 时产生 soname 软链接

-Wl,-rpath,`pwd` # 编译时添加 rpath寻找路径

compiler : 程序转汇编
assembler : 汇编转机器码
linker : 把多个 object file 合成为单个 executable, library file 或 另一个 object file

似乎该恢复这个系列了

shell 脚本的执行方式目前看起来是 依次从脚本中读入一行,执行一行。因此不要在运行中途改脚本。

不同前缀修改字号大小:

tiny
\scriptsize
\footnotesize
\small
\normalsize
\large
\Large
\LARGE
\huge
\Huge

“世界上居然存在从1开始indexing的语言”

函数句柄:f = @(t) 2*t,可以通过 f(2) 等求值
符号表达式: syms x; f = 2 * x; 可以化简相加等,求单点值:subs(f, x, 1)

函数句柄转符号表达式 : y = f(t)
符号表达式转函数句柄: F = matlabFunction(f)

vpa(x) 转为小数表示

CTRL + R 多行注释,CTRL + T 取消注释

1:0.1:2 将区间 [1,2] 按 0.1 切分
linspace(x1, x2, n) 将区间 [x1, x2] 等分为 n 份
trapz(X, Y) 梯形公式求积分,Y 为函数值 vector,X 为 数或与 Y size 相同 vector

定义函数:

function ouput = name(input)
    // content
end

函数必须在文件末尾

输出:
disp(X)
不在开头输出 X=,直接输出内容

不等于:
~=

for 循环 :

for i = -7:1e-5:0
end

多维数组 : c = [a;b]
数组总长度 : length(a)
数组形状 : size(a)
数组切片 : a(1:2)
数组写入excel : xlswrite("test.xlsx", a)

绘图

ezplot(f, [0, 2]) 绘制 [0, 2] 内函数 f
plot(x, y) 以 x 和 y 内的点作图
grid on 开启网格

矩阵操作

norm(x) : 向量或矩阵 x 的二范数
cond(x) : 矩阵 x 的二条件数
eig(x) : 矩阵 x 全部特征值
vrho(x) : 矩阵 x 谱半径(最大特征值模长)
length(x) : 矩阵 x 最大维度长度

数学函数

normpdf(x) : 标准正态分布函数
normcdf(x) : 标准正态分布函数积分
norminv(x) : normcdf逆函数
chi2cdf(x, n) : 卡方分布函数积分
chi2inv(1-a, n) : idchi2 逆函数