Skip to content
mainfunxPublic

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

DevLink

DevLink

DevLink 是一套面向远程调试和运维场景的 IPv4 三层组网工具。它通过中心 Server 连接不同位置的 Agent、Controller 和 Android 设备,并将主要用途归纳为四种模式:虚拟组网、代理组网、端口映射和异地并网。

当前发布目录主要包含:

文件 作用
devlink-server-linux-amd64 Linux 服务端程序
devlink-agent.exe Windows 受控端 client,通常运行在客户服务器或客户现场跳板机
devlink-controller.exe Windows 控制端 client,通常运行在公司电脑
Android Controller Android VpnService 控制端,源码位于 android-app
client.ini client 默认配置文件,程序默认读取 exe 同目录下的这个文件
wintun.dll Windows TUN 驱动运行库,当前 exe 也支持内嵌释放

兼容性与构建工具链

目标 最低目标系统 构建工具链
devlink-agent.exe、devlink-controller.exe Windows 10、Windows Server 2012/2012 R2 Go 1.20.14
devlink-server Linux Go 1.23 或更新版本
Android Controller Android 4.4(API 19) Go 1.23 或更新版本、gomobile

根模块声明 go 1.20,用于保证共享源码和依赖可以被 Windows 兼容工具链读取。这不表示所有产物都使用旧运行时:构建脚本会强制 Windows Client 使用 Go 1.20.14;Linux Server 使用独立的 go.server.mod 和现代依赖语义;Android 使用独立的 android/go.mod。Server 和 Android 都拒绝低于 Go 1.23 的工具链。

PowerShell:

.\build.ps1 -Target client
.\build.ps1 -Target server

Shell:

./build_client.sh
./build_server.sh

脚本通过 GOTOOLCHAIN 选择工具链。可分别使用 ClientToolchain、ServerToolchain 参数或 CLIENT_GO_TOOLCHAIN、SERVER_GO_TOOLCHAIN 环境变量覆盖工具链来源,但 Windows 发布包仍必须使用 Go 1.20.14。

角色说明

  • Server:公网或双方都能访问的中转服务,负责认证、路由登记、转发和 Web 面板。
  • Agent:受控端。一般部署在客户服务器或客户现场电脑,暴露自身允许访问的端口。
  • Controller:控制端。一般部署在公司电脑,用于访问 agent 或 agent 代理出来的设备。

Agent 和 Controller 都属于 client,但使用不同的 exe 启动,不需要在 ini 里配置 role。

四种应用场景

场景 需要安装 DevLink 的端 不需要安装的端 访问方式
虚拟组网 通信双方分别运行 Agent、Controller 无 直接访问对方 10.10.x.x 虚拟 IP
代理组网 Controller 和目标局域网内的一台 Agent 被代理的服务器、PLC、Web 设备 Agent 将真实设备映射成独立虚拟 IP
端口映射 远端 Agent 和作为跳板的 Controller Controller 所在局域网的调用设备 访问 Controller 物理 IP 的指定端口
异地并网 客户网络中的 Gateway Agent,以及 Controller 或 Android 客户网段内的目标设备 将指定网段或全路由范围内的 TCP、UDP、ICMP 流量交给 Gateway Agent

选择原则:双方都能安装 Client 时使用虚拟组网;目标设备不能安装但需要独立虚拟 IP 时使用代理组网;调用端不能安装且只需要少量固定 TCP 端口时使用端口映射;需要访问整个客户网段或使用全路由时使用异地并网。

1. 虚拟组网

通信双方都安装 DevLink,并分别获得唯一虚拟 IP。适合公司电脑直接调试已安装 Agent 的客户服务器。

Controller 10.10.1.12 -> DevLink Server -> Agent 10.10.1.11

2. 代理组网

目标设备无法安装 DevLink,但与 Agent 位于同一客户网络。Agent 使用 Proxy 将目标设备映射成 DevLink 虚拟 IP,并可按 TCP/UDP 端口或端口范围开放。

Controller -> 10.10.1.14:8080 -> Agent Proxy -> 192.168.3.30:8080

3. 端口映射

公司局域网中的调用设备不安装 DevLink,由公司 Controller 使用 Forward 提供 TCP 跳板端口。

公司设备 -> 192.168.1.108:12345 -> Controller -> 10.10.1.11:1433

4. 异地并网

客户笔记本上的 Agent 作为用户态 Gateway。Controller 或 Android 可以路由指定客户网段,也可以使用全路由,效果类似位于客户网络中的虚拟机。该模式支持 IPv4 TCP、UDP 和基本 ICMP,不依赖 ICS、WinNAT 或系统 NAT。

Android/Controller -> DevLink -> Gateway Agent -> 客户网段 192.168.5.0/24

异地并网是三层路由,不提供 ARP/MAC 透传、二层桥接、广播或组播发现。四种场景的各端最小配置见 Client 使用说明手册。

快速开始

首次使用或从旧版本升级,请先按 设备凭据与协议迁移说明 在 Server 登记每台设备的独立 token、Client ID、角色、network 和虚拟 IP。旧版共享 token 认证已移除,Server、Windows Client 和 Android 的 Go 核心需要配套升级。

  1. 在 Linux 服务器上启动 server。

    ./devlink-server-linux-amd64 -s server.ini

    建议注册为 systemd 服务长期运行。

  2. 配置 client。

    将 client.ini 放在 devlink-agent.exe 或 devlink-controller.exe 同级目录,至少填写:

    [server]
    ip = 你的服务器IP
    port = 9990
    transport = tls
    token = 本设备在Server登记的独立随机token
    
    [client]
    device_name = office-pc
    addr = 10.10.1.12/24
  3. 以管理员身份启动 Windows client。

    .\devlink-controller.exe -c client.ini
  4. 打开本地 client GUI。

    如果启用了 [client_gui],浏览器访问:

    http://127.0.0.1:7600/
    

Server 面板会显示每个 client 的协议、在线时长、Forward、Proxy、VPN/Gateway 能力和诊断日志,并支持查询、排序和清退。

更多文档

授权协议

本项目使用修改版 GNU General Public License version 3 (GPLv3)。使用 DevLink 前端、后台、GUI、控制台或应用时,不得移除或修改 DevLink LOGO 和版权信息;贡献者同意项目方可按需调整开源协议,且贡献代码可用于商业用途。详见 LICENSE。

常用建议

  • device_name 全局唯一,建议使用能识别归属的名称,例如 customer-a-sql01、company-controller-01。
  • addr 也应全局唯一,不要让两个 client 使用相同虚拟 IP。
  • 生产或长期挂载建议使用 transport = tls。
  • 只开放必要端口,优先配置 expose_tcp_ports、expose_udp_ports,避免默认全端口暴露。
  • 网关建议用 controllers、targets、tcp_ports、udp_ports 按最小权限收紧;不需要借客户网络上公网时设置 internet = false。
  • Server Web 面板建议设置用户名和强密码,并只绑定内网管理地址或通过安全入口访问。

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages