Meepo aims to publish network service more easy and decentralized.
This project still in progress
$ sudo snap install meepo$ brew install PeerXu/tap/meepoNot support chocolatey now, install meepo manually from release.
There are two nodes, bob and alice, alice behind firewall (without public IP address).
bob want to connect to alice with ssh service.
- On
alice, runMeeposervice
alice$ meepo config init id=alice
alice$ meepo serveNOTE: When initial meepo without ID, Meepo will set a random ID on startup.
Use whoami subcommand to verify Meepo service was started or not.
alice$ meepo whoami
# OUTPUT:
alice- On
bob, runMeeposervice
bob$ meepo config init id=bob
bob$ meepo serveUse whoami subcommand to verify Meepo service was started or not.
bob$ meepo whoami
# OUTPUT:
bob- On
bob, connect toalicewith ssh client.
bob$ eval $(meepo ssh bob@alice)
# wait a few seconds
# ...There are two nodes, bob and alice, alice behind firewall (without public IP address).
bob want to access http service which provide by alice.
- On
bob, new ateleportationto accesshttpservice.
bob$ meepo teleport -n http -l :8080 alice :80
# OUTPUT:
Teleport SUCCESS
Enjoy your teleportation with [::]:8080Now, enter http://127.0.0.1:8080 on browser to access http service.
- Teleportation
bob$ meepo teleportation list
# OUTPUT:
+------+-----------+--------+--------------------+--------------------+----------+
| NAME | TRANSPORT | PORTAL | SOURCE | SINK | CHANNELS |
+------+-----------+--------+--------------------+--------------------+----------+
| http | alice | source | tcp:[::]:8080 | tcp::80 | 0 |
+------+-----------+--------+--------------------+--------------------+----------+- Close teleportation
bob$ meepo teleportation close http
# OUTPUT:
Teleportation closingTBD
Selfmesh, a feature to help Meepo nodes to connect each other without Default Signaling Server (WebRTC need to exchange signaling when build connections).
Example:
There are three nodes, bob, alice and eve.
bob are built a transport with alice.
eve are built a transport with alice.
When disable selfmash, if bob want to build a transport to eve, it is using Default Signaling Server to exchange signaling.
Exchange path when disable selfmash:
bob --- Default Signaling Server --- eve
When enable selfmash, alice will be a Signaling Server to exchange signaling between bob and eve.
Exchange path when enable selfmash:
bob --- alice(Signaling Server) --- eve
It is easy to enable selfmash, set asSignaling field to true and reboot Meepo.
# bob:
bob$ meepo config set asSignaling=true
# restart meepo
# alice:
alice$ meepo config set asSignaling=true
# restart meepo
# eve:
eve$ meepo config set asSignaling=true
# restart meepoSocks5 is a usual proxy protocol.
Meepo allow user to access service, which provided other Meepo node, through Socks5 proxy.
For example, node ID is hello, and node is serving a http server(port 80).
We can enter http://hello.mpo on browser to access http service, when setup socks5 proxy on system and Meepo.
The naming rule of domain is <id>.mpo.
On default parameters, Socks5 proxy listen address is 127.0.0.1:12341.
There are two nodes, bob and alice.
Two services are running on alice, ssh service(port 22) and http service(port 80).
On bob, we can access ssh service and http service provided by alice through Socks5 proxy on bob.
First, we need to enable Socks5 proxy on bob. (enabled by default)
bob$ meepo config set proxy.socks5=file://<(echo 'aG9zdDogMTI3LjAuMC4xCnBvcnQ6IDEyMzQxCg=='|base64 -d)
# restart meepoSecondly, setup OS proxy setting.
Example:
- Access
httpservice onbob
bob$ curl -x socks5h://127.0.0.1:12341 http://alice.mpo/
# ...- Access
sshservice onbob
bob$ ssh -o ProxyCommand='nc -X 5 -x 127.0.0.1:12341 %h %p' [email protected]
# ...TBD
TBD
TBD
Meepo is an open source project, welcome every one to contribute codes and documents or else to help Meepo to be stronger.
- If any problems about
Meepo, feel free to open an issue. - If any problems about
Meepo, feel free to contact us with Telegram. - Main branch is used to release stable version, please commit pull request to dev branch.
- Please feel free to commit bug fix to dev branch.
If Meepo is helpful for you, welcome to donate to us.
36PnaXCMCtKLbkzVyfrkudhU6u8vjbfax4
0xa4f00EdD5fA66EEC124ab0529cF35a64Ee94BFDE
MIT