loyalsoldier
cb4dd644fc
Chore: fix MphDomainMatcher log
2021-03-16 19:21:14 +08:00
Loyalsoldier
933861a761
FakeDNS: use 198.18.0.0/15 as default IP pool ( #779 )
2021-03-15 16:47:10 +08:00
kslr
68f04295f9
Route: mph add alias hybrid
2021-03-15 15:27:40 +08:00
DarthVader
ac1e5cd925
Add minimal perfect hash domain matcher ( #743 )
...
* rename to HybridDomainMatcher & convert domain to lowercase
* refactor code & add open hashing for rolling hash map
* fix lint errors
* update app/dns/dns.go
* convert domain to lowercase in `strmatcher.go`
* keep the original matcher behavior
* add mph domain matcher & conver domain names to loweercase when matching
* fix lint errors
* fix lint errors
2021-03-15 15:21:38 +08:00
Loyalsoldier
e46204f828
Chore: fix lint according to golangci-lint errors ( #781 )
...
* Chore: fix lint according to golangci-lint errors
* Chore: regenerate pb.go files
2021-03-14 07:44:47 +08:00
Loyalsoldier
e03947e6b0
Chore: update protobuf & dependencies ( #748 )
2021-03-08 05:12:27 +08:00
Shelikhoo
e24ddf588e
Create a name for linear domain matcher
2021-03-07 13:39:36 +00:00
Shelikhoo
867bbb429e
create session content in the context if do not exist yet
2021-03-06 14:33:20 +00:00
Shelikhoo
b585f2283a
fixing misbehaving code in mux that do not propagate context
2021-03-06 14:31:46 +00:00
Shelikhoo
8cf51a847e
fix misbehaving code crash and create bug on transport level front proxy
2021-03-06 13:53:25 +00:00
Shelikhoo
0043dd6685
rename config for NewACAutomatonDomainMatcher to hybrid
2021-03-05 18:36:36 +00:00
Shelikhoo
0010783191
Merge chained proxy with transport support
2021-03-03 23:27:26 +00:00
Shelikhoo
e65f96fa6b
output debug message when ACAutomatonDomainMatcher is enabled.
2021-03-03 22:56:12 +00:00
Shelikhoo
9d653dc708
Apply domain selector choice
2021-03-03 22:27:23 +00:00
Shelikhoo
837d5e7618
Allow the selection of domain matcher
2021-03-03 22:23:52 +00:00
DarthVader
a31a8e6f89
A memory-efficient and fast hybrid matcher ( #639 )
...
* a faster DomainMatcher implementation
* rename benchmark name
* fix linting errors
* add hybrid matcher
* add rabin-karp algorithm
* rename test & fix linting errors
* add more comment
* format code
* revert `MatcherGroup` match func
* fix linting errors
2021-03-04 05:39:51 +08:00
Loyalsoldier
49cf614346
Chore: update dependencies & protobuf ( #728 )
2021-03-03 17:31:53 +08:00
Loyalsoldier
45740be4af
Fix panic: index out of range ( #727 )
2021-03-03 16:53:42 +08:00
Shelikhoo
616b0d122e
Fix for context with empty content
2021-02-28 20:42:32 +00:00
Shelikhoo
9722488fd6
Disable routing for platform initialized detour
2021-02-28 19:57:57 +00:00
Shelikhoo
dd51d32250
Added Transport Layer Chained Proxy Support
2021-02-28 18:47:31 +00:00
Loyalsoldier
9d13f99633
Chore: format file & change names of test cases ( #707 )
2021-02-24 17:12:44 +08:00
CalmLong
7ebf3afc31
Feat: add disableCache option for DNS ( #705 )
...
Co-authored-by: loyalsoldier <10487845+Loyalsoldier@users.noreply.github.com>
2021-02-24 16:03:50 +08:00
yuhan6665
afb8385a7e
Feat: routing and freedom outbound ignore Fake DNS ( #696 )
...
Turn off fake DNS for request sent from Routing and Freedom outbound.
Fake DNS now only apply to DNS outbound.
This is important for Android, where VPN service take over all system DNS
traffic and pass it to core. "UseIp" option can be used in Freedom outbound
to avoid getting fake IP and fail connection.
Co-authored-by: loyalsoldier <10487845+Loyalsoldier@users.noreply.github.com>
2021-02-23 10:17:20 +08:00
Loyalsoldier
f94dd11a8c
Chore: change module name ( #677 )
2021-02-17 04:31:50 +08:00
Loyalsoldier
f98944c9e0
Chore: update protobuf ( #670 )
2021-02-11 14:57:20 +08:00
Xiaokang Wang
38da831b75
Feature: Fake DNS support ( #406 )
...
* Add fake dns
A new config object "fake" in DnsObject for toggling fake dns function
Compare with sniffing, fake dns is not limited to http and tls traffic.
It works across all inbounds. For example, when dns request come
from one inbound, the local DNS server of v2ray will response with a
unique fake IP for every unique domain name. Then later on v2ray
received a request to one of the fake IP from any inbounds, it will
override the request destination with the previously saved domain.
By default, v2ray cache up to 65535 addresses. The old records will
be discarded bases on LRU. The fake IP will be 240.x.x.x
* fix an edge case when encounter a fake IP in use
* Move lru to common.cache package
* Added the necessary change to obtain request IP from sniffer
* Refactor the code so that it may stop depending on global variables in the future.
* Replace string manipulation code with more generic codes, hopefully this will work for both IPv4 and IPv6 networks.
* Try to use IPv4 version of address if possible
* Added Test Case for Fake Dns
* Added More Test Case for Fake Dns
* Stop user from creating a instance with LRU size more than subnet size, it will create a infinite loop
* Move Fake DNS to a separate package
* Generated Code for fakedns
* Encapsulate Fake DNS as a Instance wide service
* Added Support for metadata sniffer, which will be used for Fake DNS
* Dependency injection for fake dns
* Fake DNS As a Sniffer
* Remove stub object
* Remove global variable
* Update generated protobuf file for metadata only sniffing
* Apply Fake DNS config to session
* Loading for fake dns settings
* Bug fix
* Include fake dns in all
* Fix FakeDns Lint Condition
* Fix sniffer config
* Fix lint message
* Fix dependency resolution
* Fix fake dns not loaded as sniffer
* reduce ttl for fake dns
* Apply Coding Style
* Apply Coding Style
* Apply Coding Style
* Apply Coding Style
* Apply Coding Style
* Fix crashed when no fake dns
* Apply Coding Style
* Fix Fake DNS do not apply to UDP socket
* Fixed a bug prevent FakeDNS App Setting from become effective
* Fixed a caveat prevent FakeDNS App Setting from become effective
* Use log comparison to reduce in issue when it comes to really high value typical for ipv6 subnet
* Add build tag for fakedns
* Removal of FakeDNS specific logic at DNS client: making it a standard dns client
* Regenerate auto generated file
* Amended version of configure file
* Bug fixes for fakeDNS
* Bug fixes for fakeDNS
* Fix test: remove reference to removed attribute
* Test: fix codacy issue
* Conf: Remove old field support
* Test: fix codacy issue
* Change test scale for TestFakeDnsHolderCreateMappingAndRollOver
* Test: fix codacy issue
Co-authored-by: yuhan6665 <1588741+yuhan6665@users.noreply.github.com>
Co-authored-by: loyalsoldier <10487845+Loyalsoldier@users.noreply.github.com>
Co-authored-by: kslr <kslrwang@gmail.com>
2021-02-08 18:18:52 +08:00
database64128
484d740800
🔙 Revert "Add traffic stat of every request in access log ( #642 )" ( #644 )
...
This reverts commit af0120e771
.
2021-01-30 20:32:34 +08:00
刘志龙
af0120e771
Add traffic stat of every request in access log ( #642 )
...
* Add traffic stat of every request in access log
* Fix: record pointer may be null
* Clarify the data unit in access log
2021-01-30 01:47:13 +08:00
DarthVader
de618121ad
Refactor: A faster DomainMatcher implementation ( #587 )
...
* a faster DomainMatcher implementation
* rename benchmark name
* fix linting errors
2021-01-20 15:53:07 +08:00
loyalsoldier
87e857ee3f
Chore: minor fixes
2021-01-01 12:52:04 +08:00
V2Fly Team
66e203f156
DNS: refine skipRoutePick ( #558 )
2020-12-30 18:35:19 +08:00
maskedeken
8c5b392f27
DNS: add DNS over QUIC support ( #534 )
2020-12-25 19:13:50 +08:00
Loyalsoldier
c27ed16e6a
Fix: DNS compatible with localhost
nameserver ( #530 )
2020-12-19 12:17:55 +08:00
Ye Zhihao
d8c03f10b5
Refactoring: DNS App ( #169 )
...
Co-authored-by: loyalsoldier <10487845+Loyalsoldier@users.noreply.github.com>
2020-12-18 17:24:33 +08:00
Loyalsoldier
d9db22093b
Fix: write to log without clientIP ( #517 )
2020-12-15 16:59:23 +08:00
Loyalsoldier
166d1afee5
DNS: add clientip for specific nameserver ( #504 )
2020-12-12 07:15:29 +08:00
Loyalsoldier
b68f943c78
Fix lint according to golangci-lint ( #439 )
2020-11-22 05:05:01 +08:00
Ye Zhihao
5b2a9e8769
API: Reflection Service Support ( #435 )
2020-11-20 01:57:31 +08:00
Chinsyo
2ac380788b
Some minor fixes ( #433 )
2020-11-20 01:02:52 +08:00
lucifer
770b994337
Refine unix domain socket ( #367 )
2020-10-29 07:30:38 +00:00
Loyalsoldier
f17063a08a
Update vprotogen ( #366 )
...
* Refine vprotogen
* Regenerate pb.go files
2020-10-29 09:27:05 +08:00
loyalsoldier
784775f689
Refine code according to golangci-lint results
2020-10-11 19:22:46 +08:00
Loyalsoldier
807922f883
Reduce timeout & fix ineffassign ( #290 )
2020-10-09 16:32:12 +08:00
Loyalsoldier
454528353d
Fix misspelling according to goreportcard result ( #282 )
2020-10-08 08:53:15 +08:00
Loyalsoldier
bb44d01096
Format proto files using clang-format according to google style ( #264 )
...
* Format proto files using clang-format according to google style
* Regenerate pb.go files
2020-10-05 08:36:40 +08:00
loyalsoldier
b181045b0c
Errorgen: support to run outside of GOPATH
2020-10-04 13:06:12 +08:00
loyalsoldier
f184d16918
Fix golangci nolint
2020-10-04 06:29:35 +08:00
Loyalsoldier
088ce4ed95
Refine proto.go due to protoc-gen-go-grpc update ( #257 )
...
* Refine: remove protoc-gen-go-grpc specific version
* pb.go: regenerate due to proto.go refresh
2020-10-04 05:43:26 +08:00
Ye Zhihao
67f409de04
Stats: Implements blocking/non-blocking messaging of Channel ( #250 )
2020-10-03 03:06:32 +08:00
Kslr
211cc67426
Merge pull request #208 from Vigilans/vigilans/stats-routing
...
API: Implements RoutingService
2020-09-26 23:23:38 +08:00
loyalsoldier
ec0c3f181d
DNS: refine local TLDs for localhost DNS
2020-09-26 22:30:44 +08:00
Vigilans
cd9ac1bac7
API: Implements RoutingService
2020-09-24 10:24:26 +08:00
Vigilans
fa37f82b89
Stats: Add ChannelConfig & Return error on subscription
2020-09-23 22:35:13 +08:00
Kslr
525d4e13a9
Merge pull request #197 from Vigilans/vigilans/stats-channel-runnable
...
Stats: Implement common.Runnable for Channel feature
2020-09-20 22:39:46 +08:00
Vigilans
4d5a4f4cb6
Routing: Implement Route interface as the routing result of Router
2020-09-18 17:30:59 +08:00
Vigilans
4fca2fe940
Implement common.Runnable for stats.Channel feature
2020-09-15 23:04:26 +08:00
Vigilans
5a497890e6
Routing Context: Fix GetUser() & Use string for Attributes Value
2020-09-13 00:34:35 +08:00
Vigilans
0406cd896b
Add UnregisterChannel & Modify unregistering logic
2020-09-09 11:33:29 +08:00
Loyalsoldier
d7c99c901a
Fix: app/stats.Manager does not implement features/stats.Manager ( #171 )
2020-09-09 11:26:23 +08:00
Vigilans
bff96a7a52
Support Channel (Observer Pattern) in Stats Manager
2020-09-04 15:07:42 +08:00
Vigilans
f9d37b724c
Extract session information during routing as routing context
2020-09-04 11:32:19 +08:00
Felix Yan
7001483b62
Don't copy assets if they are already present
...
They can now reside in system path (like /usr/share/v2ray), so it's not
possible to copy into there.
2020-09-03 16:17:44 +08:00
loyalsoldier
323ef03f02
Minor fixes
2020-09-01 08:46:55 +08:00
Vigilans
c973b5a484
Fix github.com/v2fly/v2ray-core/issues/146
2020-08-31 12:40:27 +08:00
Vigilans
47c997d75e
Fix github.com/v2fly/v2ray-core/issues/146
2020-08-31 12:21:56 +08:00
loyalsoldier
f12f76582f
Fix according to staticcheck result
...
staticcheck repo: https://github.com/dominikh/go-tools/tree/master/cmd/staticcheck
2020-08-30 23:41:15 +08:00
loyalsoldier
1fa89b32d4
Format: run go fmt ./...
2020-08-30 21:17:22 +08:00
loyalsoldier
f9175e3bc8
Fix according to go vet results
2020-08-26 19:35:33 +08:00
Loyalsoldier
ef460f68f8
Adjust Protocol Buffers ( #109 )
...
* Update protoc binary executable files to v3.13.0
* Write proto files in more standard way
* Make go generate & vprotogen compatible with protoc-gen-gofast
* Regenerate pb.go files according to new proto files
* Clean go.sum by running go mod tidy
* Implement mustEmbedUnimplementedServiceServer for gPRC services
2020-08-24 12:10:26 +00:00
loyalsoldier
00b4217aab
Fix: loging empty rules & DNS
2020-08-22 19:07:14 +08:00
Vigilans
22b4e68a2d
Log matched rules and DNS to use during priority matching
...
2. Dotless domain support in static host & modify first letter's captial in log
2020-08-16 22:18:28 +08:00
Vigilans
dfeaef75e7
Refactor DNS Server to record original rule of domain matchers
2020-08-16 22:18:12 +08:00
Vigilans
1e222425b6
Amend domain matcher with returning values of all matched subdomains
2020-08-13 15:26:30 +08:00
Vigilans
c74a33f827
Amending domain matcher with returning array of all matches
2020-08-11 13:31:04 +08:00
Kslr
111d48130d
Merge pull request #89 from Vigilans/vigilans/dns-dotless-domain
...
Dotless and local domain support in built-in DNS
2020-08-09 19:27:53 +08:00
Vigilans
40c0bcc3ab
Support source port matching in routing config
2020-08-09 16:53:45 +08:00
Vigilans
17f51f412c
Dotless domain support in built-in DNS
2020-08-09 16:51:06 +08:00
Vigilans
30e312f72b
Apply sockopt from inbound config to dokodemo tproxy's response connection
2020-08-01 02:04:06 +08:00
Darhwa
e9c891d5b5
Enable ForceAttemptHTTP2 on DoH client
2020-07-31 17:07:56 +08:00
Kslr
a8f3450b89
Merge pull request #38 from yuhan6665/master
...
Add stats counter for outbounds
2020-06-28 16:29:29 +08:00
yuhan6665
cef1836f5a
Add unit test for outbound handler
2020-06-27 20:50:39 -04:00
yuhan6665
886598542c
Add stats counter for outbounds
2020-06-27 00:31:46 -04:00
yuhan6665
f34c092a06
Rename fields in StatCouterConnection
...
The fields will be used by Outbounds as well in the next commit
2020-06-27 00:31:46 -04:00
Agioi Theodoroi
bbd3988f3d
clean up code
2020-06-27 07:51:42 +08:00
DuckSoft
780318c5c8
handle dns.PackMessage error
...
this will fix #2599
2020-06-25 16:22:56 +08:00
DuckSoft
bde766770d
dohdns.go: multiple typo fixes
2020-06-25 14:10:24 +08:00
Roger Shimizu
90af5f19ba
Apply Debian's patch to upstream
2020-06-24 12:57:03 +08:00
Shelikhoo
3e13d79af7
Fix TProxy Process Logic
2020-06-18 13:40:48 +08:00
Shelikhoo
85bd352bc1
propagate context
2020-06-18 12:37:10 +08:00
Darhwa
8e791e92bc
Further strip unique signatures of tls handshake
...
1. allow users to disable session ticket
2. set default alpn to ["h2", "http/1.1"]
2020-06-18 11:32:37 +08:00
Xiaokang Wang
e4ec9807a2
Merge pull request #12 from zhuobixin/master
...
LocalAddr() should return local address
2020-06-10 17:45:08 +08:00
Shelikhoo
00103d1f73
Fix tests
2020-06-08 16:16:50 +08:00
Shelikhoo
09b81b78c3
regenerate pb data
2020-06-08 16:16:32 +08:00
zhuobixin
dc906cf68a
LocalAddr() should return local address
2020-06-05 11:17:02 +08:00
Kslr
cfbb875546
Revert "Reduce http proxy client overhead by 1RTT"
2020-03-19 19:11:17 +08:00
vcptr
5d13ec9196
code style optmize in dispatch func
2020-03-12 00:42:29 +08:00
vcptr
04a0c04934
doh route strategy optimized
2020-03-12 00:42:29 +08:00
Anonymous-Someneese
82dee01833
Fix reverse proxy with the HTTP optimization
...
And any other protocol that require the connection initializer to send first, E.g. freedom with TFO.
2020-03-12 00:42:29 +08:00
mzz2017
7f4f8091f9
feat/fix: dns query subscriptions group by A and AAAA. fix problem that empty result would poll dns server in DoH mode
2020-03-12 00:42:29 +08:00