记录我的一些生活写照、无聊的牢骚、内心世界的活动 注册 | 登陆

远程绑定/内网穿透程序:remote-bind

远程绑定/内网穿透程序:remote-bind
remote-bind是一个小巧而强大的开源工具,它允许您将本地服务轻松地映射到公网,从而实现远程访问受限的本地应用。无论是Windows、Linux还是Android设备,都能享受到它所带来的便利。借助STUN(Session Traversal Utilities for NAT)技术和P2P(Peer-to-Peer)直连模式,remote-bind为穿越网络障碍提供了高效且安全的解决方案。
remote-bind由两个核心组件组成:Server和Client。Server负责在指定的公网IP和端口上监听连接请求,并对客户端的身份进行验证。Client则通过加密通信与Server建立连接,实现本地服务的公网映射。
STUN服务器:当NAT(Network Address Translation)存在时,remote-bind利用STUN协议帮助客户端发现其公共IP地址和端口,以实现从公网到内网服务的穿透。
P2P直连:在条件允许的情况下,remote-bind支持P2P直接通信,绕过服务器,提高数据传输速度并降低服务器负载。这一特性使得两个客户端之间能尝试建立更优化的直接连接,但请注意,P2P连接并非总是可行的。
remote-bind的应用场景广泛:
远程桌面: 您可以在家或外出时,通过公网访问办公室的电脑,进行文件管理和工作处理。
个人网站托管: 即使您的服务器没有公开IP,也可以通过remote-bind让全世界访问您在局域网内的个人站点。
物联网设备控制: 对于部署在家中的智能设备,如智能家居系统,可以通过公网进行远程监控和管理。
内部测试服务分享: 开发者可以方便地将内测服务暴露给团队成员,无需复杂的网络配置。
项目特点
跨平台: 支持Windows、Linux及Android操作系统,适应性强。
简单易用: 安装快捷,命令行参数清晰,即使是初级用户也能快速上手。
安全验证: 提供密码保护,确保只有授权的客户端才能连接到服务器。
灵活的连接方式: 结合STUN和P2P技术,提供稳定且高效的远程访问方案。
自定义映射: 可自由选择需要映射的本地服务及其公网端口,满足个性化需求。
综上所述,remote-bind是应对网络限制和提升远程访问体验的理想工具。无论是在日常办公、开发调试还是家庭娱乐场景下,它都值得您的信赖和使用。现在就下载remote-bind,开启无忧的远程服务之旅
服务器中继
在服务器 x.x.x.x 的 1234 端口上运行server,并设置密码为 passwd :
XML/HTML代码
  1. ./server 1234 passwd

  2. 2023-09-04 00:00:00 - [I] - server/src/main.rs:76 -> Server started on x.x.x.x:1234
  3. 2023-09-04 00:00:00 - [I] - core/src/server.rs:71 -> STUN started on 0.0.0.0:1234
  4. 2023-09-04 00:00:00 - [I] - core/src/server.rs:71 -> STUN started on 0.0.0.0:1235
在局域网主机上运行客户端,将 127.0.0.1:3389 服务映射到 x.x.x.x:13389 上:
XML/HTML代码
  1. ./client x.x.x.x:1234 13389 passwd 127.0.0.1:3389
  2.  
  3. 2023-09-04 00:00:00 - [I] - client\src\main.rs:97 -> 正在连接服务器:x.x.x.x:1234
  4. 2023-09-04 00:00:00 - [I] - core\src\client.rs:18 -> 正在连接
  5. 2023-09-04 00:00:00 - [I] - core\src\client.rs:20 -> 连接完成
  6. 2023-09-04 00:00:00 - [I] - client\src\main.rs:104 -> 正在绑定端口:13389
  7. 2023-09-04 00:00:00 - [I] - client\src\main.rs:108 -> 服务已绑定: 127.0.0.1:3389 -> x.x.x.x:13389
P2P直连
在要进行P2P访问的主机上运行客户端,监听 127.0.0.1:9833 地址,映射到 x.x.x.x:13389 上绑定的服务:
XML/HTML代码
  1. ./client p2p x.x.x.x:1234 13389 127.0.0.1:9833

  2. 2023-09-04 00:00:00 - [I] - core\src\client_p2p.rs:27 -> 正在测试
  3. 2023-09-04 00:00:00 - [I] - core\src\client_p2p.rs:29 -> 测试成功
  4. 2023-09-04 00:00:00 - [I] - core\src\client_p2p.rs:31 -> 服务已启动: 127.0.0.1:9833
安卓客户端:https://github.com/rust-net/remote-bind-apk
OnePort
通过探测请求数据实现端口复用
运行:
XML/HTML代码
  1. oneport
  2. # or
  3. oneport -c /path/to/config.yml
config.yml
该文件配置如何反向代理 Socket 请求:
XML/HTML代码
  1. config:
  2.   # 监听地址
  3.   listen: 0.0.0.0:1111
  4.  
  5. rules:
  6.     # 字符串匹配
  7.   - rule: GET
  8.     address: 127.0.0.1:80
  9.     # 首字节匹配
  10.   - rule: 3
  11.     address: 127.0.0.1:3389
  12.     # 多字节匹配
  13.   - rule: [0x53, 0x53]
  14.     address: 127.0.0.1:22
  15.     # 内置规则
  16.   - rule: $SSH
  17.     address: 127.0.0.1:22
  18.     # 内置规则可能是多个规则的集合,比如 $HTTP 匹配 GET、POST 等多个字符串
  19.   - rule: $HTTP
  20.     address: 127.0.0.1:80
  21.     # 通配规则
  22.   - rule: []
  23.     address: 127.0.0.1:4444
目前的内置规则有:$SSH, $RDP, $HTTP
规则按顺序匹配,越靠前优先级越高
热重载
配置修改后支持热重载:
XML/HTML代码
  1. oneport -r
  2. # or
  3. oneport --reload
此程序可以实现单端口的多重复用,根据规则映射不同的协议和端口,转发到局域网其他机器上都是可以的,使用非常方便。

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):