Skip to content

A Kubo plugin allowing to use SOCKS proxy over the IPFS network

License

Notifications You must be signed in to change notification settings

SkyPierIO/kubo-socks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kubo-socks-plugin

A Kubo plugin allowing to use SOCKS proxy over the IPFS network

Note

This repository is not the Skypier MVP, but an experiment/POC around SOCKS5 proxies. We are refining the MVP in a separate git repository, and will focus on standalone libp2p VPN node development.

Build

You can build the plugin using

go build . -o kubo-socks

And then run it with

# Be sure to have a kubo node already running
./kubo-socks

You can create a config.json file containing the plugin configuration. Here is the default configuration.

{
    "port": 8081,
    "socksPort": 1080
}
  • port is the plugin listening port. You can interact with the API at http://localhost:8081/api/v0/ in this example.
  • socksPort is the SOCKS5 listening port

SOCKS5 Proxy

The plugin is running a local SOCKS5 proxy on port tcp/1080. It is not supposed to be used as it, but buy a remote client coming from another kubo-socks node.

API

The plugin serves an HTTP API that can be requested from the frontend

  • GET /ping ↔ Just ping the backend
  • GET /streams ↔ List all active libp2p streams on the Kubo node
  • GET /listeners ↔ List all listeners on the Kubo node
  • GET /peers ↔ Show directly connected peers of Kubo node
  • GET /forward/<nodeID> ↔ Open a port locally listening to SOCKS5 clients and forwarding connections to the node
  • GET /ping/<nodeID> ↔ Send echo request packets to IPFS host
  • GET /streams/close ↔ Close all libp2p streams on the Kubo node
  • GET /id ↔ Return the local nodeID

We're hacking on IPFS <3