Top Related Projects
A Rust port of shadowsocks
An unidentifiable mechanism that helps you bypass GFW.
Xray, Penetrates Everything. Also the best v2ray-core, with XTLS support. Fully compatible configuration.
Go实现的Trojan代理,支持多路复用/路由功能/CDN中转/Shadowsocks混淆插件,多平台,无依赖。A Trojan proxy written in Go. An unidentifiable mechanism that helps you bypass GFW. https://p4gefau1t.github.io/trojan-go/
Make a fortune quietly
GO Simple Tunnel - a simple tunnel written in golang
Quick Overview
V2Ray is a platform for building proxies to bypass network restrictions. It's designed to be a unified platform for anti-censorship, supporting various protocols and transport methods. V2Ray aims to provide a flexible and secure way to route network traffic.
Pros
- Supports multiple protocols (VMess, Shadowsocks, Trojan, etc.)
- Highly configurable and customizable
- Strong focus on security and privacy
- Cross-platform support (Windows, macOS, Linux, Android, iOS)
Cons
- Steep learning curve for beginners
- Complex configuration process
- Limited user-friendly GUI options
- Can be resource-intensive for high-traffic scenarios
Code Examples
- Basic client configuration:
{
"inbounds": [{
"port": 1080,
"protocol": "socks",
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls"]
},
"settings": {
"auth": "noauth"
}
}],
"outbounds": [{
"protocol": "vmess",
"settings": {
"vnext": [{
"address": "server_address",
"port": 443,
"users": [{ "id": "user_id" }]
}]
}
}]
}
This example sets up a basic SOCKS5 proxy client that connects to a VMess server.
- Multi-protocol server configuration:
{
"inbounds": [
{
"port": 443,
"protocol": "vmess",
"settings": {
"clients": [{ "id": "user_id" }]
},
"streamSettings": {
"network": "tcp",
"security": "tls",
"tlsSettings": {
"certificates": [{
"certificateFile": "/path/to/certificate.crt",
"keyFile": "/path/to/private.key"
}]
}
}
},
{
"port": 80,
"protocol": "shadowsocks",
"settings": {
"method": "aes-256-gcm",
"password": "your_password"
}
}
],
"outbounds": [{
"protocol": "freedom"
}]
}
This example configures a server to accept both VMess (over TLS) and Shadowsocks connections.
Getting Started
- Download the latest release for your platform from the official GitHub repository.
- Extract the archive and locate the
v2ray
executable. - Create a configuration file (e.g.,
config.json
) based on the examples provided above. - Run V2Ray with the command:
./v2ray -config config.json
- Configure your applications or system to use the proxy (usually
localhost:1080
for SOCKS5).
For more detailed instructions and advanced configurations, refer to the official documentation.
Competitor Comparisons
A Rust port of shadowsocks
Pros of shadowsocks-rust
- Written in Rust, offering better memory safety and performance
- Lightweight and focused solely on the Shadowsocks protocol
- Easier to set up and configure for basic proxy needs
Cons of shadowsocks-rust
- Limited feature set compared to v2ray-core's extensive capabilities
- Less flexibility in terms of protocol support and advanced networking options
- Smaller community and ecosystem around the project
Code Comparison
shadowsocks-rust:
let server = ServerConfig::load_from_str(&config_str)?;
let mut service = ServiceContext::new(server);
service.run().await?;
v2ray-core:
config, err := core.LoadConfig("json", configBytes)
if err != nil {
return nil, newError("failed to read config file").Base(err)
}
server, err := core.New(config)
Both projects implement proxy functionality, but v2ray-core offers a more comprehensive networking solution with support for multiple protocols and advanced features. shadowsocks-rust focuses specifically on the Shadowsocks protocol, providing a simpler and more lightweight option for users who only need this specific functionality.
v2ray-core is written in Go, while shadowsocks-rust leverages the Rust programming language for improved performance and memory safety. This makes shadowsocks-rust potentially more efficient in terms of resource usage, but v2ray-core's broader feature set may be more appealing for users requiring advanced networking capabilities.
An unidentifiable mechanism that helps you bypass GFW.
Pros of Trojan
- Simpler design and implementation, making it easier to set up and maintain
- Lower resource consumption, potentially better performance on low-end devices
- Harder to detect due to its mimicry of HTTPS traffic
Cons of Trojan
- Less flexible with fewer protocol options compared to V2Ray
- Limited built-in features, requiring additional tools for advanced functionalities
- Smaller community and ecosystem, potentially slower development and support
Code Comparison
V2Ray (Go):
type ServerConfig struct {
Address *Address `json:"address"`
Port uint16 `json:"port"`
Users []*User `json:"users"`
}
Trojan (C++):
struct Config {
std::string local_addr;
uint16_t local_port;
std::string remote_addr;
uint16_t remote_port;
std::string password;
};
Both projects use configuration structures, but V2Ray's approach is more modular and extensible, while Trojan's is simpler and more straightforward. V2Ray supports multiple users, whereas Trojan focuses on a single password-based authentication.
Xray, Penetrates Everything. Also the best v2ray-core, with XTLS support. Fully compatible configuration.
Pros of Xray-core
- Enhanced performance with XTLS protocol support
- More frequent updates and active development
- Additional features like VLESS and Trojan protocols
Cons of Xray-core
- Potentially less stable due to rapid development
- May have compatibility issues with some v2ray clients
Code Comparison
v2ray-core:
type ServerConfig struct {
Address *Address `json:"address"`
Port uint16 `json:"port"`
Network *Network `json:"network"`
}
Xray-core:
type ServerConfig struct {
Address *Address `json:"address"`
Port uint16 `json:"port"`
Network *Network `json:"network"`
Stream *StreamConfig `json:"streamSettings"`
}
The main difference in the code structure is the addition of the Stream
field in Xray-core's ServerConfig
, which allows for more flexible stream settings configuration.
Both projects share similar core functionality, but Xray-core builds upon v2ray-core with additional features and optimizations. While Xray-core offers improved performance and more frequent updates, it may be less stable due to its rapid development cycle. Users should consider their specific needs and priorities when choosing between the two projects.
Go实现的Trojan代理,支持多路复用/路由功能/CDN中转/Shadowsocks混淆插件,多平台,无依赖。A Trojan proxy written in Go. An unidentifiable mechanism that helps you bypass GFW. https://p4gefau1t.github.io/trojan-go/
Pros of trojan-go
- Simpler and more lightweight, focusing specifically on the Trojan protocol
- Potentially faster performance due to its specialized nature
- Easier to configure and deploy for users primarily interested in Trojan
Cons of trojan-go
- Less versatile compared to v2ray-core's multi-protocol support
- Smaller community and potentially slower development cycle
- May lack some advanced features available in v2ray-core
Code Comparison
v2ray-core (Go):
type ServerConfig struct {
Address *Address
Port uint16
Users []*protocol.User
}
trojan-go (Go):
type ServerConfig struct {
LocalAddr string `json:"local_addr"`
LocalPort int `json:"local_port"`
RemoteAddr string `json:"remote_addr"`
RemotePort int `json:"remote_port"`
}
Both projects use Go and have similar configuration structures, but v2ray-core's approach is more modular and extensible, reflecting its multi-protocol nature. trojan-go's configuration is more straightforward, focusing on essential Trojan protocol parameters.
Make a fortune quietly
Pros of naiveproxy
- Simpler setup and configuration process
- Better performance in high-latency environments
- More resistant to detection and blocking
Cons of naiveproxy
- Less flexible and customizable than v2ray-core
- Smaller community and fewer third-party tools
- Limited protocol support compared to v2ray-core
Code Comparison
v2ray-core:
type Server struct {
config *Config
ohm outbound.Manager
router routing.Router
ihm inbound.Manager
}
naiveproxy:
class NaiveProxy : public net::ProxyResolver::RequestClient {
public:
NaiveProxy(const net::ProxyConfig& proxy_config,
net::NetworkTrafficAnnotationTag traffic_annotation);
~NaiveProxy() override;
The code snippets show that v2ray-core is written in Go and has a more modular structure, while naiveproxy is written in C++ and focuses on integrating with the Chromium network stack.
v2ray-core offers more flexibility with its component-based architecture, allowing for easier customization and extension. naiveproxy, on the other hand, provides a simpler and more streamlined approach, which can be beneficial for users who prioritize ease of use and performance in specific scenarios.
GO Simple Tunnel - a simple tunnel written in golang
Pros of gost
- Supports a wider range of protocols, including HTTP, HTTPS, SOCKS4(A), SOCKS5, and more
- Simpler configuration and setup process
- Lighter resource usage, making it suitable for low-powered devices
Cons of gost
- Less active development and community support compared to v2ray-core
- Fewer advanced features and customization options
- Limited documentation and tutorials available
Code Comparison
v2ray-core:
type Server struct {
access sync.Mutex
features []feature.Feature
featureSet map[feature.Feature][]feature.Feature
}
gost:
type Server struct {
Listener net.Listener
Handler Handler
Options *ServerOptions
}
The code snippets show that v2ray-core uses a more complex structure with features and feature sets, while gost has a simpler server structure focusing on listener, handler, and options.
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
Move To https://github.com/v2fly/v2ray-core
Project V
Project V is a set of network tools that help you to build your own computer network. It secures your network connections and thus protects your privacy. See our website for more information.
License
Credits
This repo relies on the following third-party projects:
- In production:
- For testing only:
Top Related Projects
A Rust port of shadowsocks
An unidentifiable mechanism that helps you bypass GFW.
Xray, Penetrates Everything. Also the best v2ray-core, with XTLS support. Fully compatible configuration.
Go实现的Trojan代理,支持多路复用/路由功能/CDN中转/Shadowsocks混淆插件,多平台,无依赖。A Trojan proxy written in Go. An unidentifiable mechanism that helps you bypass GFW. https://p4gefau1t.github.io/trojan-go/
Make a fortune quietly
GO Simple Tunnel - a simple tunnel written in golang
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