{"id":13454846,"url":"https://github.com/lwch/natpass","last_synced_at":"2025-05-13T17:04:57.303Z","repository":{"id":37885325,"uuid":"390982669","full_name":"lwch/natpass","owner":"lwch","description":"🔥居家办公，远程开发神器","archived":false,"fork":false,"pushed_at":"2025-04-16T21:51:00.000Z","size":17596,"stargazers_count":4391,"open_issues_count":19,"forks_count":492,"subscribers_count":52,"default_branch":"master","last_synced_at":"2025-04-24T00:41:25.303Z","etag":null,"topics":["code-server","golang","protobuf","shell","tls","vnc"],"latest_commit_sha":null,"homepage":"https://lwch.gitbook.io/natpass/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lwch.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-07-30T08:02:42.000Z","updated_at":"2025-04-20T06:42:42.000Z","dependencies_parsed_at":"2025-04-23T22:59:18.039Z","dependency_job_id":"802dda60-6fdb-4dcf-be59-352b110d4f77","html_url":"https://github.com/lwch/natpass","commit_stats":{"total_commits":687,"total_committers":3,"mean_commits":229.0,"dds":0.005822416302765698,"last_synced_commit":"0e5b71ae8469d7a88fd08eb9fdd6deec4ce42c5e"},"previous_names":["jkstack/natpass"],"tags_count":40,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lwch%2Fnatpass","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lwch%2Fnatpass/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lwch%2Fnatpass/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lwch%2Fnatpass/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lwch","download_url":"https://codeload.github.com/lwch/natpass/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253990460,"owners_count":21995774,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["code-server","golang","protobuf","shell","tls","vnc"],"created_at":"2024-07-31T08:00:58.492Z","updated_at":"2025-05-13T17:04:57.279Z","avatar_url":"https://github.com/lwch.png","language":"Go","funding_links":[],"categories":["Go","堡垒机"],"sub_categories":[],"readme":"# natpass\n\n[![natpass](https://github.com/lwch/natpass/actions/workflows/build.yml/badge.svg)](https://github.com/lwch/natpass/actions/workflows/build.yml)\n[![Go Report Card](https://goreportcard.com/badge/github.com/lwch/natpass)](https://goreportcard.com/report/github.com/lwch/natpass)\n[![license](https://img.shields.io/github/license/lwch/natpass)](https://opensource.org/licenses/MIT)\n[![QQ群711086098](https://img.shields.io/badge/QQ%E7%BE%A4-711086098-success)](https://jq.qq.com/?_wv=1027\u0026k=6Fz2vkVE)\n![downloads](https://img.shields.io/github/downloads/lwch/natpass/total)\n\n新一代主机管理工具，支持shell管理，支持远程桌面管理[实现原理](docs/desc.md)\n\n1. [如何部署](docs/startup.md)\n2. [规则配置](docs/rules.md)\n3. [开发文档](https://lwch.gitbook.io/natpass/dev)\n\n功能与特性：\n\n1. 支持私有化部署\n2. 较小的内存占用（约20M左右）\n3. 支持tls安全连接\n4. 支持多路异步IO\n5. 支持虚拟链路层\n6. 支持链路和终端会话监控\n7. protobuf数据编码\n8. 支持web shell\n   - linux和mac系统支持创建pty设备和颜色输出\n   - windows系统支持powershell\n9. 支持web vnc\n   - 支持基本的键盘鼠标操作\n   - 支持全屏显示\n   - 支持滚动\n   - 支持远程剪贴板设置与读取\n10. 支持code-server\n11. 支持多种操作系统\n   - [x] linux\n   - [x] windows\n   - [x] macos\n\n## 效果图\n\ndashboard页面\n\n![dashboard](docs/imgs/dashboard.png)\n\n命令行\n\n| platform | 386 | amd64 | arm | arm64 |\n| -------- | :-: | :---: | :-: | :---: |\n| windows | ✅ | ✅ | ✅ | ✅ |\n| macos   |    | ✅ |     | ✅ |\n| linux   | ✅ | ✅ | ✅ | ✅ |\n\n![shell](docs/imgs/shell.gif)\n\n远程桌面\n\n| platform | 386 | amd64 | arm | arm64 |\n| -------- | :-: | :---: | :-: | :---: |\n| windows | ✅ | ✅ | ❌ | ❌ |\n| macos   |    | ✅ |    | ✅ |\n| linux   | ✅ | ✅ | ❌ | ❌ |\n\n![vnc](docs/imgs/vnc.gif)\n\nwindows剪贴板内容\n\n![vnc-clipboard](docs/imgs/vnc_clipboard.png)\n\ncode-server支持\n\n![code-server](docs/imgs/code_server.png)\n\n## 性能\n\n在vmware环境下创建4C2G（AMD Ryzen 7 4800U with Radeon Graphics）测试环境，并进行all in one部署server、remote端和local端，使用bench规则进行压测，结果如下：\n\n![bench](docs/imgs/bench.png)\n\n1. 压测结果仅包含local端发起连接到remote端收到连接并返回成功的整个过程\n2. 实验结果表明，在4C2G环境下可达到上万+的qps，且p99和p100均在60ms以下\n\n## TODO\n\n1. ~~支持include的yaml配置文件~~\n2. ~~通用的connect、connect_response、disconnect消息~~\n3. ~~dashboard页面~~\n4. 文件传输\n5. ~web远程桌面~\n6. ~~流量监控统计页面，server还是client?~~\n7. web端管理规则\n8. 支持录屏\n\n## 编译\n\n1. 由于html/dashboard等目录下引用第三方库时使用软连接的方式进行处理，\n   因此在windows环境下进行编译时需要将这些软连接的目录进行手工替换，\n   第三方库的代码都在上级目录下可找到。\n\n## stars\n\n![stars](https://starchart.cc/lwch/natpass.svg)\n\n## 免责声明\n\n本软件仅用于个人研究学习，包括但不限于以下条款：\n\n1. 严禁用于黑客攻击、远程控制他人计算机等违法违规行为\n2. 软件使用者使用该软件造成的任何损失均与软件作者无关，\n   一切后果由使用者自己负责\n3. 严禁用于一切商业用途，包括但不限于提供云桌面、云主机等\n\n## 贡献代码\n\n为了更好的发展，我们鼓励大家为natpass项目做出贡献及提出建议，项目的地址为[https://github.com/lwch/natpass](https://github.com/lwch/natpass)，因此在gitee上提交的pr将不被接受，请大家将pr提交到github的同名项目中。","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flwch%2Fnatpass","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flwch%2Fnatpass","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flwch%2Fnatpass/lists"}