Releases: v2ray/v2ray-core
v4.31.0
Warning
- Remove Shadowsosks OTA
- Compiling v2ray-core requires Go 1.15+
Fixes
- Fix Trojan inbound access log
Features
- VLESS PREVIEW 2.4
- Add XTLS Direct Mode
https://www.v2fly.org/config/protocols/vless.html#xtls-%E9%BB%91%E7%A7%91%E6%8A%80 - Add XTLS support to mKCP
- Add full VLESS fallbacks support to Trojan
- Add padding to abstract UNIX domain socket in fallbacks
- Allow startup when VLESS inbound clients are zero
- Update to IETF QUIC draft-29
Refactor
- VLESS fallbacks & XTLS other improvements
- Stats: Implements blocking/non-blocking messaging of Channel. @Vigilans
Chores
- Refine Azure Pipelines & Bazel: remove unnecessary steps. @Loyalsoldier
- Refine code *26. @Loyalsoldier
Build and compiling
- Compiler uses
gccgo
, remove flagsgcflags
andasmflags
- Make builds reproducible
Notice
The project gets rid of GOPATH
mode entirely from now on. Use Git
and go mod
command as your first choice while developing.
For more information, visit:
Download: https://github.com/v2fly/v2ray-core/releases/tag/v4.31.0
v4.28.2
v4.27.5
Features
Parse X-Forwarded-For in http transport @lucifer9
Fix
Fix according to staticcheck result @Loyalsoldier
Fix: Bound check when accessing DNS server's ipIndexMap @Vigilans
Refine code @Loyalsoldier
⚠️ VMess AEAD will be used when alterId
is 0
in V2Ray v4.28.0+
v4.27.0
Feature
- VLESS PREVIEW 1.3 https://www.v2fly.org/config/protocols/vless.html
- Add Linux riscv64 release @RPRX
Fix
- Shadowsocks supports cipher as None @yuhan6665
- Add access log for Dokodemo inbound @lucifer9
- Some typo fixes @DuckSoft
- Fix the error of missing curl in Dockerfile @kallydev
- GitHub Actions push to docker hub @kallydev
- Optimize SO_REUSEPORT implementation @Vigilans
- DOH supports HTTP/2 @darhwa
- Apply Sockopt from inbound config to Dokodemo Tproxy response connection @Vigilans
Breaking Change
- VMessAEAD has been updated and needs both client and server to be the same version for it to work.
- Release file structure changes.
⚠️ VMess AEAD will be used when alterId
is 0
in V2Ray v4.28.0+
v4.26.0
Updates
-
V2Fly’s signing infrastructure has been revised. You can from now on verify V2Fly’s release with the “Release” signed manifest file with v2ctl.
-
VMessAEAD has been updated to rely more on AEAD.
-
Outbound traffic accounting API. Thanks @yuhan6665
-
HTTP outbound can now handle HTTP2 over TLS, HTTP 1.1 over TLS in addition to HTTP 1.1 proxy traffic. Thanks @darhwa
-
ARM release will from now on have an explicit version in it. Thanks @RPRX
-
V2Ray will from now on generate Windows 32 ARM binary release.
-
Minor code tidy up. Thanks Roger Shimizu.
-
Minor code tidy up. Thanks @agioi
-
Fix crash when the client supplied an invalid domain name to DoH. Thanks @DuckSoft
Breaking Change
- VMessAEAD has been updated and needs both client and server to be the same version for it to work.
v4.25.1
v4.25.0
Fix
-
Further remove the identity leakage with TLS ClientHello from #2521 thank @darhwa
-
Fix UDP stability issue in Socks5 inbound, Shadowsocks inbound, and Dokodemo( TProxy ) inbound. This should alleviate unnecessary CPU, memory usage, and premature disconnection issue typically triggered by playing games, video conference, and Torrenting. See #2565
thank @JimHan75d8c5 @xiaokangwang and Other testers @1265578519 @zhj9709 @Kylejustknows etc -
Added ARM v5 binary in the release. This should allow legacy ARM devices to run V2Ray correctly. See #2536
Breaking Changes
- The file structure for ARM release files has changed.
v4.24.2
New Functions
-
VMess's new header format experiment begins. You can now enable VMessAEAD to be better protected. Documents EN CH are updated. See extra-VMessAEADdoc.zip for a more detailed explanation available in both Chinese and English.
-
mKCP can now be encrypted to resist recognition, address issue mentioned in #2530 #2253 #2131. Documents EN CH are updated.
Breaking Changes
- To slow down certain replay attacks, taint mechanic for VMess MD5 authentication data is introduced. Unless the server is under attack, a well-behaved client is not influenced. Pay attention to this change if you are designing a "V2Ray Panel", "Airport" or "V2Ray Service Provider". Documents EN CH are updated.
Minor fixes from v2fly/v2ray-core#12 v2fly/v2ray-core#10 included.
- Updated Golang tool-chain. Thanks @RPRX
- LocalAddr() in UDP workers will now return correct local addr. Thanks @zhuobixin
About AV warnings
We are aware some anti-virus software detects V2Ray as malware, which it isn't, but we can't afford to pay the fee needed to make them not detect V2Ray as malware. Microsoft's AV detects V2Ray as "Trojan:Win32/Wacatac.C!ml" , "Program:Win32/Wacapew.C!ml" each time we release a new version, and I have to manually contact them each time to remove it from the malware database. If you have more information to report please leave them here. These AVs are known to generate false-positive results: "Microsoft", "McAfee", "Cylance", "Symantec", "F-Secure", "SecureAge APEX", "Cybereason", "Cynet", "MaxSecure", "F-Secure", "Avira", "AVAST", "AVG", "Rising"(瑞星).
v4.23.4
Fix
- Issued further fixs for VMess weakness described in #2523 #2539
- Issued a fix for Fake HTTP Header weakness described in #2537
Breaking Changes
- For VMess connections, clients cannot rely on servers to indicate issues in connectivity or password mismatch by closing connection. Well behaved clients are not influenced.
- For VMess servers, it is not recommended to change UUID frequently as VMess will procedurally generate its connection drain and close pattern based on UUID it has when the first connection arrives. This is very unlikely to influence users that are using V2Ray as a standalone software. However, for those dynamically add and remove UUID, it is recommended to connect to V2Ray's port immediately after starting it before adding more UUIDs with API and make sure there is at least one UUID in the configure file even if you plan to add more later.
- For users using Fake HTTP Header, it is necessary to keep clients and servers synchronized on fake HTTP header settings, and assign a path with sufficient entropy. From now on, if the request path is not expected, the server will abort the connection.
- Server will by default wait 60 seconds for the handshakes to complete before closing the connection instead of 4 seconds. This may increase server load if the server is under a DDoS attack. This allows the server to blend into normal TCP servers better and its benefit is significantly higher than potential downsides. This behavior is tweakable with the configure file.
Security Advisory
- From now on, the VMess protocol will drain any unrecognized or invalid connection based on procedurally generate connection drain and close patterns. It can neutralize all known "replay and observe close" attacks. The base drain size and drain size jitter will be generated based on UUID a VMess inbound have when the first connection arrives. For each server, these values will be different and remain constant for that server. The attacker will not be able to aggregate results in order to identify server identity. If you have multiple VMess inbounds on the same host, the protection offered by procedurally generated connection drain and close patterns will be slightly encumbered.
- Fake HTTP Header will from now on imitate standard HTTP server behavior better and is able to significantly hindrance active probing. However, it is only designed to circumvent ISP's QoS, rate limiting, throttling, and sabotage of unrecognized connection. For an attacker with privileged access to network path, Fake HTTP Header does not offer adequate protection against specialized detection or manual inspections by attackers with special tools and knowledge.
A Request for Users and Client Authors
Please refer to https://github.com/v2fly/v2ray-core/releases for further updates instead of the V2Ray release page. Currently, update in V2Fly will be mirrored to the V2Ray release page but this will NOT continue indefinitely.
v4.23.3
Fix
- Issued an emergency fix for VMess weakness described in #2523
This fix can significantly hindrance attack based on the weakness described. Only servers need to be updated to apply this emergency fix, it not expected for well-behaved clients to be influenced. A more permanent solution is underway.