Mr2内网穿透:内网暴露工具

提问 1 267
大年初一 2020/09/09
来自:北京市-电信
Mr.2 是什么
可以帮助你将内网服务器暴露在外网. 支持 TCP/UDP 协议, 当然也支持 HTTP 协议.

https://github.com/txthinking/mr2


服务端
mr2 server -l :9999 -p password

本地监听9999端口,客户端连接密码为password

客户端
mr2 client -s server_address:port -p password -P 5678 -c 127.0.0.1:1234

将本地的1234端口暴露,转换为外网的5678。

mr2 client -s server_address:port -p password -P 5678 –clientDiretory /path/to/www

将本地目录 /path/to/www, 以 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 即可

它自带的脚本可以编辑为各个平台的可执行程序,比如arm6,mips等。

我的应用是:

服务器上开启mr2服务,Nginx服务

在Nginx上设置域名对应的本地端口,例如 sc.scwy.net对应127.0.0.1:9988

本地启动客户端,将本地端口映射为服务器上的端口,例如9988。则可以实现通过域名访问本地服务。

得益于golang的多平台,它可以运行在我的Pi上,让它来承担我的客户端。比如买一个每年不到百元的云服务器,将域名映射好,加上Pi上的服务,就可以完成许多东西了。为此,家里还买了一台UPS,支持基本的网络可以有几个小时。现在停电还是少了。

2020.8.19

在树莓派的使用中,发现 dial tcp x.x.x.x:xx: i/o timeout,然后对应端口的系统就连接不上了。

不知道是mr2本身问题,还是使用环境导致的。暂时没想到解决的办法,每次都需要手动中断再运行。
回帖
  • 大年初一
    大年初一 2020/09/10 第1楼
    来自:北京-中国
    {
    "explorer.confirmDelete": false,
    "window.zoomLevel": -1,
    "git.ignoreMissingGitWarning": true,
    "editor.formatOnSave": false,
    "editor.tabSize": 2,
    "editor.insertSpaces": true,
    "files.autoSave": "off",
    "eslint.validate": [
    "javascript",
    "javascriptreact",
    "vue-html",
    {
    "language": "vue",
    "autoFix": true
    }
    ],
    "eslint.run": "onSave",
    "eslint.autoFixOnSave": true,
    "files.associations": {
    "*.cjson": "jsonc",
    "*.wxss": "css",
    "*.wxs": "javascript"
    },
    "emmet.includeLanguages": {
    "wxml": "html"
    },
    "minapp-vscode.disableAutoConfig": true,
    "svn.enableProposedApi": "argument",
    "gitlens.gitCommands.closeOnFocusOut": true,
    "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true,
    "source.fixAll": true
    },
    "sonarlint.rules": {
    "javascript:S2692": {
    "level": "off"
    }
    },
    "workbench.colorTheme": "Tokyo Night",
    "eslint.codeAction.showDocumentation": {
    "enable": true
    },
    "eslint.trace.server": null
    }
    回复