Mr.2: 内网穿透

2019-05-05 09:39:29 +08:00
 thisismr2

Mr.2

Table of Contents

Mr.2 是什么

Mr.2 可以帮助你将内网服务器暴露在外网. 支持 TCP/UDP 协议, 当然也支持 HTTP 协议.
让这个世界简单点.

服务端

$ mr2 server -l :9999 -p password

客户端

# 将本地服务 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 --clientDiretory /path/to/www

示例

访问内网 HTTP 服务

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

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

SSH 登录到内网机器

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

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

访问内网 DNS 服务

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

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

$ dig github.com @server_address -p 5678

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

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

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

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

...

贡献

请先阅读 CONTRIBUTING.md

协议

以 GPLv3 协议开源

10295 次点击
所在节点    分享创造
58 条回复
wwqgtxx
2019-05-05 12:11:28 +08:00
@thisismr2 那还是很好的,回头试试,frp 这一块就是走 over tcp 的,所以 udp 穿透的效果很差。
话说未来有打算支持一下类似 n2n 这样的功能么?
xionger
2019-05-05 12:43:27 +08:00
@thisismr2 期待
thisismr2
2019-05-05 13:00:10 +08:00
@wwqgtxx 目前 p2p 建立连接需要服务端交换双方基础信息, 且根据 nat 类型还有很大概率最后建立不成功, 不成功还是得服务端中转数据. 经过我们以前的研究, 有不少家庭公司 nat 网络建立失败, 最后还是走了中转. 而且还可能得要求最终端的用户也安装个客户端.
shoaly
2019-05-05 14:01:34 +08:00
@thisismr2 go 不是很熟 , 可以给一个 大致的代码行数么, 空了试着自己改一个
iMusic
2019-05-05 14:05:13 +08:00
localhost.run 啥都不用装,不过功能没这么强大
thisismr2
2019-05-05 14:36:59 +08:00
@shoaly 主要是认证这块, 其实的确要改的东西也不是很多, 我这两天增加上这个吧.
大概结果是:

```
$ mr2 server --portPassword "1000 password" --portPassword "2000 password"
```

client 使用不变
thisismr2
2019-05-05 15:32:09 +08:00
@iMusic 后期会考虑提供免费的 server
mooncakejs
2019-05-05 15:37:42 +08:00
不来个 docker image
shoaly
2019-05-05 16:44:57 +08:00
@thisismr2 可以的话, 到时候 @我嘛 一定红包酬谢...
kios
2019-05-05 16:56:05 +08:00
看上去配置起来比 frp 方便很多
thisismr2
2019-05-05 17:24:53 +08:00
@shoaly 好了 AT 你. red packet 不用了, 不接受个人任何形式的娟增 :) 那俩字打不出来 = = ||
thisismr2
2019-05-05 17:45:55 +08:00
@mooncakejs 可以用自己喜欢的 base image 做个自用嘛
heretreeli
2019-05-05 17:52:52 +08:00
n2n ??
ninestep
2019-05-05 18:25:02 +08:00
支持 websocket 吗?我现在用到 frp 就走不通 websocket
iamxiaoq
2019-05-05 18:54:33 +08:00
昨天刚刚发现一个类似的 goproxy
thisismr2
2019-05-05 19:17:27 +08:00
@ninestep 理论上支持任何 TCP-based UDP-based 的协议. websocket 属于 TCP, 所以是支持的, 我没测试
thisismr2
2019-05-05 19:18:14 +08:00
@kios 😊
thisismr2
2019-05-05 19:18:47 +08:00
@heretreeli 不同
thisismr2
2019-05-05 19:47:26 +08:00
@ninestep websocket 支持. 朋友已测试.
xionger
2019-05-05 20:05:45 +08:00
@unixeno 的确,我现在是 本地 + nginx + mr2

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/560986

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX