远程绑定/内网穿透程序: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代码
- ./server 1234 passwd
- 2023-09-04 00:00:00 - [I] - server/src/main.rs:76 -> Server started on x.x.x.x:1234
- 2023-09-04 00:00:00 - [I] - core/src/server.rs:71 -> STUN started on 0.0.0.0:1234
- 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代码
- ./client x.x.x.x:1234 13389 passwd 127.0.0.1:3389
- 2023-09-04 00:00:00 - [I] - client\src\main.rs:97 -> 正在连接服务器:x.x.x.x:1234
- 2023-09-04 00:00:00 - [I] - core\src\client.rs:18 -> 正在连接
- 2023-09-04 00:00:00 - [I] - core\src\client.rs:20 -> 连接完成
- 2023-09-04 00:00:00 - [I] - client\src\main.rs:104 -> 正在绑定端口:13389
- 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代码
- ./client p2p x.x.x.x:1234 13389 127.0.0.1:9833
- 2023-09-04 00:00:00 - [I] - core\src\client_p2p.rs:27 -> 正在测试
- 2023-09-04 00:00:00 - [I] - core\src\client_p2p.rs:29 -> 测试成功
- 2023-09-04 00:00:00 - [I] - core\src\client_p2p.rs:31 -> 服务已启动: 127.0.0.1:9833
OnePort
通过探测请求数据实现端口复用
运行:
XML/HTML代码
- oneport
- # or
- oneport -c /path/to/config.yml
config.yml
该文件配置如何反向代理 Socket 请求:
XML/HTML代码
- config:
- # 监听地址
- listen: 0.0.0.0:1111
- rules:
- # 字符串匹配
- - rule: GET
- address: 127.0.0.1:80
- # 首字节匹配
- - rule: 3
- address: 127.0.0.1:3389
- # 多字节匹配
- - rule: [0x53, 0x53]
- address: 127.0.0.1:22
- # 内置规则
- - rule: $SSH
- address: 127.0.0.1:22
- # 内置规则可能是多个规则的集合,比如 $HTTP 匹配 GET、POST 等多个字符串
- - rule: $HTTP
- address: 127.0.0.1:80
- # 通配规则
- - rule: []
- address: 127.0.0.1:4444
目前的内置规则有:$SSH, $RDP, $HTTP
规则按顺序匹配,越靠前优先级越高
热重载
配置修改后支持热重载:
XML/HTML代码
- oneport -r
- # or
- oneport --reload