txthinking/mr2
Mr.2 can help you expose local server to external network. Support both TCP/UDP, of course support HTTP.
repo name | txthinking/mr2 |
repo link | https://github.com/txthinking/mr2 |
homepage | |
language | Go |
size (curr.) | 71 kB |
stars (curr.) | 961 |
created | 2019-04-25 |
license | GNU General Public License v3.0 |
Mr.2
Table of Contents
What is Mr.2
Mr.2 can help you expose local server to external network. Support both TCP/UDP, of course support HTTP. Keep it simple, stupid.
Download
Download | OS | Arch |
---|---|---|
mr2 | Linux | amd64 |
mr2_darwin_amd64 | MacOS | amd64 |
mr2_windows_amd64.exe | Windows | amd64 |
See releases for other platforms. Or go get github.com/txthinking/mr2/cli/mr2
.
Server
$ mr2 server -l :9999 -p password
# Only allow partial ports, and set password on each port
$ mr2 server -l :9999 -P '5678 password' -P '6789 password1'
Client
# Local server is 127.0.0.1:1234, expect to expose: server_address:5678
$ mr2 client -s server_address:port -p password -P 5678 -c 127.0.0.1:1234
# Local web root is /path/to/www, expect to expose: server_address:5678
$ mr2 client -s server_address:port -p password -P 5678 --clientDirectory /path/to/www
Example
Access local HTTP server
$ mr2 client -s server_address:port -p password -P 5678 -c 127.0.0.1:8080
# then
Your HTTP server in external network is: server_address:5678
SSH into local computer
$ mr2 client -s server_address:port -p password -P 5678 -c 127.0.0.1:22
# then
$ ssh -oPort=5678 user@server_address
Access local DNS server
$ mr2 client -s server_address:port -p password -P 5678 -c 127.0.0.1:53
# then
Your DNS server in external network is: server_address:5678
$ dig github.com @server_address -p 5678
Access your local directory via HTTP
$ mr2 client -s server_address:port -p password -P 5678 --clientDirectory /path/to/www
# then
A HTTP server in external network is: server_address:5678
Any TCP-based/UDP-based ideas you think of
…
Contributing
Please read CONTRIBUTING.md first
License
Licensed under The GPLv3 License