Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/skypierio/kubo-socks

A Kubo plugin allowing to use SOCKS proxy over the IPFS network
https://github.com/skypierio/kubo-socks

dvpn go golang ipfs libp2p socks5-proxy

Last synced: about 1 month ago
JSON representation

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

Awesome Lists containing this project

README

        

# 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.

```json
{
"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/` ↔ Open a port locally listening to SOCKS5 clients and forwarding connections to the node
- GET `/ping/` ↔ 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

[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/CONTRIBUTING.md)