Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/skypierio/kubo-socks
- Owner: SkyPierIO
- License: apache-2.0
- Created: 2023-09-23T16:07:08.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-01-17T21:42:03.000Z (11 months ago)
- Last Synced: 2024-11-15T03:08:43.221Z (about 1 month ago)
- Topics: dvpn, go, golang, ipfs, libp2p, socks5-proxy
- Language: Go
- Homepage:
- Size: 43.9 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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)