# remotesocks **Repository Path**: linakesi/remotesocks ## Basic Information - **Project Name**: remotesocks - **Description**: socks5 with some extensions 1. full support listen and dial on TCP or UDP 2. listen on token network 3. support UDP multiplecast - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-04-03 - **Last Updated**: 2025-10-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # remotesocks 本项目是为hportal提供远程网络编程功能的。 最初版本是基于libp2p stream单独实现一套listen机制并forward到一个本地的socket上, 这样客户端代码不需要调整,只需要额外执行一下配置代码,即可实现远程功能。 但在实现dial时,想不到不修改现有业务代码的前提下实现。 从使用者角度来看,对客户端最小侵入的方式是使用现有的socks5协议。因此listen和dial最终都迁移到socks5方式上。 并在此基础上进行扩展,兼容现有第三方socks client,以便在不需要完整功能的情况下 使用第三方(主要是考虑非golang项目)客户端访问此功能。 本项目是为hportal提供远程socks功能的,本身只需要服务端代码,但鉴于目前 大部分socks client仅支持`connect command`,少量支持`bind command`和`udp associate`, 但在基于`bind`实现tcp listener时一般都存在问题(因为这方面实际需求很少)。 因此把socks client代码也加强了一下,若是golang项目,请尽量使用本项目中的客户端来访问socks服务。 socks5的client和server完整实现,包括 1. Connect command (相当于tcp dial) 2. Bind command (相当于简化版的tcp listen) 3. UDP ASSOCIATE (相当于udp dial) 额外扩展 1. 监听token network(已废弃移除) 2. 支持Listen UDP 3. 支持UDP多播,以便实现远程ssdp发现等功能 # 安全方面 本库只是作为一个功能库,不提供完整的应用程序逻辑, 安全方面是由额外的客户端、服务端来加上额外逻辑,不在本项目中实现。 # hportal相关 服务端的访问接口是由hserver进行封装后,交由lzc-runtime进行鉴权,提供给上层lzcapp使用的。 上层lzcapp通过lzc-runtime接口获取到实际的socks server url以及认证信息,然后使用本项目的 socks client以及相关封装后进行远程网络编程。