{"id":13455165,"url":"https://github.com/ehang-io/nps","last_synced_at":"2026-01-15T22:19:24.640Z","repository":{"id":37296985,"uuid":"156084530","full_name":"ehang-io/nps","owner":"ehang-io","description":"一款轻量级、高性能、功能强大的内网穿透代理服务器。支持tcp、udp、socks5、http等几乎所有流量转发，可用来访问内网网站、本地支付接口调试、ssh访问、远程桌面，内网dns解析、内网socks5代理等等……，并带有功能强大的web管理端。a lightweight, high-performance, powerful intranet penetration proxy server, with a powerful web management terminal.","archived":false,"fork":false,"pushed_at":"2024-05-30T03:51:08.000Z","size":9168,"stargazers_count":33842,"open_issues_count":526,"forks_count":6072,"subscribers_count":474,"default_branch":"master","last_synced_at":"2026-01-13T04:11:50.436Z","etag":null,"topics":["dns","firewall","go","gzip","http","https","nat","nps","snnapy","socks","socks5","ssh","tcp","tunnel","udp"],"latest_commit_sha":null,"homepage":"https://ehang.io/nps/documents","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ehang-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-11-04T13:22:51.000Z","updated_at":"2026-01-13T03:17:56.000Z","dependencies_parsed_at":"2023-07-13T10:00:15.069Z","dependency_job_id":"ff062871-9c8d-4191-bf4c-9f07758f72ca","html_url":"https://github.com/ehang-io/nps","commit_stats":{"total_commits":602,"total_committers":37,"mean_commits":16.27027027027027,"dds":0.6428571428571428,"last_synced_commit":"ab648d6f0c618c690a7a79948a7ebd686e1cdafc"},"previous_names":["cnlh/nps"],"tags_count":64,"template":false,"template_full_name":null,"purl":"pkg:github/ehang-io/nps","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehang-io%2Fnps","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehang-io%2Fnps/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehang-io%2Fnps/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehang-io%2Fnps/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ehang-io","download_url":"https://codeload.github.com/ehang-io/nps/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehang-io%2Fnps/sbom","scorecard":{"id":294694,"data":{"date":"2025-08-11","repo":{"name":"github.com/ehang-io/nps","commit":"ab648d6f0c618c690a7a79948a7ebd686e1cdafc"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":7,"reason":"Found 7/10 approved changesets -- score normalized to 7","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/release.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":2,"reason":"dependency not pinned by hash detected -- score normalized to 2","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:100: update your workflow using https://app.stepsecurity.io/secureworkflow/ehang-io/nps/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:111: update your workflow using https://app.stepsecurity.io/secureworkflow/ehang-io/nps/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:125: update your workflow using https://app.stepsecurity.io/secureworkflow/ehang-io/nps/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:129: update your workflow using https://app.stepsecurity.io/secureworkflow/ehang-io/nps/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:131: update your workflow using https://app.stepsecurity.io/secureworkflow/ehang-io/nps/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:133: update your workflow using https://app.stepsecurity.io/secureworkflow/ehang-io/nps/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:140: update your workflow using https://app.stepsecurity.io/secureworkflow/ehang-io/nps/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:145: update your workflow using https://app.stepsecurity.io/secureworkflow/ehang-io/nps/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:155: update your workflow using https://app.stepsecurity.io/secureworkflow/ehang-io/nps/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/ehang-io/nps/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/ehang-io/nps/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/ehang-io/nps/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/ehang-io/nps/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:86: update your workflow using https://app.stepsecurity.io/secureworkflow/ehang-io/nps/release.yml/master?enable=pin","Warn: containerImage not pinned by hash: Dockerfile.npc:1","Warn: containerImage not pinned by hash: Dockerfile.nps:1","Warn: goCommand not pinned by hash: build.android.sh:5","Warn: downloadThenRun not pinned by hash: .github/workflows/release.yml:26","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   8 third-party GitHubAction dependencies pinned","Info:   0 out of   2 containerImage dependencies pinned","Info:   3 out of   4 goCommand dependencies pinned","Info:   0 out of   1 downloadThenRun dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.26.10 not signed: https://api.github.com/repos/ehang-io/nps/releases/41100824","Warn: release artifact v0.26.9 not signed: https://api.github.com/repos/ehang-io/nps/releases/32208012","Warn: release artifact v0.26.8 not signed: https://api.github.com/repos/ehang-io/nps/releases/27649287","Warn: release artifact v0.26.7 not signed: https://api.github.com/repos/ehang-io/nps/releases/26278539","Warn: release artifact v0.26.6 not signed: https://api.github.com/repos/ehang-io/nps/releases/24852389","Warn: release artifact v0.26.10 does not have provenance: https://api.github.com/repos/ehang-io/nps/releases/41100824","Warn: release artifact v0.26.9 does not have provenance: https://api.github.com/repos/ehang-io/nps/releases/32208012","Warn: release artifact v0.26.8 does not have provenance: https://api.github.com/repos/ehang-io/nps/releases/27649287","Warn: release artifact v0.26.7 does not have provenance: https://api.github.com/repos/ehang-io/nps/releases/26278539","Warn: release artifact v0.26.6 does not have provenance: https://api.github.com/repos/ehang-io/nps/releases/24852389"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Vulnerabilities","score":0,"reason":"20 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2022-0968 / GHSA-gwc9-m7rh-j2ww","Warn: Project is vulnerable to: GO-2021-0356 / GHSA-8c26-wmh5-6g9v","Warn: Project is vulnerable to: GO-2024-2961","Warn: Project is vulnerable to: GO-2023-2402 / GHSA-45x7-px36-x8w8","Warn: Project is vulnerable to: GO-2024-3321 / GHSA-v778-237x-gjrc","Warn: Project is vulnerable to: GO-2025-3487 / GHSA-hcg3-q754-cr77","Warn: Project is vulnerable to: GO-2022-0236 / GHSA-h86h-8ppg-mxmh","Warn: Project is vulnerable to: GO-2021-0238 / GHSA-83g2-8m93-v3w7","Warn: Project is vulnerable to: GO-2022-0288","Warn: Project is vulnerable to: GO-2022-0969 / GHSA-69cg-p879-7622","Warn: Project is vulnerable to: GO-2022-1144 / GHSA-xrjj-mj9h-534m","Warn: Project is vulnerable to: GO-2023-1571 / GHSA-vvpx-j8f3-3w6h","Warn: Project is vulnerable to: GO-2023-1988 / GHSA-2wrh-6pvc-2jm9","Warn: Project is vulnerable to: GO-2023-2102 / GHSA-4374-p667-p6c8","Warn: Project is vulnerable to: GHSA-qppj-fm5r-hxr3","Warn: Project is vulnerable to: GO-2024-2687 / GHSA-4v7x-pqxf-cx7m","Warn: Project is vulnerable to: GO-2024-3333","Warn: Project is vulnerable to: GO-2025-3503 / GHSA-qxp5-gwg8-xv66","Warn: Project is vulnerable to: GO-2025-3595 / GHSA-vvgc-356p-c3xw","Warn: Project is vulnerable to: GO-2022-0493 / GHSA-p782-xgp4-8hr8"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 28 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T19:10:38.199Z","repository_id":37296985,"created_at":"2025-08-17T19:10:38.200Z","updated_at":"2025-08-17T19:10:38.200Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28472626,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-15T22:13:38.078Z","status":"ssl_error","status_checked_at":"2026-01-15T22:12:11.737Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["dns","firewall","go","gzip","http","https","nat","nps","snnapy","socks","socks5","ssh","tcp","tunnel","udp"],"created_at":"2024-07-31T08:01:01.965Z","updated_at":"2026-01-15T22:19:24.622Z","avatar_url":"https://github.com/ehang-io.png","language":"Go","funding_links":[],"categories":["Go","Misc","软硬件功能","https","内网穿透","Go (531)","Repositories"],"sub_categories":["内网穿透"],"readme":"\n# NPS\n![](https://img.shields.io/github/stars/ehang-io/nps.svg)   ![](https://img.shields.io/github/forks/ehang-io/nps.svg)\n[![Gitter](https://badges.gitter.im/cnlh-nps/community.svg)](https://gitter.im/cnlh-nps/community?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge)\n![Release](https://github.com/ehang-io/nps/workflows/Release/badge.svg)\n![GitHub All Releases](https://img.shields.io/github/downloads/ehang-io/nps/total)\n\n[README](https://github.com/ehang-io/nps/blob/master/README.md)|[中文文档](https://github.com/ehang-io/nps/blob/master/README_zh.md)\n\nNPS is a lightweight, high-performance, powerful **intranet penetration** proxy server, with a powerful web management terminal.\n\n\n![image](https://github.com/ehang-io/nps/blob/master/image/web.png?raw=true)\n\n## Feature\n\n- Comprehensive protocol support, compatible with almost all commonly used protocols, such as tcp, udp, http(s), socks5, p2p, http proxy ...\n- Full platform compatibility (linux, windows, macos, Synology, etc.), support installation as a system service simply.\n- Comprehensive control, both client and server control are allowed.\n- Https integration, support to convert backend proxy and web services to https, and support multiple certificates.\n- Just simple configuration on web ui can complete most requirements.\n- Complete information display, such as traffic, system information, real-time bandwidth, client version, etc.\n- Powerful extension functions, everything is available (cache, compression, encryption, traffic limit, bandwidth limit, port reuse, etc.)\n- Domain name resolution has functions such as custom headers, 404 page configuration, host modification, site protection, URL routing, and pan-resolution.\n- Multi-user and user registration support on server.\n\n**Didn't find the feature you want? It doesn't matter, click [Enter the document](https://ehang-io.github.io/nps/) to find it!**\n\n## Quick start\n\n### Installation\n\n\u003e [releases](https://github.com/ehang-io/nps/releases)\n\nDownload the corresponding system version, the server and client are separate.\n\n### Server start\n\nAfter downloading the server compressed package, unzip it, and then enter the unzipped folder.\n\n- execute installation command\n\nFor linux、darwin ```sudo ./nps install```\n\nFor windows, run cmd as administrator and enter the installation directory ```nps.exe install```\n\n- default ports\n\nThe default configuration file of nps use 80，443，8080，8024 ports\n\n80 and 443 ports for host mode default ports\n\n8080 for web management access port\n\n8024 for net bridge port, to communicate between server and client\n\n- start up\n\nFor linux、darwin ```sudo nps start```\n\nFor windows, run cmd as administrator and enter the program directory ```nps.exe start```\n\n```After installation, the windows configuration file is located at C:\\Program Files\\nps, linux or darwin is located at /etc/nps```\n\n**If you don't find it started successfully, you can check the log (Windows log files are located in the current running directory, linux and darwin are located in /var/log/nps.log).**\n\n- Access server IP:web service port (default is 8080).\n- Login with username and password (default is admin/123, must be modified when officially used).\n- Create a client.\n\n### Client connection\n- Click the + sign in front of the client in web management and copy the startup command.\n- Execute the startup command, Linux can be executed directly, Windows will replace ./npc with npc.exe and execute it with cmd.\n\n\nIf you need to register to the system service, you can check [Register to the system service](https://ehang-io.github.io/nps/#/use?id=注册到系统服务)\n\n### Configuration\n- After the client connects, configure the corresponding penetration service in the web.\n- For more advanced usage, see [Complete Documentation](https://ehang-io.github.io/nps/)\n\n## Contribution\n- If you encounter a bug, you can submit it to the dev branch directly.\n- If you encounter a problem, you can feedback through the issue.\n- The project is under development, and there is still a lot of room for improvement. If you can contribute code, please submit PR to the dev branch.\n- If there is feedback on new features, you can feedback via issues or qq group.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fehang-io%2Fnps","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fehang-io%2Fnps","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fehang-io%2Fnps/lists"}