Convert Figma logo to code with AI

ehang-io logonps

一款轻量级、高性能、功能强大的内网穿透代理服务器。支持tcp、udp、socks5、http等几乎所有流量转发,可用来访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析、内网socks5代理等等……,并带有功能强大的web管理端。a lightweight, high-performance, powerful intranet penetration proxy server, with a powerful web management terminal.

30,258
5,461
30,258
495

Top Related Projects

84,231

A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.

24,128

Unified ingress for developers

12,696

A fast TCP/UDP tunnel over HTTP

15,747

GO Simple Tunnel - a simple tunnel written in golang

Quick Overview

NPS (Not only Proxy Server) is an open-source, lightweight, and powerful intranet penetration proxy server. It supports TCP and UDP port forwarding, HTTP(S) proxies, SOCKS5 proxies, and P2P connections. NPS is designed to help users easily expose local servers to the internet and manage multiple clients efficiently.

Pros

  • Easy to set up and use with a web-based management interface
  • Supports multiple protocols and connection types
  • Cross-platform compatibility (Windows, Linux, MacOS)
  • Encrypted communication between client and server

Cons

  • Documentation is primarily in Chinese, which may be challenging for non-Chinese speakers
  • Limited community support compared to more popular alternatives
  • Some users report occasional stability issues with long-running connections
  • Advanced features may require more technical knowledge to configure properly

Getting Started

  1. Download the latest release from the GitHub releases page.
  2. Extract the files and run the server:
./nps install
nps start
  1. Access the web interface at http://localhost:8080 (default credentials: admin/123).
  2. Create a client and download the client configuration.
  3. Run the client on the machine you want to expose:
./npc -server=<your_server_ip>:<port> -vkey=<your_client_key>
  1. Configure port forwarding or other desired features through the web interface.

Competitor Comparisons

84,231

A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.

Pros of frp

  • More active development with frequent updates and releases
  • Larger community and user base, resulting in better support and documentation
  • Supports more protocols and has a wider range of features

Cons of frp

  • Can be more complex to set up and configure for beginners
  • Higher resource consumption, especially for large-scale deployments
  • Less focus on security features compared to nps

Code Comparison

frp configuration example:

[common]
server_addr = x.x.x.x
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

nps configuration example:

[common]
server_addr=x.x.x.x:8024
conn_type=tcp
vkey=123

[ssh]
mode=tcp
target_addr=127.0.0.1:22
server_port=6000

Both projects aim to provide NAT traversal solutions, but they differ in their approach and feature sets. frp offers more flexibility and protocol support, while nps focuses on simplicity and security. The choice between the two depends on specific requirements and use cases.

24,128

Unified ingress for developers

Pros of ngrok

  • More user-friendly and easier to set up for beginners
  • Offers a free tier with basic features
  • Provides detailed analytics and inspection of HTTP traffic

Cons of ngrok

  • Limited customization options compared to nps
  • Closed-source, which may be a concern for some users
  • Paid plans can be expensive for advanced features

Code Comparison

ngrok:

ngrok http 80

nps:

./nps start

Both tools aim to expose local servers to the internet, but they differ in their approach and features. ngrok is more straightforward to use, making it ideal for quick setups and testing. However, nps offers more advanced features and customization options, making it suitable for more complex networking scenarios.

ngrok's simplicity comes at the cost of flexibility, while nps provides more control but requires a steeper learning curve. The choice between the two depends on the user's specific needs, technical expertise, and desired level of customization.

12,696

A fast TCP/UDP tunnel over HTTP

Pros of Chisel

  • Simpler setup and configuration process
  • Lightweight and easy to deploy on various platforms
  • Built-in support for HTTP/HTTPS tunneling

Cons of Chisel

  • Limited features compared to NPS
  • Less comprehensive documentation and community support
  • Fewer advanced networking options

Code Comparison

NPS configuration example:

[common]
server_addr=1.1.1.1:8024
conn_type=tcp
vkey=123

Chisel server command:

chisel server --port 8080 --reverse

Chisel client command:

chisel client server.com:8080 R:3000:localhost:3000

Both NPS and Chisel are tools for creating secure tunnels and proxies. NPS offers a more comprehensive set of features, including load balancing, multi-protocol support, and a web management interface. Chisel, on the other hand, focuses on simplicity and ease of use, making it a good choice for basic tunneling needs.

NPS is better suited for complex networking scenarios and enterprise environments, while Chisel excels in quick setup and lightweight deployments. The choice between the two depends on the specific requirements of your project and the level of complexity you're willing to manage.

15,747

GO Simple Tunnel - a simple tunnel written in golang

Pros of gost

  • More lightweight and focused on proxy functionality
  • Supports a wider range of proxy protocols (e.g., SOCKS4, SOCKS5, HTTP(S), SS)
  • Easier to set up for simple proxy scenarios

Cons of gost

  • Lacks advanced features like file transfer and web management
  • Less comprehensive documentation and community support
  • Limited built-in security features compared to nps

Code Comparison

nps configuration example:

[common]
bind_port = 8024
vkey = 123456

[web]
web_port = 8080
web_username = admin
web_password = 123

gost configuration example:

gost -L=:8080 -F=socks5://localhost:1080

Summary

gost is a more focused proxy tool, offering simplicity and support for various proxy protocols. nps, on the other hand, provides a more comprehensive solution with additional features like file transfer and web management. While gost is easier to set up for basic proxy needs, nps offers more advanced functionality and better documentation. The choice between the two depends on the specific requirements of your project and the level of complexity you're willing to manage.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

NPS

Gitter Release GitHub All Releases

README|中文文档

NPS is a lightweight, high-performance, powerful intranet penetration proxy server, with a powerful web management terminal.

image

Feature

  • Comprehensive protocol support, compatible with almost all commonly used protocols, such as tcp, udp, http(s), socks5, p2p, http proxy ...
  • Full platform compatibility (linux, windows, macos, Synology, etc.), support installation as a system service simply.
  • Comprehensive control, both client and server control are allowed.
  • Https integration, support to convert backend proxy and web services to https, and support multiple certificates.
  • Just simple configuration on web ui can complete most requirements.
  • Complete information display, such as traffic, system information, real-time bandwidth, client version, etc.
  • Powerful extension functions, everything is available (cache, compression, encryption, traffic limit, bandwidth limit, port reuse, etc.)
  • Domain name resolution has functions such as custom headers, 404 page configuration, host modification, site protection, URL routing, and pan-resolution.
  • Multi-user and user registration support on server.

Didn't find the feature you want? It doesn't matter, click Enter the document to find it!

Quick start

Installation

releases

Download the corresponding system version, the server and client are separate.

Server start

After downloading the server compressed package, unzip it, and then enter the unzipped folder.

  • execute installation command

For linux、darwin sudo ./nps install

For windows, run cmd as administrator and enter the installation directory nps.exe install

  • default ports

The default configuration file of nps use 80,443,8080,8024 ports

80 and 443 ports for host mode default ports

8080 for web management access port

8024 for net bridge port, to communicate between server and client

  • start up

For linux、darwin sudo nps start

For windows, run cmd as administrator and enter the program directory nps.exe start

After installation, the windows configuration file is located at C:\Program Files\nps, linux or darwin is located at /etc/nps

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).

  • Access server IP:web service port (default is 8080).
  • Login with username and password (default is admin/123, must be modified when officially used).
  • Create a client.

Client connection

  • Click the + sign in front of the client in web management and copy the startup command.
  • Execute the startup command, Linux can be executed directly, Windows will replace ./npc with npc.exe and execute it with cmd.

If you need to register to the system service, you can check Register to the system service

Configuration

  • After the client connects, configure the corresponding penetration service in the web.
  • For more advanced usage, see Complete Documentation

Contribution

  • If you encounter a bug, you can submit it to the dev branch directly.
  • If you encounter a problem, you can feedback through the issue.
  • 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.
  • If there is feedback on new features, you can feedback via issues or qq group.