Skip to content
Expose local server to external network
Branch: master
Clone or download
Latest commit 03f5f25 May 19, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update CONTRIBUTING.md May 6, 2019
cli/mr2 20190519 May 19, 2019
.gitignore add cli May 17, 2019
.travis.yml ci May 17, 2019
LICENSE coming soon... Apr 25, 2019
OPENSOURCELICENSES prepare to opensource Apr 28, 2019
README.md 20190519 May 19, 2019
README_zh.md 20190519 May 19, 2019
buildPB.sh prepare to opensource Apr 28, 2019
client.go fixed #11 May 17, 2019
init.go fixed #11 May 17, 2019
mr2.pb.go fixed #11 May 17, 2019
mr2.proto fixed #11 May 17, 2019
run.go fixed #11 May 17, 2019
server.go fixed #11 May 17, 2019
tcpclient.go fixed #8 May 19, 2019
tcpserver.go fixed #8 May 19, 2019
test_test.go fixed #11 May 17, 2019
udpclient.go fixed #8 May 19, 2019
udpserver.go fixed #11 May 17, 2019

README.md

Mr.2

Build Status License: GPL v3 ZH

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

You can’t perform that action at this time.