Top Related Projects
3proxy - tiny free proxy server
An unidentifiable mechanism that helps you bypass GFW.
A Rust port of shadowsocks
🔥 Proxy is a high performance HTTP(S) proxies, SOCKS5 proxies,WEBSOCKET, TCP, UDP proxy server implemented by golang. Now, it supports chain-style proxies,nat forwarding in different lan,TCP/UDP port forwarding, SSH forwarding.Proxy是golang实现的高性能http,https,websocket,tcp,socks5代理服务器,支持内网穿透,链式代理,通讯加密,智能HTTP,SOCKS5代理,黑白名单,限速,限流量,限连接数,跨平台,KCP支持,认证API。
GO Simple Tunnel - a simple tunnel written in golang
A fast TCP/UDP tunnel over HTTP
Quick Overview
3proxy is a lightweight, multi-protocol proxy server software. It supports various protocols including HTTP(S), SOCKS, POP3, and FTP, making it versatile for different networking needs. 3proxy is designed to be fast, small, and portable, running on multiple platforms including Windows, Unix, and embedded systems.
Pros
- Lightweight and efficient, with low resource consumption
- Supports multiple protocols (HTTP, SOCKS, POP3, FTP, etc.)
- Highly configurable with extensive features
- Cross-platform compatibility (Windows, Unix, embedded systems)
Cons
- Documentation can be sparse or outdated in some areas
- Setup and configuration may be complex for beginners
- Limited GUI options, primarily command-line based
- Some advanced features may require deeper networking knowledge
Getting Started
To get started with 3proxy:
- Download the latest release from the GitHub repository.
- Extract the files to a directory of your choice.
- Create a configuration file (e.g.,
3proxy.cfg
) with basic settings:
nserver 8.8.8.8
nserver 8.8.4.4
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
users user:CL:password
auth strong
allow user
proxy -p3128
socks -p1080
- Run 3proxy with the configuration file:
./3proxy 3proxy.cfg
This basic setup creates an HTTP proxy on port 3128 and a SOCKS proxy on port 1080, with user authentication. Adjust the configuration as needed for your specific use case.
Competitor Comparisons
3proxy - tiny free proxy server
Pros of 3proxy
- More active development and frequent updates
- Larger community and contributor base
- Better documentation and examples
Cons of 3proxy
- Potentially less stable due to frequent changes
- May have more complex configuration options
- Larger codebase, which could lead to more potential vulnerabilities
Code Comparison
3proxy:
struct clientparam *newparam;
if(!(newparam = myalloc(sizeof(struct clientparam)))) {
return (NULL);
}
memset(newparam, 0, sizeof(struct clientparam));
newparam->srv = srv;
3proxy>:
struct clientparam *newparam;
newparam = myalloc(sizeof(struct clientparam));
if(!newparam) return NULL;
memset(newparam, 0, sizeof(struct clientparam));
newparam->srv = srv;
The code snippets show minor differences in error handling and memory allocation. 3proxy uses a single-line if statement for allocation failure, while 3proxy> separates the allocation and error checking.
Both repositories appear to be the same project, with 3proxy being the main repository and 3proxy> possibly being a fork or older version. The comparison highlights potential differences in development activity and community engagement, but overall, they share the same core functionality as a proxy server solution.
An unidentifiable mechanism that helps you bypass GFW.
Pros of Trojan
- Designed specifically for bypassing internet censorship
- Implements strong encryption and obfuscation techniques
- Lightweight and efficient, with low resource usage
Cons of Trojan
- Limited functionality compared to general-purpose proxy servers
- Requires specific client software for usage
- Less versatile for non-censorship-bypassing use cases
Code Comparison
3proxy (C):
int sockgetchar(int sock, unsigned char *c, int timeosec, int timeousec) {
fd_set fds;
struct timeval tv;
int res;
tv.tv_sec = timeosec;
tv.tv_usec = timeousec;
Trojan (C++):
void Service::run() {
socket_acceptor acceptor(io_context, tcp::endpoint(listen_addr, listen_port));
for (;;) {
auto socket = std::make_shared<boost::asio::ip::tcp::socket>(io_context);
acceptor.accept(*socket);
Summary
3proxy is a versatile, multi-protocol proxy server with a wide range of features, suitable for various networking tasks. Trojan, on the other hand, is a specialized tool focused on bypassing internet censorship with strong encryption and obfuscation. While 3proxy offers more flexibility, Trojan excels in its specific use case of circumventing network restrictions.
A Rust port of shadowsocks
Pros of shadowsocks-rust
- Written in Rust, offering better memory safety and performance
- Supports AEAD ciphers, providing stronger encryption
- Active development with frequent updates and improvements
Cons of shadowsocks-rust
- More complex setup and configuration compared to 3proxy
- Limited to shadowsocks protocol, less versatile for other proxy needs
Code Comparison
3proxy:
int sockmap(int s1, int s2, int timeo) {
fd_set fds;
int rc;
char buf[BUFSIZE];
// ... (rest of the function)
}
shadowsocks-rust:
pub async fn relay_udp(
socket: Arc<UdpSocket>,
client_addr: SocketAddr,
mut server_recv_stream: RecvHalf,
mut client_send_stream: SendHalf,
) -> io::Result<()> {
// ... (rest of the function)
}
Summary
3proxy is a versatile multi-protocol proxy server written in C, offering support for various proxy types. It's lightweight and easy to set up but may lack some modern security features.
shadowsocks-rust is a Rust implementation of the Shadowsocks protocol, focusing on performance and security. It's more specialized but offers stronger encryption and better memory safety due to Rust's features.
The choice between the two depends on specific needs: 3proxy for versatility and simplicity, shadowsocks-rust for performance and security in Shadowsocks deployments.
🔥 Proxy is a high performance HTTP(S) proxies, SOCKS5 proxies,WEBSOCKET, TCP, UDP proxy server implemented by golang. Now, it supports chain-style proxies,nat forwarding in different lan,TCP/UDP port forwarding, SSH forwarding.Proxy是golang实现的高性能http,https,websocket,tcp,socks5代理服务器,支持内网穿透,链式代理,通讯加密,智能HTTP,SOCKS5代理,黑白名单,限速,限流量,限连接数,跨平台,KCP支持,认证API。
Pros of goproxy
- Written in Go, offering better performance and concurrency handling
- Supports multiple protocols including HTTP(S), SOCKS5, and TCP/UDP
- Provides a web-based management interface for easier configuration
Cons of goproxy
- Less mature and potentially less stable compared to 3proxy
- May have a steeper learning curve for users unfamiliar with Go
Code Comparison
3proxy (C):
int sockmap(int s1, int s2, int timeo) {
fd_set fds;
struct timeval tv;
int res;
// ... (rest of the function)
}
goproxy (Go):
func (s *Server) handleHTTP(w http.ResponseWriter, r *http.Request) {
if r.Method == "CONNECT" {
s.handleHTTPSConnect(w, r)
} else {
s.handleHTTPRequest(w, r)
}
}
Summary
3proxy is a more established and lightweight proxy server written in C, while goproxy is a newer, feature-rich alternative written in Go. 3proxy may be preferred for its simplicity and long-standing reputation, whereas goproxy offers modern features and potentially better performance for concurrent connections. The choice between the two depends on specific requirements, familiarity with the programming languages, and desired features.
GO Simple Tunnel - a simple tunnel written in golang
Pros of gost
- Written in Go, offering better cross-platform compatibility and easier deployment
- Supports multiple protocols including HTTP, SOCKS, Shadowsocks, and more
- Features a built-in web-based management interface for easier configuration
Cons of gost
- Less mature and potentially less stable compared to 3proxy
- May have higher resource usage due to being written in Go
- Documentation is primarily in Chinese, which can be a barrier for non-Chinese speakers
Code Comparison
3proxy (C):
int bindparam(char *param, char *prefix, int port) {
struct sockaddr_in sa;
struct sockaddr_in6 sa6;
SOCKET sock = INVALID_SOCKET;
int res;
// ... (additional code)
}
gost (Go):
func (s *Server) ListenAndServe() error {
var err error
var ln net.Listener
if s.Listener != nil {
ln = s.Listener
} else {
ln, err = net.Listen("tcp", s.Addr)
// ... (additional code)
}
}
Both projects serve as proxy servers, but gost offers more modern features and easier deployment, while 3proxy may provide better stability and performance for certain use cases.
A fast TCP/UDP tunnel over HTTP
Pros of Chisel
- Written in Go, offering cross-platform compatibility and easy deployment
- Supports reverse tunneling, making it useful for accessing services behind NATs or firewalls
- Includes built-in encryption and compression for secure and efficient data transfer
Cons of Chisel
- Less mature and potentially less stable compared to 3proxy
- May have a steeper learning curve for users unfamiliar with Go-based tools
- Limited protocol support compared to 3proxy's extensive options
Code Comparison
3proxy configuration example:
nserver 8.8.8.8
nserver 8.8.4.4
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
Chisel server command:
chisel server --port 8080 --reverse
Key Differences
- 3proxy is a more traditional proxy server with support for various protocols, while Chisel focuses on tunneling and reverse proxying
- 3proxy offers more granular configuration options, whereas Chisel aims for simplicity and ease of use
- Chisel's Go-based architecture may provide better performance in certain scenarios, but 3proxy's C implementation can be more efficient for high-throughput proxy tasks
Both tools have their strengths, with 3proxy being more suitable for complex proxy setups and Chisel excelling in scenarios requiring secure tunneling and reverse proxying.
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
3APA3A 3proxy tiny proxy server
(c) 2002-2025 by Vladimir '3APA3A' Dubrovin 3proxy@3proxy.org
Branches: Master (stable) branch - 3proxy 0.9 Devel branch - 3proxy 10 (don't use it)
-
Download Binaries and sources for released (master) versions (Windows, Linux): https://github.com/z3APA3A/3proxy/releases
Docker images: https://hub.docker.com/repository/docker/3proxy/3proxy Archive of old versions: https://github.com/z3APA3A/3proxy-archive
-
Documentation Documentation (man pages and HTML) available with download, on https://3proxy.org/ and in github wiki https://github.com/3proxy/3proxy/wiki
-
Windows installation
3proxy --install
installs and starts proxy as Windows service
(config file should be located in the same directory)
3proxy --remove
removes the service (should be stopped before via
'net stop 3proxy').
- To build in Linux
install git and build-essential packages, use
git clone https://github.com/z3apa3a/3proxy cd 3proxy ln -s Makefile.Linux Makefile make sudo make install
Default configuration (for Linux/Unix): 3proxy uses 2 configuration files: /etc/3proxy/3proxy.cfg (before-chroot). This configuration file is executed before chroot and should not be modified. /usr/local/3proxy/conf/3proxy.cfg symlinked from /etc/3proxy/conf/3proxy.cfg (after-chroot) is a main configuration file. Modify this file, if required. All paths in /usr/local/3proxy/conf/3proxy.cfg are relative to chroot directory (/usr/local/3proxy). For future versions it's planned to move 3proxy chroot direcory to /var. Log files are created in /usr/local/3proxy/logs symlinked from /var/log/3proxy. By default, socks is started on 0.0.0.0:1080 and proxy on 0.0.0.0:3128 with basic auth, no users are added by default.
use /etc/3proxy/conf/add3proxyuser.sh script to add users.
usage: /etc/3proxy/conf/add3proxyuser.sh username password [day_limit] [bandwidth] day_limit - traffic limit in MB per day bandwidth - bandwith in bits per second 1048576 = 1Mbps
or modify /etc/3proxy/conf/ files directly.
- For MacOS X / FreeBSD / *BSD
git clone https://github.com/z3apa3a/3proxy cd 3proxy ln -s Makefile.FreeBSD Makefile make
(binaries are in bin/ directory)
Features:
- General + IPv6 support for incoming and outgoing connection, can be used as a proxy between IPv4 and IPv6 networks in either direction. + HTTP/1.1 Proxy with keep-alive client and server support, transparent proxy support. + HTTPS (CONNECT) proxy (compatible with HTTP/2 / SPDY) + Anonymous and random client IP emulation for HTTP proxy mode + FTP over HTTP support. + DNS caching with built-in resolver + DNS proxy + DNS over TCP support, redirecting DNS traffic via parent proxy + SOCKSv4/4.5 Proxy + SOCKSv5 Proxy + SOCKSv5 UDP and BIND support (fully compatible with SocksCAP/FreeCAP for UDP) + Transparent SOCKS redirection for HTTP, POP3, FTP, SMTP + SNI proxy (based on TLS hostname) + TLS (SSL) server - may be used as https:// type proxy + POP3 Proxy + FTP proxy + TCP port mapper (port forwarding) + UDP port mapper (port forwarding) + SMTP proxy + Threaded application (no child process). + Web administration and statistics + Plugins for functionality extension + Native 32/64 bit application
- Proxy chaining and network connections + Can be used as a bridge between client and different proxy type (e.g. convert incoming HTTP proxy request from client to SOCKSv5 request to parent server). + Connect back proxy support to bypass firewalls + Parent proxy support for any type of incoming connection + Username/password authentication for parent proxy(s). + HTTPS/SOCKS4/SOCKS5 and ip/port redirection parent support + Random parent selection + Chain building (multihop proxing) + Load balancing between few network connections by choosing network interface
- Logging + tuneable log format compatible with any log parser + stdout logging + file logging + syslog logging (Unix) + ODBC logging + RADIUS accounting + log file rotation + automatic log file processing with external archiver (for files) + Character filtering for log files + different log files for different servces are supported
- Access control + ACL-driven Access control by username, source IP, destination IP/hostname, destination port and destination action (POST, PUT, GET, etc), weekday and daytime. + ACL-driven (user/source/destination/protocol/weekday/daytime or combined) bandwith limitation for incoming and (!)outgoing trafic. + ACL-driven traffic limitation per day, week or month for incoming and outgoing traffic + Connection limitation and ratelimting + User authentication by username / password + RADIUS Authentication and Authorization + User authentication by DNS hostname + Authentication cache with possibility to limit user to single IP address + Access control by username/password for SOCKSv5 and HTTP/HTTPS/FTP + Cleartext or encrypted (crypt/MD5 or NT) passwords. + Connection redirection + Access control by requested action (CONNECT/BIND, HTTP GET/POST/PUT/HEAD/OTHER). + All access control entries now support weekday and time limitations + Hostnames and * templates are supported instead of IP address
- Extensions + Regular expression filtering (with PCRE) via PCREPlugin + Authentication with Windows username/password (cleartext only) + SSL/TLS decryptions with certificate spoofing + Transparent redirection support for Linux and *BSD
- Configuration + support for configuration files + support for includes in configuration files + interface binding + socket options + running as daemon process + utility for automated networks list building + configuration reload on any file change Unix + support for chroot + support for setgid + support for setuid + support for signals (SIGUSR1 to reload configuration) Windows + support --install as service + support --remove as service + support for service START, STOP, PAUSE and CONTINUE commands (on PAUSE no new connection accepted, but active connections still in progress, on CONTINUE configuration is reloaded) Windows 95/98/ME + support --install as service + support --remove as service
- Compilation + MSVC (static) + OpenWatcom (static) + Intel Windows Compiler (msvcrt.dll) + Windows/gcc (msvcrt.dll) + Cygwin/gcc (cygwin.dll) + Unix/gcc + Unix/ccc + Solaris + Mac OS X, iPhone OS + Linux and derivered systems + Lite version for Windows 95/98/NT/2000/XP/2003 + 32 bit and 64 bit versions for Windows Vista and above, Windows 2008 server and above
3proxy Combined proxy server may be used as executable or service (supports installation and removal). It uses config file to read it's configuration (see 3proxy.cfg.sample for details). 3proxy.exe is all-in-one, it doesn't require all others .exe to work. See 3proxy.cfg.sample for examples, see man 3proxy.cfg
proxy HTTP proxy server, binds to port 3128 ftppr FTP proxy server, binds to port 21 socks SOCKS 4/5 proxy server, binds to port 1080 ftppr FTP proxy server, please do not mess it with FTP over HTTP proxy used in browsers pop3p POP3 proxy server, binds to port 110. You must specify POP3 username as username@target.host.ip[:port] port is 110 by default. Exmple: in Username configuration for you e-mail reader set someuser@pop.example.org, to obtains mail for someuser from pop.somehost.ru via proxy. smtpp SMTP proxy server, binds to port 25. You must specify SMTP username as username@target.host.ip[:port] port is 25 by default. Exmple: in Username configuration for you e-mail reader set someuser@mail.example.org, to send mail as someuser via mail.somehost.ru via proxy. tcppm TCP port mapping. Maps some TCP port on local machine to TCP port on remote host. tlspr TLS proxy (SNI proxy) - sniffs hostname from TLS handshake udppm UDP port mapping. Maps some UDP port on local machine to UDP port on remote machine. Only one user simulationeously can use UDP mapping, so it cann't be used for public service in large networks. It's OK to use it to map to DNS server in small network or to map Counter-Strike server for single client (you can use few mappings on different ports for different clients in last case). mycrypt Program to obtain crypted password fro cleartext. Supports both MD5/crypt and NT password. mycrypt password produces NT password mycrypt salt password produces MD5/crypt password with salt "salt".
Run utility with --help option for command line reference.
Latest version is available from https://3proxy.org/
Want to donate the project? https://3proxy.org/donations/
Top Related Projects
3proxy - tiny free proxy server
An unidentifiable mechanism that helps you bypass GFW.
A Rust port of shadowsocks
🔥 Proxy is a high performance HTTP(S) proxies, SOCKS5 proxies,WEBSOCKET, TCP, UDP proxy server implemented by golang. Now, it supports chain-style proxies,nat forwarding in different lan,TCP/UDP port forwarding, SSH forwarding.Proxy是golang实现的高性能http,https,websocket,tcp,socks5代理服务器,支持内网穿透,链式代理,通讯加密,智能HTTP,SOCKS5代理,黑白名单,限速,限流量,限连接数,跨平台,KCP支持,认证API。
GO Simple Tunnel - a simple tunnel written in golang
A fast TCP/UDP tunnel over HTTP
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