osnosn

  博客园 :: 首页 :: 博问 :: 闪存 :: :: 联系 :: 订阅 订阅 :: 管理 ::

udp-via-wss__haskell_安装_rust_安装

转载注明来源: 本文链接 来自osnosn的博客,写于 2022-11-23.

MarcelCoding/zia

  • 使用 rust 语言开发。
  • 还行。
  • 服务端和客户端分离
    参数使用环境变量传递
  • zia-server
    能做 ws 或 tcp 接入服务,指定连接到目标 IP 的 udp 口。
    本身不支持 wss。如果要 wss,需要前面套一个 https 的反向代理。
  • zia-client
    本地监听 udp 口,能连接 tcp,ws,wss。
    还能配置通过有认证的 http 代理去连接 tcp, ws, wss。
    连接 ws 或 wss 支持子目录。比如 ws://10.1.2.3:9999/ws-test/
  • v0.2.3 有bug。
    zia-client客户端,被连接一次,断开之后,就连不上了。
    需要重启 zia-client 才行。
  • 提供x86-64, arm64 架构的 Linux, windows, mac 编译好的文件。
    Linux程序,是动态链接的,基于gnu-libc,不能用于 openwrt 的 musl-libc
  • 以后可能会提供 静态链接的程序。就能用于 openwrt 了。
  • rust 的程序,client,server运行在16GB 内存机器中,初始申请了570MB 虚拟内存,实际才使用不到100kB。
    在512MB的op中,申请了150MB虚拟内存。

erebe/wstunnel

  • 使用 haskell 语言开发。
  • 似乎很不错。
  • 服务端和客户端,是同一个程序。
  • 服务端,
    能做 ws 或 wss 接入服务。可以强制指定目标 IP 和 tcp/udp 端口,也可以由客户端指定。
  • 客户端,
    本地监听 tcp/udp 口,能连接 ws, wss。
    还能配置通过有认证的 http 代理去连接 ws, wss。
    连接 ws 或 wss 支持子目录。
    比如 ws://10.1.2.3:9999/WS-test/, 需要用--upgradePathPrefix WS-test指定子目录。
    ws 目录,也支持 Basic认证
  • 从客户端多次重新连接/断开,都没问题。
  • 提供x86-64, arm64 架构的 Linux, windows, mac 编译好的文件。
  • x86-64 的Linux程序v4.1,是静态链接的。可以在openwrt中运行。
    arm64 的Linux程序v4.1,是动态链接的。不能在openwrt中运行。
    而arm64 的Linux程序v3.1,是静态链接的。可以在openwrt中运行。
  • haskell 开发的这个程序,运行在16GB 机器上时,初始就申请了256GB 虚拟内存,实际才使用不到100kB。太夸张了。
    512M的op中运行,也是申请256G。
    在另一个512M的op中居然申请了1024GB,似乎haskell能透过vm看到实体机的实际内存64GB+。
    (我见过的golang的程序,初始才申请几百MB 到几GB 的虚拟内存。)

安装 haskell

debian-11

  • debian-11 用 apt 安装 haskell
  • apt install haskell-platform
    0 upgraded, 113 newly installed, 0 to remove and 60 not upgraded.
    Need to get 137 MB of archives.
    After this operation, 1,232 MB of additional disk space will be used.
    安装完成后,实际占用硬盘 1287MB.
    
  • apt install haskell-stack
    占用硬盘 64 MB。

debian-10

  • 另一台机器
    apt install haskell-platform
    升级了 0 个软件包,新安装了 52 个软件包,要卸载 0 个软件包,有 535 个软件包未被升级。
    需要下载 154 MB 的归档。
    解压缩后会消耗 1,539 MB 的额外空间。
    安装完成后,实际占用硬盘 1502MB.
    
  • 第一次执行stack build,会自动安装些支持软件,
    但它的下载不支持断点续传,可以手工下载后提供给它。stack -v build看下载到哪里了。
  • debian-10 自带的haskell,版本太旧,不好用。
  • commercialhaskell/stack/
    最新版要求 glibc的版本>=2.29 。不想通过源码升级,避免其他服务出问题。放弃。

安装 rust

安装_rustup_cargo_rustc_交叉编译测试

  • debian-11,x86架构
  • debian-10,arm架构

----end----


转载注明来源: 本文链接 https://www.cnblogs.com/osnosn/p/16930051.html
来自 osnosn的博客 https://www.cnblogs.com/osnosn/ .


posted on 2022-11-27 16:53  osnosn  阅读(58)  评论(0编辑  收藏  举报