Commit 6be72fe
Merge v2.4.0 codes (#16)
* Merge offical easytier to dev (#8)
* Update default_port and sni logic to improve reverse proxy reachability (EasyTier#947)
* remove LICENSE (EasyTier#950)
* Create LICENSE (EasyTier#951)
* kcp connect retry (EasyTier#952)
* fix(vpn-portal): wireguard peer table should be kept if the client roamed to another endpoint address (EasyTier#954)
* Web dual stack (EasyTier#953)
* reimplement easytier-web dual stack
* add protocol check for dual stack listener current only support tcp and udp
* Added RPC portal whitelist function, allowing only local access by default to enhance security (EasyTier#929)
* feat: allow using `--proxy-forward-by-system` together with `--enable-exit-node` (EasyTier#957)
* ipv4-peerid table should use peer with least hop (EasyTier#958)
sometimes route table may not be updated in time, so some dead nodes are still showing in the peer list.
when generating ipv4-peer table, we should avoid these dead devices overrides the entry of healthy nodes.
* add check for rpc packet fix EasyTier#963 (EasyTier#969)
* fix ospf route (EasyTier#970)
- **fix deadlock in ospf route introducd by EasyTier#958 **
- **use random peer id for foreign network entry, because ospf route algo need peer id change after peer info version reset. this may interfere route propagation and cause node residual**
- **allow multiple nodes broadcast same network ranges for subnet proxy**
- **bump version to v2.3.2**
* easytier-core支持多配置文件 (EasyTier#964)
* 将web和gui允许多网络实例逻辑抽离到NetworkInstanceManager中
* easytier-core支持多配置文件
* FFI复用instance manager
* 添加instance manager 单元测试
* internal stun server should use xor mapped addr (EasyTier#975)
* remove macos default route on utun device (EasyTier#976)
* support mapping subnet proxy (EasyTier#978)
- **support mapping subproxy network cidr**
- **add command line option for proxy network mapping**
- **fix Instance leak in tests.
* Fixed the issue where the GUI would panic after using InstanceManager (EasyTier#982)
Co-authored-by: Sijie.Sun <sunsijie@buaa.edu.cn>
* use bulk compress instead of streaming to reduce mem usage (EasyTier#985)
* Update core.yml,use upx4.2.4 (EasyTier#991)
* support quic proxy (EasyTier#993)
QUIC proxy works like kcp proxy, it can proxy TCP streams and transfer data with QUIC.
QUIC has better congestion algorithm (BBR) for network with both high loss rate and high bandwidth.
QUIC proxy can be enabled by passing `--enable-quic-proxy` to easytier in the client side. The proxy status can be viewed by `easytier-cli proxy`.
* Add conversion method from TomlConfigLoader to NetworkConfig to enhance configuration experience (EasyTier#990)
* add method to create NetworkConfig from TomlConfigLoader
* allow web export/import toml config file and gui edit toml config
* Extract the configuration file dialog into a separate component and allow direct editing of the configuration file on the web
* add keepalive option for quic proxy (EasyTier#1008)
avoid connection loss when idle
* allow set machine uid with command line (EasyTier#1009)
* installing by homebrew should use easytier-gui (EasyTier#1004)
* Add is_hole_punched flag to PeerConn (EasyTier#1001)
* quic uses the bbr congestion control algorithm (EasyTier#1010)
* add bps limiter (EasyTier#1015)
* add token bucket
* remove quinn-proto
* bps limit should throttle kcp packet
* add api_meta.js to frontend public
* Implement custom fmt::Debug for some prost_build generated structs
Currently implemented for:
1. common.Ipv4Addr
2. common.Ipv6Addr
3. common.UUID
* simplify Textarea class in ConfigGenerator.vue
* add Windows Service install script
* fix uninstall.cmd (EasyTier#1036)
* blacklist the peers which disable p2p in hole-punching client (EasyTier#1038)
* limit max conn count in foreign network manager (EasyTier#1041)
* fix rpc_portal_whitelist from config file not working (EasyTier#1042)
* web improve (EasyTier#1047)
* add geo info for in web device list (EasyTier#1052)
* fix cargo install failure (EasyTier#1054)
* fix mem leak of token bucket (EasyTier#1055)
* allow set multithread count (EasyTier#1056)
* update gui placeholder text (EasyTier#1062)
* support ohos (EasyTier#974)
* support ohos
---------
Co-authored-by: FrankHan <2777926911@qq.com>
* Add support for IPv6 within VPN (EasyTier#1061)
* add flake.nix with nix based dev shell
* add support for IPv6
* update thunk
---------
Co-authored-by: sijie.sun <sijie.sun@smartx.com>
* use winapi to config ip and route (remove dep on netsh) (EasyTier#1079)
On some windows machines can not execut netsh.
Also this avoid black cmd window when using gui.
* exclude ohos from workspace (EasyTier#1080)
* contributing.md (EasyTier#1084)
* handle close peer conn correctly (EasyTier#1082)
* smoltcp use larger tx/rx buf size (EasyTier#1085)
* smoltcp use larger tx/rx buf size
* fix direct conn check
* fix incorrect config check (EasyTier#1086)
* chore(ci): update GitHub Actions (EasyTier#1088)
* chore(ci): update GitHub Actions
* update gradle-wrapper and revert UPX
* exclude cargo from dependabot and remove empty .gitmodules
* fix: cannot start gui on linux (EasyTier#1090)
* update readme (EasyTier#1102)
* socks5 and port forwarding (EasyTier#1118)
* add options to generate completions (EasyTier#1103)
* add options to generate completions
use clap-complete crate to generate completions scripts: easytier-core --generate fish > ~/.config/fish/completions/easytier-core.fish
---------
Co-authored-by: Sijie.Sun <sunsijie@buaa.edu.cn>
* Allows to modify Easytier's mapped listener at runtime via RPC (EasyTier#1107)
* Add proto definition
* Implement and register the corresponding rpc service
* Parse command line parameters and call remote rpc service
---------
Co-authored-by: Sijie.Sun <sunsijie@buaa.edu.cn>
* close peer conn if remote addr is from virtual network (EasyTier#1123)
* update issue template (EasyTier#1126)
* add disable ipv6 option to gui/web (EasyTier#1127)
* fix compile issue
---------
Co-authored-by: Zisu Zhang <thezzisu@gmail.com>
Co-authored-by: Sijie.Sun <sunsijie@buaa.edu.cn>
Co-authored-by: Kiva <imkiva@islovely.icu>
Co-authored-by: BlackLuny <602814112@qq.com>
Co-authored-by: Mg Pig <w2xzzpig@hotmail.com>
Co-authored-by: tianxiayu007 <1083010692@qq.com>
Co-authored-by: liusen373 <52489720+liusen373@users.noreply.github.com>
Co-authored-by: chenxudong2020 <872603935@qq.com>
Co-authored-by: sijie.sun <sijie.sun@smartx.com>
Co-authored-by: dawn-lc <30336566+dawn-lc@users.noreply.github.com>
Co-authored-by: 韩嘉乐 <2382008060@qq.com>
Co-authored-by: FrankHan <2777926911@qq.com>
Co-authored-by: DavHau <hsngrmpf+github@gmail.com>
Co-authored-by: Rene Leonhardt <65483435+reneleonhardt@users.noreply.github.com>
Co-authored-by: lazebird <lazebird@163.com>
Co-authored-by: Jiangqiu Shen <ivy22233qiu@live.com>
* remove mimalloc
* clear CONNECTION_MAP resource
* Merge new Offical Easytier codes (#10)
* Update default_port and sni logic to improve reverse proxy reachability (EasyTier#947)
* remove LICENSE (EasyTier#950)
* Create LICENSE (EasyTier#951)
* kcp connect retry (EasyTier#952)
* fix(vpn-portal): wireguard peer table should be kept if the client roamed to another endpoint address (EasyTier#954)
* Web dual stack (EasyTier#953)
* reimplement easytier-web dual stack
* add protocol check for dual stack listener current only support tcp and udp
* Added RPC portal whitelist function, allowing only local access by default to enhance security (EasyTier#929)
* feat: allow using `--proxy-forward-by-system` together with `--enable-exit-node` (EasyTier#957)
* ipv4-peerid table should use peer with least hop (EasyTier#958)
sometimes route table may not be updated in time, so some dead nodes are still showing in the peer list.
when generating ipv4-peer table, we should avoid these dead devices overrides the entry of healthy nodes.
* add check for rpc packet fix EasyTier#963 (EasyTier#969)
* fix ospf route (EasyTier#970)
- **fix deadlock in ospf route introducd by EasyTier#958 **
- **use random peer id for foreign network entry, because ospf route algo need peer id change after peer info version reset. this may interfere route propagation and cause node residual**
- **allow multiple nodes broadcast same network ranges for subnet proxy**
- **bump version to v2.3.2**
* easytier-core支持多配置文件 (EasyTier#964)
* 将web和gui允许多网络实例逻辑抽离到NetworkInstanceManager中
* easytier-core支持多配置文件
* FFI复用instance manager
* 添加instance manager 单元测试
* internal stun server should use xor mapped addr (EasyTier#975)
* remove macos default route on utun device (EasyTier#976)
* support mapping subnet proxy (EasyTier#978)
- **support mapping subproxy network cidr**
- **add command line option for proxy network mapping**
- **fix Instance leak in tests.
* Fixed the issue where the GUI would panic after using InstanceManager (EasyTier#982)
Co-authored-by: Sijie.Sun <sunsijie@buaa.edu.cn>
* use bulk compress instead of streaming to reduce mem usage (EasyTier#985)
* Update core.yml,use upx4.2.4 (EasyTier#991)
* support quic proxy (EasyTier#993)
QUIC proxy works like kcp proxy, it can proxy TCP streams and transfer data with QUIC.
QUIC has better congestion algorithm (BBR) for network with both high loss rate and high bandwidth.
QUIC proxy can be enabled by passing `--enable-quic-proxy` to easytier in the client side. The proxy status can be viewed by `easytier-cli proxy`.
* Add conversion method from TomlConfigLoader to NetworkConfig to enhance configuration experience (EasyTier#990)
* add method to create NetworkConfig from TomlConfigLoader
* allow web export/import toml config file and gui edit toml config
* Extract the configuration file dialog into a separate component and allow direct editing of the configuration file on the web
* add keepalive option for quic proxy (EasyTier#1008)
avoid connection loss when idle
* allow set machine uid with command line (EasyTier#1009)
* installing by homebrew should use easytier-gui (EasyTier#1004)
* Add is_hole_punched flag to PeerConn (EasyTier#1001)
* quic uses the bbr congestion control algorithm (EasyTier#1010)
* add bps limiter (EasyTier#1015)
* add token bucket
* remove quinn-proto
* bps limit should throttle kcp packet
* add api_meta.js to frontend public
* Implement custom fmt::Debug for some prost_build generated structs
Currently implemented for:
1. common.Ipv4Addr
2. common.Ipv6Addr
3. common.UUID
* simplify Textarea class in ConfigGenerator.vue
* add Windows Service install script
* fix uninstall.cmd (EasyTier#1036)
* blacklist the peers which disable p2p in hole-punching client (EasyTier#1038)
* limit max conn count in foreign network manager (EasyTier#1041)
* fix rpc_portal_whitelist from config file not working (EasyTier#1042)
* web improve (EasyTier#1047)
* add geo info for in web device list (EasyTier#1052)
* fix cargo install failure (EasyTier#1054)
* fix mem leak of token bucket (EasyTier#1055)
* allow set multithread count (EasyTier#1056)
* update gui placeholder text (EasyTier#1062)
* support ohos (EasyTier#974)
* support ohos
---------
Co-authored-by: FrankHan <2777926911@qq.com>
* Add support for IPv6 within VPN (EasyTier#1061)
* add flake.nix with nix based dev shell
* add support for IPv6
* update thunk
---------
Co-authored-by: sijie.sun <sijie.sun@smartx.com>
* use winapi to config ip and route (remove dep on netsh) (EasyTier#1079)
On some windows machines can not execut netsh.
Also this avoid black cmd window when using gui.
* exclude ohos from workspace (EasyTier#1080)
* contributing.md (EasyTier#1084)
* handle close peer conn correctly (EasyTier#1082)
* smoltcp use larger tx/rx buf size (EasyTier#1085)
* smoltcp use larger tx/rx buf size
* fix direct conn check
* fix incorrect config check (EasyTier#1086)
* chore(ci): update GitHub Actions (EasyTier#1088)
* chore(ci): update GitHub Actions
* update gradle-wrapper and revert UPX
* exclude cargo from dependabot and remove empty .gitmodules
* fix: cannot start gui on linux (EasyTier#1090)
* update readme (EasyTier#1102)
* socks5 and port forwarding (EasyTier#1118)
* add options to generate completions (EasyTier#1103)
* add options to generate completions
use clap-complete crate to generate completions scripts: easytier-core --generate fish > ~/.config/fish/completions/easytier-core.fish
---------
Co-authored-by: Sijie.Sun <sunsijie@buaa.edu.cn>
* Allows to modify Easytier's mapped listener at runtime via RPC (EasyTier#1107)
* Add proto definition
* Implement and register the corresponding rpc service
* Parse command line parameters and call remote rpc service
---------
Co-authored-by: Sijie.Sun <sunsijie@buaa.edu.cn>
* close peer conn if remote addr is from virtual network (EasyTier#1123)
* update issue template (EasyTier#1126)
* add disable ipv6 option to gui/web (EasyTier#1127)
* fix latency first route of public server (EasyTier#1129)
* add windows firewall for tun interface (EasyTier#1130)
allow all icmp/tcp/udp on tun interface.
* try create tun device if not exist (EasyTier#1131)
---------
Co-authored-by: Zisu Zhang <thezzisu@gmail.com>
Co-authored-by: Sijie.Sun <sunsijie@buaa.edu.cn>
Co-authored-by: Kiva <imkiva@islovely.icu>
Co-authored-by: BlackLuny <602814112@qq.com>
Co-authored-by: Mg Pig <w2xzzpig@hotmail.com>
Co-authored-by: tianxiayu007 <1083010692@qq.com>
Co-authored-by: liusen373 <52489720+liusen373@users.noreply.github.com>
Co-authored-by: chenxudong2020 <872603935@qq.com>
Co-authored-by: sijie.sun <sijie.sun@smartx.com>
Co-authored-by: dawn-lc <30336566+dawn-lc@users.noreply.github.com>
Co-authored-by: 韩嘉乐 <2382008060@qq.com>
Co-authored-by: FrankHan <2777926911@qq.com>
Co-authored-by: DavHau <hsngrmpf+github@gmail.com>
Co-authored-by: Rene Leonhardt <65483435+reneleonhardt@users.noreply.github.com>
Co-authored-by: lazebird <lazebird@163.com>
Co-authored-by: Jiangqiu Shen <ivy22233qiu@live.com>
* Merge code from offical repo (#12)
* Update default_port and sni logic to improve reverse proxy reachability (EasyTier#947)
* remove LICENSE (EasyTier#950)
* Create LICENSE (EasyTier#951)
* kcp connect retry (EasyTier#952)
* fix(vpn-portal): wireguard peer table should be kept if the client roamed to another endpoint address (EasyTier#954)
* Web dual stack (EasyTier#953)
* reimplement easytier-web dual stack
* add protocol check for dual stack listener current only support tcp and udp
* Added RPC portal whitelist function, allowing only local access by default to enhance security (EasyTier#929)
* feat: allow using `--proxy-forward-by-system` together with `--enable-exit-node` (EasyTier#957)
* ipv4-peerid table should use peer with least hop (EasyTier#958)
sometimes route table may not be updated in time, so some dead nodes are still showing in the peer list.
when generating ipv4-peer table, we should avoid these dead devices overrides the entry of healthy nodes.
* add check for rpc packet fix EasyTier#963 (EasyTier#969)
* fix ospf route (EasyTier#970)
- **fix deadlock in ospf route introducd by EasyTier#958 **
- **use random peer id for foreign network entry, because ospf route algo need peer id change after peer info version reset. this may interfere route propagation and cause node residual**
- **allow multiple nodes broadcast same network ranges for subnet proxy**
- **bump version to v2.3.2**
* easytier-core支持多配置文件 (EasyTier#964)
* 将web和gui允许多网络实例逻辑抽离到NetworkInstanceManager中
* easytier-core支持多配置文件
* FFI复用instance manager
* 添加instance manager 单元测试
* internal stun server should use xor mapped addr (EasyTier#975)
* remove macos default route on utun device (EasyTier#976)
* support mapping subnet proxy (EasyTier#978)
- **support mapping subproxy network cidr**
- **add command line option for proxy network mapping**
- **fix Instance leak in tests.
* Fixed the issue where the GUI would panic after using InstanceManager (EasyTier#982)
Co-authored-by: Sijie.Sun <sunsijie@buaa.edu.cn>
* use bulk compress instead of streaming to reduce mem usage (EasyTier#985)
* Update core.yml,use upx4.2.4 (EasyTier#991)
* support quic proxy (EasyTier#993)
QUIC proxy works like kcp proxy, it can proxy TCP streams and transfer data with QUIC.
QUIC has better congestion algorithm (BBR) for network with both high loss rate and high bandwidth.
QUIC proxy can be enabled by passing `--enable-quic-proxy` to easytier in the client side. The proxy status can be viewed by `easytier-cli proxy`.
* Add conversion method from TomlConfigLoader to NetworkConfig to enhance configuration experience (EasyTier#990)
* add method to create NetworkConfig from TomlConfigLoader
* allow web export/import toml config file and gui edit toml config
* Extract the configuration file dialog into a separate component and allow direct editing of the configuration file on the web
* add keepalive option for quic proxy (EasyTier#1008)
avoid connection loss when idle
* allow set machine uid with command line (EasyTier#1009)
* installing by homebrew should use easytier-gui (EasyTier#1004)
* Add is_hole_punched flag to PeerConn (EasyTier#1001)
* quic uses the bbr congestion control algorithm (EasyTier#1010)
* add bps limiter (EasyTier#1015)
* add token bucket
* remove quinn-proto
* bps limit should throttle kcp packet
* add api_meta.js to frontend public
* Implement custom fmt::Debug for some prost_build generated structs
Currently implemented for:
1. common.Ipv4Addr
2. common.Ipv6Addr
3. common.UUID
* simplify Textarea class in ConfigGenerator.vue
* add Windows Service install script
* fix uninstall.cmd (EasyTier#1036)
* blacklist the peers which disable p2p in hole-punching client (EasyTier#1038)
* limit max conn count in foreign network manager (EasyTier#1041)
* fix rpc_portal_whitelist from config file not working (EasyTier#1042)
* web improve (EasyTier#1047)
* add geo info for in web device list (EasyTier#1052)
* fix cargo install failure (EasyTier#1054)
* fix mem leak of token bucket (EasyTier#1055)
* allow set multithread count (EasyTier#1056)
* update gui placeholder text (EasyTier#1062)
* support ohos (EasyTier#974)
* support ohos
---------
Co-authored-by: FrankHan <2777926911@qq.com>
* Add support for IPv6 within VPN (EasyTier#1061)
* add flake.nix with nix based dev shell
* add support for IPv6
* update thunk
---------
Co-authored-by: sijie.sun <sijie.sun@smartx.com>
* use winapi to config ip and route (remove dep on netsh) (EasyTier#1079)
On some windows machines can not execut netsh.
Also this avoid black cmd window when using gui.
* exclude ohos from workspace (EasyTier#1080)
* contributing.md (EasyTier#1084)
* handle close peer conn correctly (EasyTier#1082)
* smoltcp use larger tx/rx buf size (EasyTier#1085)
* smoltcp use larger tx/rx buf size
* fix direct conn check
* fix incorrect config check (EasyTier#1086)
* chore(ci): update GitHub Actions (EasyTier#1088)
* chore(ci): update GitHub Actions
* update gradle-wrapper and revert UPX
* exclude cargo from dependabot and remove empty .gitmodules
* fix: cannot start gui on linux (EasyTier#1090)
* update readme (EasyTier#1102)
* socks5 and port forwarding (EasyTier#1118)
* add options to generate completions (EasyTier#1103)
* add options to generate completions
use clap-complete crate to generate completions scripts: easytier-core --generate fish > ~/.config/fish/completions/easytier-core.fish
---------
Co-authored-by: Sijie.Sun <sunsijie@buaa.edu.cn>
* Allows to modify Easytier's mapped listener at runtime via RPC (EasyTier#1107)
* Add proto definition
* Implement and register the corresponding rpc service
* Parse command line parameters and call remote rpc service
---------
Co-authored-by: Sijie.Sun <sunsijie@buaa.edu.cn>
* close peer conn if remote addr is from virtual network (EasyTier#1123)
* update issue template (EasyTier#1126)
* add disable ipv6 option to gui/web (EasyTier#1127)
* fix latency first route of public server (EasyTier#1129)
* add windows firewall for tun interface (EasyTier#1130)
allow all icmp/tcp/udp on tun interface.
* try create tun device if not exist (EasyTier#1131)
* reduce memory usage (EasyTier#1133)
Large memory usage comes from:
Mimalloc hold large thread cache, causing abort 13M+ usage.
QUIC endpoint occupy 3M when GRO is enabled.
Smoltcp 64 tcp listener use 2MB.
* fix bugs (EasyTier#1138)
1. avoid dns query hangs the thread
2. avoid deadloop when stun query failed because of no ipv4 addr.
3. make quic input error non-fatal.
4. remove ring tunnel from connection map to avoid mem leak.
5. limit listener retry count.
---------
Co-authored-by: Zisu Zhang <thezzisu@gmail.com>
Co-authored-by: Sijie.Sun <sunsijie@buaa.edu.cn>
Co-authored-by: Kiva <imkiva@islovely.icu>
Co-authored-by: BlackLuny <602814112@qq.com>
Co-authored-by: Mg Pig <w2xzzpig@hotmail.com>
Co-authored-by: tianxiayu007 <1083010692@qq.com>
Co-authored-by: liusen373 <52489720+liusen373@users.noreply.github.com>
Co-authored-by: chenxudong2020 <872603935@qq.com>
Co-authored-by: sijie.sun <sijie.sun@smartx.com>
Co-authored-by: dawn-lc <30336566+dawn-lc@users.noreply.github.com>
Co-authored-by: 韩嘉乐 <2382008060@qq.com>
Co-authored-by: FrankHan <2777926911@qq.com>
Co-authored-by: DavHau <hsngrmpf+github@gmail.com>
Co-authored-by: Rene Leonhardt <65483435+reneleonhardt@users.noreply.github.com>
Co-authored-by: lazebird <lazebird@163.com>
Co-authored-by: Jiangqiu Shen <ivy22233qiu@live.com>
* Merge v2.4.0 codes (#15)
* Update default_port and sni logic to improve reverse proxy reachability (EasyTier#947)
* remove LICENSE (EasyTier#950)
* Create LICENSE (EasyTier#951)
* kcp connect retry (EasyTier#952)
* fix(vpn-portal): wireguard peer table should be kept if the client roamed to another endpoint address (EasyTier#954)
* Web dual stack (EasyTier#953)
* reimplement easytier-web dual stack
* add protocol check for dual stack listener current only support tcp and udp
* Added RPC portal whitelist function, allowing only local access by default to enhance security (EasyTier#929)
* feat: allow using `--proxy-forward-by-system` together with `--enable-exit-node` (EasyTier#957)
* ipv4-peerid table should use peer with least hop (EasyTier#958)
sometimes route table may not be updated in time, so some dead nodes are still showing in the peer list.
when generating ipv4-peer table, we should avoid these dead devices overrides the entry of healthy nodes.
* add check for rpc packet fix EasyTier#963 (EasyTier#969)
* fix ospf route (EasyTier#970)
- **fix deadlock in ospf route introducd by EasyTier#958 **
- **use random peer id for foreign network entry, because ospf route algo need peer id change after peer info version reset. this may interfere route propagation and cause node residual**
- **allow multiple nodes broadcast same network ranges for subnet proxy**
- **bump version to v2.3.2**
* easytier-core支持多配置文件 (EasyTier#964)
* 将web和gui允许多网络实例逻辑抽离到NetworkInstanceManager中
* easytier-core支持多配置文件
* FFI复用instance manager
* 添加instance manager 单元测试
* internal stun server should use xor mapped addr (EasyTier#975)
* remove macos default route on utun device (EasyTier#976)
* support mapping subnet proxy (EasyTier#978)
- **support mapping subproxy network cidr**
- **add command line option for proxy network mapping**
- **fix Instance leak in tests.
* Fixed the issue where the GUI would panic after using InstanceManager (EasyTier#982)
Co-authored-by: Sijie.Sun <sunsijie@buaa.edu.cn>
* use bulk compress instead of streaming to reduce mem usage (EasyTier#985)
* Update core.yml,use upx4.2.4 (EasyTier#991)
* support quic proxy (EasyTier#993)
QUIC proxy works like kcp proxy, it can proxy TCP streams and transfer data with QUIC.
QUIC has better congestion algorithm (BBR) for network with both high loss rate and high bandwidth.
QUIC proxy can be enabled by passing `--enable-quic-proxy` to easytier in the client side. The proxy status can be viewed by `easytier-cli proxy`.
* Add conversion method from TomlConfigLoader to NetworkConfig to enhance configuration experience (EasyTier#990)
* add method to create NetworkConfig from TomlConfigLoader
* allow web export/import toml config file and gui edit toml config
* Extract the configuration file dialog into a separate component and allow direct editing of the configuration file on the web
* add keepalive option for quic proxy (EasyTier#1008)
avoid connection loss when idle
* allow set machine uid with command line (EasyTier#1009)
* installing by homebrew should use easytier-gui (EasyTier#1004)
* Add is_hole_punched flag to PeerConn (EasyTier#1001)
* quic uses the bbr congestion control algorithm (EasyTier#1010)
* add bps limiter (EasyTier#1015)
* add token bucket
* remove quinn-proto
* bps limit should throttle kcp packet
* add api_meta.js to frontend public
* Implement custom fmt::Debug for some prost_build generated structs
Currently implemented for:
1. common.Ipv4Addr
2. common.Ipv6Addr
3. common.UUID
* simplify Textarea class in ConfigGenerator.vue
* add Windows Service install script
* fix uninstall.cmd (EasyTier#1036)
* blacklist the peers which disable p2p in hole-punching client (EasyTier#1038)
* limit max conn count in foreign network manager (EasyTier#1041)
* fix rpc_portal_whitelist from config file not working (EasyTier#1042)
* web improve (EasyTier#1047)
* add geo info for in web device list (EasyTier#1052)
* fix cargo install failure (EasyTier#1054)
* fix mem leak of token bucket (EasyTier#1055)
* allow set multithread count (EasyTier#1056)
* update gui placeholder text (EasyTier#1062)
* support ohos (EasyTier#974)
* support ohos
---------
Co-authored-by: FrankHan <2777926911@qq.com>
* Add support for IPv6 within VPN (EasyTier#1061)
* add flake.nix with nix based dev shell
* add support for IPv6
* update thunk
---------
Co-authored-by: sijie.sun <sijie.sun@smartx.com>
* use winapi to config ip and route (remove dep on netsh) (EasyTier#1079)
On some windows machines can not execut netsh.
Also this avoid black cmd window when using gui.
* exclude ohos from workspace (EasyTier#1080)
* contributing.md (EasyTier#1084)
* handle close peer conn correctly (EasyTier#1082)
* smoltcp use larger tx/rx buf size (EasyTier#1085)
* smoltcp use larger tx/rx buf size
* fix direct conn check
* fix incorrect config check (EasyTier#1086)
* chore(ci): update GitHub Actions (EasyTier#1088)
* chore(ci): update GitHub Actions
* update gradle-wrapper and revert UPX
* exclude cargo from dependabot and remove empty .gitmodules
* fix: cannot start gui on linux (EasyTier#1090)
* update readme (EasyTier#1102)
* socks5 and port forwarding (EasyTier#1118)
* add options to generate completions (EasyTier#1103)
* add options to generate completions
use clap-complete crate to generate completions scripts: easytier-core --generate fish > ~/.config/fish/completions/easytier-core.fish
---------
Co-authored-by: Sijie.Sun <sunsijie@buaa.edu.cn>
* Allows to modify Easytier's mapped listener at runtime via RPC (EasyTier#1107)
* Add proto definition
* Implement and register the corresponding rpc service
* Parse command line parameters and call remote rpc service
---------
Co-authored-by: Sijie.Sun <sunsijie@buaa.edu.cn>
* close peer conn if remote addr is from virtual network (EasyTier#1123)
* update issue template (EasyTier#1126)
* add disable ipv6 option to gui/web (EasyTier#1127)
* fix latency first route of public server (EasyTier#1129)
* add windows firewall for tun interface (EasyTier#1130)
allow all icmp/tcp/udp on tun interface.
* try create tun device if not exist (EasyTier#1131)
* reduce memory usage (EasyTier#1133)
Large memory usage comes from:
Mimalloc hold large thread cache, causing abort 13M+ usage.
QUIC endpoint occupy 3M when GRO is enabled.
Smoltcp 64 tcp listener use 2MB.
* fix bugs (EasyTier#1138)
1. avoid dns query hangs the thread
2. avoid deadloop when stun query failed because of no ipv4 addr.
3. make quic input error non-fatal.
4. remove ring tunnel from connection map to avoid mem leak.
5. limit listener retry count.
* Implement ACL (EasyTier#1140)
1. get acl stats
```
./easytier-cli acl stats
AclStats:
Global:
CacheHits: 4
CacheMaxSize: 10000
CacheSize: 5
DefaultAllows: 3
InboundPacketsAllowed: 2
InboundPacketsTotal: 2
OutboundPacketsAllowed: 7
OutboundPacketsTotal: 7
PacketsAllowed: 9
PacketsTotal: 9
RuleMatches: 2
ConnTrack:
[src: 10.14.11.1:57444, dst: 10.14.11.2:1000, proto: Tcp, state: New, pkts: 1, bytes: 60, created: 2025-07-24 10:13:39 +08:00, last_seen: 2025-07-24 10:13:39 +08:00]
Rules:
[name: 'tcp_whitelist', prio: 1000, action: Allow, enabled: true, proto: Tcp, ports: ["1000"], src_ports: [], src_ips: [], dst_ips: [], stateful: true, rate: 0, burst: 0] [pkts: 2, bytes: 120]
```
2. use tcp/udp whitelist to block unexpected traffic.
`sudo ./easytier-core -d --tcp-whitelist 1000`
3. use complete acl ability with config file:
```
[[acl.acl_v1.chains]]
name = "inbound_whitelist"
chain_type = 1
description = "Auto-generated inbound whitelist from CLI"
enabled = true
default_action = 2
[[acl.acl_v1.chains.rules]]
name = "tcp_whitelist"
description = "Auto-generated TCP whitelist rule"
priority = 1000
enabled = true
protocol = 1
ports = ["1000"]
source_ips = []
destination_ips = []
source_ports = []
action = 1
rate_limit = 0
burst_limit = 0
stateful = true
```
* releases/v2.4.0 (EasyTier#1145)
* bump version to v2.4.0
* update tauri.
* allow try direct connect to public server
* support loongarch (EasyTier#1146)
* need encrypt rpc if dst is in peer map (EasyTier#1151)
---------
Co-authored-by: Zisu Zhang <thezzisu@gmail.com>
Co-authored-by: Sijie.Sun <sunsijie@buaa.edu.cn>
Co-authored-by: Kiva <imkiva@islovely.icu>
Co-authored-by: BlackLuny <602814112@qq.com>
Co-authored-by: Mg Pig <w2xzzpig@hotmail.com>
Co-authored-by: tianxiayu007 <1083010692@qq.com>
Co-authored-by: liusen373 <52489720+liusen373@users.noreply.github.com>
Co-authored-by: chenxudong2020 <872603935@qq.com>
Co-authored-by: sijie.sun <sijie.sun@smartx.com>
Co-authored-by: dawn-lc <30336566+dawn-lc@users.noreply.github.com>
Co-authored-by: 韩嘉乐 <2382008060@qq.com>
Co-authored-by: FrankHan <2777926911@qq.com>
Co-authored-by: DavHau <hsngrmpf+github@gmail.com>
Co-authored-by: Rene Leonhardt <65483435+reneleonhardt@users.noreply.github.com>
Co-authored-by: lazebird <lazebird@163.com>
Co-authored-by: Jiangqiu Shen <ivy22233qiu@live.com>
* update pipeline files
* Use old workflow
---------
Co-authored-by: Zisu Zhang <thezzisu@gmail.com>
Co-authored-by: Sijie.Sun <sunsijie@buaa.edu.cn>
Co-authored-by: Kiva <imkiva@islovely.icu>
Co-authored-by: BlackLuny <602814112@qq.com>
Co-authored-by: Mg Pig <w2xzzpig@hotmail.com>
Co-authored-by: tianxiayu007 <1083010692@qq.com>
Co-authored-by: liusen373 <52489720+liusen373@users.noreply.github.com>
Co-authored-by: chenxudong2020 <872603935@qq.com>
Co-authored-by: sijie.sun <sijie.sun@smartx.com>
Co-authored-by: dawn-lc <30336566+dawn-lc@users.noreply.github.com>
Co-authored-by: 韩嘉乐 <2382008060@qq.com>
Co-authored-by: FrankHan <2777926911@qq.com>
Co-authored-by: DavHau <hsngrmpf+github@gmail.com>
Co-authored-by: Rene Leonhardt <65483435+reneleonhardt@users.noreply.github.com>
Co-authored-by: lazebird <lazebird@163.com>
Co-authored-by: Jiangqiu Shen <ivy22233qiu@live.com>1 parent ace8f88 commit 6be72fe
127 files changed
Lines changed: 15081 additions & 3269 deletions
File tree
- .cargo
- .github
- ISSUE_TEMPLATE
- origin_wfs
- workflows
- assets
- easytier-contrib
- easytier-ffi/src
- easytier-magisk
- easytier-ohrs
- src
- easytier-gui
- locales
- src-tauri
- gen/android
- gradle/wrapper
- src
- easytier-rpc-build
- easytier-web
- frontend-lib/src
- components
- locales
- types
- easytier
- locales
- src
- arch
- common
- ifcfg
- win
- connector
- udp_hole_punch
- gateway
- tokio_smoltcp
- instance
- dns_server
- peer_center
- peers
- proto
- rpc_impl
- tests
- tunnel
- vpn_portal
- tauri-plugin-vpnservice/permissions
- autogenerated
- schemas
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
8 | 18 | | |
9 | 19 | | |
10 | 20 | | |
| |||
58 | 68 | | |
59 | 69 | | |
60 | 70 | | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
61 | 75 | | |
62 | 76 | | |
63 | 77 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
27 | | - | |
28 | | - | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
29 | 93 | | |
30 | 94 | | |
31 | 95 | | |
32 | 96 | | |
33 | 97 | | |
34 | 98 | | |
35 | | - | |
36 | | - | |
| 99 | + | |
| 100 | + | |
37 | 101 | | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
42 | 111 | | |
43 | 112 | | |
44 | 113 | | |
45 | 114 | | |
46 | | - | |
| 115 | + | |
47 | 116 | | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
48 | 120 | | |
49 | 121 | | |
50 | | - | |
| 122 | + | |
51 | 123 | | |
52 | | - | |
53 | | - | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
10 | 57 | | |
11 | | - | |
| 58 | + | |
12 | 59 | | |
13 | | - | |
14 | | - | |
15 | | - | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
16 | 72 | | |
17 | 73 | | |
18 | 74 | | |
19 | 75 | | |
20 | | - | |
| 76 | + | |
21 | 77 | | |
22 | | - | |
23 | | - | |
24 | | - | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
25 | 92 | | |
26 | 93 | | |
27 | 94 | | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
28 | 131 | | |
29 | 132 | | |
30 | 133 | | |
31 | | - | |
32 | | - | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
33 | 162 | | |
34 | 163 | | |
35 | | - | |
| 164 | + | |
36 | 165 | | |
37 | | - | |
38 | | - | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| 2 | + | |
2 | 3 | | |
3 | 4 | | |
4 | 5 | | |
5 | 6 | | |
6 | | - | |
7 | | - | |
8 | | - | |
| 7 | + | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
| 19 | + | |
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
| 26 | + | |
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| |||
0 commit comments