Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

yuki.nu/g/yukinet

Package Overview
Dependencies
Alerts
File Explorer
Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

yuki.nu/g/yukinet

  • v0.2.37
  • Go
  • Socket score

Version published
Created
Source

Yukicat

Yukicat 是一个多功能转发工具,它能够实现以下功能

  • Socket 转发:
    • 实现基础的 TCP/UDP 转发功能。
    • TCP/UDP 的加密转发,转发协议为 chacha20-poly1305。UDP 的加密模式可以选择性配置 FEC 编码来降低丢包率。
  • Proxy
    • 对于 TCP 协议,可以实现代理的服务/客户端功能。
  • Mesh VPN:
    • 在设置了 Discovery Service 后,能够基于此服务实现 Mesh VPN 功能。

项目说明

本仓库包含以下程序:

  • ./cmd/cat: 本工具。
  • ./android: Mesh VPN 的 Andorid Apk.
  • ./cmd/server: 可选的中继及发现服务器。

使用说明

yukicat 将用户的行为简单归纳为将某类数据匹配到某类数据上, 如将一个TCP端口的数据匹配到一个远程的代理服务上。作为一个命令行工具, yukicat 需要用户提供两个 URL 地址来表达他们的意图。

基础用法

以下命令将会将本地的 8080/tcp 端口转发至远程的 example.com 的端口 123/tcp (XTCP本程序提供的TCP加密隧道)。

yukicat tcp://127.0.0.1:8080 xtcp://example.com:123

类似地,以下是一个 UDP 转发的用法:

yukicat -udp-timeout 30s udp://0.0.0.0:53 udp://127.0.0.53:53

-udp-timeout 为 UDP 转发指定了终止条件:当 UDP 在 30s 内无任何网络活动时,该连接将会被关闭。

中继

通过在公网上使用中继/发现服务器,可以将本工具用于内网穿透,该穿透支持 TCP/UDP。

设置中继/发现服务器

yukiserver --relay-background-interval 10s --pub AAA,BBB,CCC --host A.B.C.D

--relay-background-interval 指定了对于 UDP 类的中继连接,中继服务器进行连接检查的周期时间。 --pub 为 ed25519 公钥的名单, 在这个例子中,只有拥有 AAA, BBB, CCC 公钥的 yukicat 客户端才能够使用该服务器, 当此选项未指定时, 该服务器将允许所有客户端连接。 --host 为当 yukicat 使用该服务器时,它向其他客户端广播的它所使用的中继地址。

以下是一个内网穿透的例子:

yukicat disc://A.B.C.D/mychannel?relay=1&port=8081/tcp tcp://127.0.0.1:8080

这里 yukicat 将会注册 mychannel 为自己的地址,relay=1 代表开启中继(往往意味着它在 A.B.C.D 上使用了中继服务),而 port=8081/tcp 指定了它所使用的协议为 tcp, 且它会在本地的 8081 端口监听,其他 yukicat 在尝试中继之前将试图直接连接到该端口。port=-/tcp表示协议为 tcp, 但该客户端不在任何端口监听。

这是访问 mychannel 的命令:

yukicat tcp://127.0.0.1:8081 disc://A.B.C.D/mychannel

这里该客户端将会通过运行第一个命令的机器连接到 127.0.0.1:8080.

代理

代理服务在这里也被抽象成了资源映射的一种类型,以下命令将会启动一个代理服务器:

yukicat disc://A.B.C.D/myproxy?relay=1&port=8081/tcp proxy://

它的客户端将会运行一个本地代理,并将流量转发至代理服务器,如:

yukicat http-proxy://127.0.0.1:3128 disc://A.B.C.D/myproxy

将在本地启动一个 HTTP 服务器,并将其流量在 disc://A.B.C.D/myproxy 上代理。

Mesh VPN

Windows 前置条件

yukicat 依赖于 wintun, 请下载 wintun 并放在本程序所在目录。

使用

yukicat 基于以上发现服务和加密机制,在 wireguard-go 的基础上实现了 Mesh VPN。以下命令将会设置一个 VPN 服务:

yukicat tun://10.0.0.2?mtu=1320&dev=yuki0&mask=24&gateway=10.0.0.1 disc://A.B.C.D/mynetwork?relay=1&port=1000/xudp

该命令解释如下:

  • tun://10.0.0.2?mtu=1320&dev=yuki0&gateway=10.0.0.1: 本 VPN IP 地址为 10.0.0.2(/24网段), 它的默认网关为 10.0.0.1, VPN 的适配器名称为 yuki0, MTU 为 1320.
  • disc://A.B.C.D/mynetwork?relay=1&port=1000/xudp: VPN 的服务运行在发现网络 mynetwork 上,其他设备可通过 mynetwork/10.0.0.2 这一地址来找到本设备, 本设备同时也通过 mynetwork/IP 来找到其他设备。

支持的协议

  • udp, tcp, xudp, xtcp, stdio
  • disc(overy), proxy, http-proxy
  • tun

License

MIT License

FAQs

Package last updated on 10 Nov 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc