Skip to content

Commit

Permalink
v20200101
Browse files Browse the repository at this point in the history
  • Loading branch information
txthinking committed Dec 24, 2019
1 parent cd75327 commit 13386ae
Show file tree
Hide file tree
Showing 8 changed files with 177 additions and 186 deletions.
17 changes: 8 additions & 9 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
### I want to create a PR.

1. Please create a issue first
1. Don't use internal package
1. Don't use package manager
1. Single function better than multiple functions
1. Single file better than multiple files
1. Single directory better than multiple multiple directories
1. Prefer struct and function to be exported.
1. Please create PR on `develop` branch
1. Keep it simple, stupid
1. Please create a issue first
2. Don't use internal package
3. Don't use package manager
4. Single function better than multiple functions
5. Single file better than multiple files
6. Single directory better than multiple multiple directories
7. Prefer struct and function to be exported.
8. Keep it simple, stupid
80 changes: 32 additions & 48 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@

### Table of Contents

* [What is Mr.2](#what-is-mr2)
* [Download](#download)
* [**Server**](#server)
* [**Client**](#client)
* [Example](#example)
* [Contributing](#contributing)
* [License](#license)
- [What is Mr.2](#what-is-mr2)
- [Download](#download)
- [**Server**](#server)
- [**Client**](#client)
- [Example](#example)
- [Contributing](#contributing)
- [License](#license)

## What is Mr.2

Expand All @@ -20,76 +20,60 @@ Keep it **simple**, **stupid**.

## Download

| Download | OS | Arch |
| --- | --- | --- |
| [mr2](https://github.com/txthinking/mr2/releases/download/v20190616/mr2) | Linux | amd64 |
| [mr2_darwin_amd64](https://github.com/txthinking/mr2/releases/download/v20190616/mr2_darwin_amd64) | MacOS | amd64 |
| [mr2_windows_amd64.exe](https://github.com/txthinking/mr2/releases/download/v20190616/mr2_windows_amd64.exe) | Windows | amd64 |
| Download | OS | Arch |
| ------------------------------------------------------------------------------------------------------------ | ------- | ----- |
| [mr2](https://github.com/txthinking/mr2/releases/download/v20200101/mr2) | Linux | amd64 |
| [mr2_darwin_amd64](https://github.com/txthinking/mr2/releases/download/v20200101/mr2_darwin_amd64) | MacOS | amd64 |
| [mr2_windows_amd64.exe](https://github.com/txthinking/mr2/releases/download/v20200101/mr2_windows_amd64.exe) | Windows | amd64 |

See [releases](https://github.com/txthinking/mr2/releases) for other platforms. Or `go get github.com/txthinking/mr2/cli/mr2`.

### Server

```
$ mr2 server -l :9999 -p password
```
$ 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'
```
# 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 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
```
# 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
$ 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
```
# 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
$ mr2 client -s server_address:port -p password -P 5678 -c 127.0.0.1:22

# then
$ ssh -oPort=5678 user@server_address
```
# 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
$ 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
# then
Your DNS server in external network is: server_address:5678

$ dig github.com @server_address -p 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
$ 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
```
# then
A HTTP server in external network is: server_address:5678

#### Any TCP-based/UDP-based ideas you think of

Expand Down
79 changes: 31 additions & 48 deletions README_zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@

### Table of Contents

* [Mr.2是什么](#mr2是什么)
* [下载](#下载)
* [**服务端**](#服务端)
* [**客户端**](#客户端)
* [贡献](#贡献)
* [协议](#协议)
- [Mr.2是什么](#mr2是什么)
- [下载](#下载)
- [**服务端**](#服务端)
- [**客户端**](#客户端)
- [贡献](#贡献)
- [协议](#协议)

## Mr.2是什么

Expand All @@ -19,82 +19,65 @@ Mr.2 可以帮助你将内网服务器暴露在外网. 支持 TCP/UDP 协议,

## 下载

| 下载 | 系统 | 架构 |
| --- | --- | --- |
| [mr2](https://github.com/txthinking/mr2/releases/download/v20190616/mr2) | Linux | amd64 |
| [mr2_darwin_amd64](https://github.com/txthinking/mr2/releases/download/v20190616/mr2_darwin_amd64) | MacOS | amd64 |
| [mr2_windows_amd64.exe](https://github.com/txthinking/mr2/releases/download/v20190616/mr2_windows_amd64.exe) | Windows | amd64 |
| 下载 | 系统 | 架构 |
| ------------------------------------------------------------------------------------------------------------ | ------- | ----- |
| [mr2](https://github.com/txthinking/mr2/releases/download/v20200101/mr2) | Linux | amd64 |
| [mr2_darwin_amd64](https://github.com/txthinking/mr2/releases/download/v20200101/mr2_darwin_amd64) | MacOS | amd64 |
| [mr2_windows_amd64.exe](https://github.com/txthinking/mr2/releases/download/v20200101/mr2_windows_amd64.exe) | Windows | amd64 |

更多平台下载请查看 [releases](https://github.com/txthinking/mr2/releases). 或`go get github.com/txthinking/mr2/cli/mr2`.

### 服务端

```
$ mr2 server -l :9999 -p password
```
$ mr2 server -l :9999 -p password

```
# 只允许部分端口, 并针对每个端口设置密码
$ mr2 server -l :9999 -P '5678 password' -P '6789 password1'
```
# 只允许部分端口, 并针对每个端口设置密码
$ mr2 server -l :9999 -P '5678 password' -P '6789 password1'

### 客户端

```
# 将本地服务 127.0.0.1:1234, 暴露在外网: server_address:5678
$ mr2 client -s server_address:port -p password -P 5678 -c 127.0.0.1:1234
```
# 将本地服务 127.0.0.1:1234, 暴露在外网: server_address:5678
$ mr2 client -s server_address:port -p password -P 5678 -c 127.0.0.1:1234

```
# 将本地目录 /path/to/www, 以HTTP协议暴露在外网: server_address:5678
$ mr2 client -s server_address:port -p password -P 5678 --clientDirectory /path/to/www
```
# 将本地目录 /path/to/www, 以HTTP协议暴露在外网: server_address:5678
$ mr2 client -s server_address:port -p password -P 5678 --clientDirectory /path/to/www

### 示例

#### 访问内网HTTP服务

```
$ mr2 client -s server_address:port -p password -P 5678 -c 127.0.0.1:8080
$ mr2 client -s server_address:port -p password -P 5678 -c 127.0.0.1:8080

# 然后
你的外网HTTP服务: server_address:5678
```
# 然后
你的外网HTTP服务: server_address:5678

#### SSH登录到内网机器

```
$ mr2 client -s server_address:port -p password -P 5678 -c 127.0.0.1:22
$ mr2 client -s server_address:port -p password -P 5678 -c 127.0.0.1:22

# 然后
$ ssh -oPort=5678 user@server_address
```
# 然后
$ ssh -oPort=5678 user@server_address

#### 访问内网DNS服务

```
$ mr2 client -s server_address:port -p password -P 5678 -c 127.0.0.1:53
$ mr2 client -s server_address:port -p password -P 5678 -c 127.0.0.1:53

# 然后
你的外网DNS服务: server_address:5678
# 然后
你的外网DNS服务: server_address:5678

$ dig github.com @server_address -p 5678
```
$ dig github.com @server_address -p 5678

#### 通过HTTP访问内网机器上的文件

```
$ mr2 client -s server_address:port -p password -P 5678 --clientDirectory /path/to/www
$ mr2 client -s server_address:port -p password -P 5678 --clientDirectory /path/to/www

# 然后
你的外网HTTP服务: server_address:5678
```
# 然后
你的外网HTTP服务: server_address:5678

#### 任何基于TCP/UDP的你能想到的想法

...


## 贡献

请先阅读 [CONTRIBUTING.md](https://github.com/txthinking/mr2/blob/master/.github/CONTRIBUTING.md)
Expand Down
12 changes: 6 additions & 6 deletions cli/mr2/buildAll.sh
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
#!/bin/bash

if [ ! -d binary ]
then
if [ ! -d binary ]; then
mkdir binary
fi

if [ -f binary.tgz ]
then
if [ -f binary.tgz ]; then
rm binary.tgz
fi

Expand All @@ -17,11 +15,13 @@ CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=7 go build -o binary/mr2_linux_arm7 .
CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=6 go build -o binary/mr2_linux_arm6 .
CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=5 go build -o binary/mr2_linux_arm5 .
CGO_ENABLED=0 GOOS=linux GOARCH=mips go build -o binary/mr2_linux_mips .
CGO_ENABLED=0 GOOS=linux GOARCH=mips GOMIPS=softfloat go build -o binary/mr2_linux_mips_sf .
CGO_ENABLED=0 GOOS=linux GOARCH=mips GOMIPS=softfloat go build -o binary/mr2_linux_mips_softfloat .
CGO_ENABLED=0 GOOS=linux GOARCH=mipsle go build -o binary/mr2_linux_mipsle .
CGO_ENABLED=0 GOOS=linux GOARCH=mipsle GOMIPS=softfloat go build -o binary/mr2_linux_mipsle_sf .
CGO_ENABLED=0 GOOS=linux GOARCH=mipsle GOMIPS=softfloat go build -o binary/mr2_linux_mipsle_softfloat .
CGO_ENABLED=0 GOOS=linux GOARCH=mips64 go build -o binary/mr2_linux_mips64 .
CGO_ENABLED=0 GOOS=linux GOARCH=mips64 GOMIPS=softfloat go build -o binary/mr2_linux_mips64_softfloat .
CGO_ENABLED=0 GOOS=linux GOARCH=mips64le go build -o binary/mr2_linux_mips64le .
CGO_ENABLED=0 GOOS=linux GOARCH=mips64le GOMIPS=softfloat go build -o binary/mr2_linux_mips64le_softfloat .
CGO_ENABLED=0 GOOS=linux GOARCH=ppc64 go build -o binary/mr2_linux_ppc64 .
CGO_ENABLED=0 GOOS=linux GOARCH=ppc64le go build -o binary/mr2_linux_ppc64le .
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o binary/mr2_darwin_amd64 .
Expand Down
Loading

0 comments on commit 13386ae

Please sign in to comment.