nps
一款轻量级、高性能、功能强大的内网穿透代理服务器。支持tcp、udp、socks5、http等几乎所有流量转发,可用来访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析、内网socks5代理等等……,并带有功 能强大的web管理端。a lightweight, high-performance, powerful intranet penetration proxy server, with a powerful web management terminal.
Top Related Projects
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
- Download the latest release from the GitHub releases page.
- Extract the files and run the server:
./nps install
nps start
- Access the web interface at
http://localhost:8080
(default credentials: admin/123). - Create a client and download the client configuration.
- Run the client on the machine you want to expose:
./npc -server=<your_server_ip>:<port> -vkey=<your_client_key>
- Configure port forwarding or other desired features through the web interface.
Competitor Comparisons
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.
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.
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.
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 designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
NPS
NPS is a lightweight, high-performance, powerful intranet penetration proxy server, with a powerful web management terminal.
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
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.
Top Related Projects
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot