83d1ecc4da
bump version to v2.3.0 ( #859 )
...
also some improvements:
1. add magic dns option in gui.
2. allow icmp proxy fail on android
3. when no_tun is enabled, android do not start vpn service
Co-authored-by: Your Name <you@example.com >
2025-05-18 16:45:39 +08:00
Sijie.Sun and GitHub
7c6daf7c56
Magic DNS and easytier-web improvements ( #856 )
...
1. dns add macos system config
2. allow easytier-web serve dashboard and api in same port
2025-05-18 16:34:35 +08:00
Sijie.Sun and GitHub
28fe6257be
magic dns ( #813 )
...
This patch implements:
1. A dns server that handles .et.net. zone in local and forward all other queries to system dns server.
2. A dns server instance which is a singleton in one machine, using one specific tcp port to be exclusive with each other. this instance is responsible for config system dns and run the dns server to handle dns queries.
3. A dns client instance that all easytier instance will run one, this instance will try to connect to dns server instance, and update the dns record in the dns server instance.
this pr only implements the system config for windows. linux & mac will do later.
2025-05-16 09:24:24 +08:00
Sijie.Sun and GitHub
99430983bc
Update README.md ( #846 )
...
Add deepwiki badge
2025-05-12 21:39:55 +08:00
Sijie.Sun and GitHub
d758a4958f
fix panic cause segment fault ( #843 )
...
1. backtrace may fail on some platform such as armv7, should do it last in panic hook.
2. stun should not panic when bind v6 failed.
2025-05-11 21:34:24 +08:00
Sijie.Sun and GitHub
2675cf2d00
bump hickory-dns version to v0.25.2 ( #839 )
2025-05-11 08:46:31 +08:00
Sijie.Sun and GitHub
72be46e8fa
allow tcp port forward use kcp ( #838 )
2025-05-11 00:48:34 +08:00
Sijie.Sun and GitHub
b5f60f843d
set web assets base dir from env ( #793 )
2025-04-19 22:56:20 +08:00
Sijie.Sun and GitHub
6bdfb8b01f
generate split js/css when building web ( #792 )
2025-04-19 22:38:56 +08:00
Sijie.Sun and GitHub
ef1d81a2a1
introduce ffi for easytier ( #791 )
2025-04-19 21:01:51 +08:00
Sijie.Sun and GitHub
75f7865769
fix gui memory leak ( #768 )
...
* upgrade primevue
* use card instead of panel
2025-04-10 10:02:04 +08:00
Sijie.Sun and GitHub
01e3ad99ca
optimize memory issues ( #767 )
...
* optimize memory issues
1. introduce jemalloc support, which can dump current memory usage
2. reduce the GlobalEvent broadcaster memory usage.
3. reduce tcp & udp tunnel memory usage
TODO: if peer conn tunnel hangs, the unbounded channel of peer rpc
may consume lots of memory, which should be improved.
* select a port from 15888+ when port is 0
2025-04-09 23:05:49 +08:00
Sijie.Sun and GitHub
b38991a14e
Merge branch 'main' into perf/fixed-default-rpc-port
2025-04-06 13:09:06 +08:00
Sijie.Sun and GitHub
c142db301a
port forward ( #736 )
...
* support tcp port forward
* support udp port forward
* command line option for port forward
2025-04-01 09:59:53 +08:00
Sijie.Sun and GitHub
e130c3f2e4
when gather v6 bind addrs should only rely on v6 range ( #707 )
2025-03-21 22:40:26 +08:00
Sijie.Sun and GitHub
67cff12c76
fix gui compile ( #701 )
2025-03-20 00:55:14 +08:00
Sijie.Sun and GitHub
d880dfbbca
bump version to v2.2.4 ( #697 )
2025-03-19 17:23:15 +08:00
Sijie.Sun and GitHub
b46a200f8d
connector should set bind addrs correctly ( #696 )
2025-03-19 10:47:43 +08:00
Sijie.Sun and GitHub
23f69ce6a4
improve direct connector ( #685 )
...
* support ipv6 stun
* show interface and public ip in cli node info
* direct conn should keep trying unless already direct connected
* peer should use conn with smallest latency
* deprecate ipv6_listener, use -l instead
2025-03-17 10:46:14 +08:00
Sijie.Sun and GitHub
0318f55322
add serde default to NetworkConfig ( #675 )
...
* add serde default to NetworkConfig
* set base z-index of event-dialog
2025-03-12 10:36:54 +08:00
Sijie.Sun and Sijie.Sun
5449eabf2a
Update docker.yml
2025-02-10 12:47:12 +08:00
Sijie.Sun and GitHub
8b89a037e8
fix tcp incoming failure when kcp proxy is enabled ( #601 )
2025-02-06 09:08:34 +08:00
Sijie.Sun and GitHub
1e821a03fe
netlink route add should be exclusive ( #596 )
2025-02-04 23:01:13 +08:00
Sijie.Sun and GitHub
66051967fe
fix self peer route info not exist when starting ( #595 )
2025-02-04 21:35:14 +08:00
Sijie.Sun and GitHub
a63778854f
use netlink instead of shell cmd to config ip ( #593 )
2025-02-03 15:13:50 +08:00
Sijie.Sun and GitHub
4aea0821dd
forward original peer info in ospf route ( #589 )
...
prost doesn't support unknown field, and these info may be lost when
they go through a old version node.
2025-01-27 20:38:22 +08:00
Sijie.Sun and GitHub
08546925cc
fix tests ( #588 )
...
fix proxy_three_node_disconnect_test and hole_punching_symmetric_only_random
2025-01-27 15:17:47 +08:00
Sijie.Sun and GitHub
d0f26d9303
bump version to 2.2.0 ( #586 )
2025-01-26 23:45:50 +08:00
Sijie.Sun and GitHub
2a5d5ea4df
make kcp proxy compitible with old version ( #585 )
...
* fix kcp not work with smoltcp
* check if dst kcp input is enabled
2025-01-26 16:22:10 +08:00
Sijie.Sun and GitHub
b69b122c8d
add options to gui to enable kcp ( #583 )
...
* add test to kcp
* add options to gui to enable kcp
2025-01-26 13:31:20 +08:00
Sijie.Sun and GitHub
55a39491cb
feat/kcp ( #580 )
...
* support proxy tcp stream with kcp to improve experience of tcp over udp
* update rust version
* make subnet proxy route metrics lower in windows.
2025-01-26 00:41:15 +08:00
Sijie.Sun and GitHub
1194ee1c2d
fix peer manager stuck when sending large peer rpc ( #572 )
2025-01-17 06:50:21 +08:00
Sijie.Sun and GitHub
c23b544c34
tcp accept should retry when encoutering some kinds of error ( #565 )
...
* tcp accept should retry when encoutering some kinds of error
bump version to v2.1.2
* persistent temporary machine id
2025-01-14 08:55:48 +08:00
Sijie.Sun and GitHub
9d76b86f49
fix bugs ( #561 )
...
1. if peers disconnected before stop session, may crash at the assert.
2. bind_device flag should take effect on manual connector.
2025-01-12 00:16:38 +08:00
Sijie.Sun and GitHub
bb0ccca3e5
allow manually specify public address of listeners ( #556 )
2025-01-10 09:25:14 +08:00
Sijie.Sun and GitHub
306817ae9a
allow listener retry listen ( #554 )
2025-01-09 00:01:41 +08:00
Sijie.Sun and GitHub
d2ec60e108
batch recv for udp proxy ( #552 )
2025-01-07 23:52:18 +08:00
Sijie.Sun and GitHub
e016aeddeb
optimize pingpong conn close condition ( #549 )
...
if received some packets from peer, only close conn after enough
rounds of pingpong
2025-01-07 22:42:57 +08:00
Sijie.Sun and GitHub
a4419a31fd
fix peer rpc compatibility issue ( #548 )
...
every rpc packet should contains descriptor if sent to old version et.
2025-01-06 23:30:56 +08:00
Sijie.Sun and GitHub
34e4e907a9
bump version to v2.1.1 ( #533 )
2024-12-24 10:40:57 -05:00
Sijie.Sun and GitHub
2f4a097787
fix android ( #531 )
2024-12-23 19:38:32 -05:00
Sijie.Sun and GitHub
f3de00be37
support pause a network ( #528 )
2024-12-23 09:29:59 +08:00
Sijie.Sun and GitHub
4cf61f0d4a
fix web show dup entry for same machine ( #526 )
2024-12-21 11:51:01 -05:00
Sijie.Sun and GitHub
4e5915f98e
save api host in local storage ( #523 )
2024-12-21 01:29:54 +08:00
Sijie.Sun and GitHub
870eca9e9f
optimize easytier-web ( #522 )
...
1. use default compress level for tower_http. the best level consume
lots of memory
2. add more help message and command line arg.
2024-12-21 01:27:39 +08:00
Sijie.Sun and GitHub
25ed41caf5
use correct config server url ( #519 )
2024-12-20 00:21:22 +08:00
Sijie.Sun and GitHub
4bb72b5606
fix rpc packet route before first route info exchange ( #516 )
...
* fix rpc packet route before first route info exchange
* fix install script
* update config server help
2024-12-19 09:25:25 +08:00
Sijie.Sun and GitHub
c4d8ea4fec
refactor sym to cone punch ( #515 )
2024-12-18 23:56:47 +08:00
Sijie.Sun and GitHub
aed54f7318
support respond stun request in udp tunnel ( #484 )
...
we can use this to help the hole punching. (getting public mapped address stablely)
2024-11-20 23:45:06 +08:00
Sijie.Sun and GitHub
86600c6315
version 2.1.0 ( #482 )
2024-11-19 23:46:02 +08:00
Sijie.Sun and GitHub
3f47f37470
fix high cpu usage when client proto mismatch ( #481 )
...
before this patch, invalid packat received by tunnel reader may cause a dead loop in handshake.
2024-11-19 21:36:09 +08:00
Sijie.Sun and GitHub
1324e6163e
move toast to bottom right ( #478 )
2024-11-16 21:36:16 +08:00
Sijie.Sun and GitHub
89093167c6
fix autocomplete not show dropdown ( #477 )
2024-11-16 21:31:19 +08:00
Sijie.Sun and GitHub
15ad92aef2
fix no relay not work in local network ( #476 )
2024-11-16 14:36:17 +08:00
Sijie.Sun and GitHub
6cdea38284
support compress for rpc and tun data ( #473 )
...
* support compress for rpc and tun data
* add compression layer to easytier-web
2024-11-16 11:23:18 +08:00
Sijie.Sun and GitHub
4fc3ff8ce8
gui use frontend-lib, fix memory leak ( #467 )
2024-11-10 23:03:40 +08:00
Sijie.Sun and GitHub
88e6de9d7e
make all frontend functions works ( #466 )
2024-11-10 11:06:58 +08:00
Sijie.Sun and GitHub
e948dbfcc1
Feat/web (Patchset 4) ( #460 )
...
support basic functions in frontend
1. create/del network
2. inspect network running status
2024-11-08 23:33:17 +08:00
Sijie.Sun and GitHub
8aca5851f2
feat/web: Patchset 3 ( #455 )
...
https://apifox.com/apidoc/shared-ceda7a60-e817-4ea8-827b-de4e874dc45e
implement all backend API
2024-11-02 15:13:19 +08:00
Sijie.Sun and GitHub
a78b759741
feat/web (Patchset 2) ( #444 )
...
This patch implement a restful server without any auth.
usage:
```bash
# run easytier-web, which acts as an gateway and registry for all easytier-core
$> easytier-web
# run easytier-core and connect to easytier-web with a token
$> easytier-core --config-server udp://127.0.0.1:22020/fdsafdsa
# use restful api to list session
$> curl -H "Content-Type: application/json" -X GET 127.0.0.1:11211/api/v1/sessions
[{"token":"fdsafdsa","client_url":"udp://127.0.0.1:48915","machine_id":"de3f5b8f-0f2f-d9d0-fb30-a2ac8951d92f"}]%
# use restful api to run a network instance
$> curl -H "Content-Type: application/json" -X POST 127.0.0.1:11211/api/v1/network/de3f5b8f-0f2f-d9d0-fb30-a2ac8951d92f -d '{"config": "listeners = [\"udp://0.0.0.0:12344\"]"}'
# use restful api to get network instance info
$> curl -H "Content-Type: application/json" -X GET 127.0.0.1:11211/api/v1/network/de3f5b8f-0f2f-d9d0-fb30-a2ac8951d92f/65437e50-b286-4098-a624-74429f2cb839
```
2024-10-26 00:04:22 +08:00
Sijie.Sun and GitHub
0bf42c53cc
Feat/web (PatchSet 1) ( #436 )
...
* move rpc-build out of easytier dir and make it a independant project
* easytier core use launcher
* fix flags not print on launch
* allow launcher not fetch node info
* abstract out peer rpc impl
* fix arm gui ci. see https://github.com/actions/runner-images/pull/10807
* add easytier-web crate
* fix manual_connector test case
2024-10-19 18:10:02 +08:00
Sijie.Sun and GitHub
2134bc9139
fix icmp/udp subnet proxy not work with public server relay ( #431 )
2024-10-17 00:22:42 +08:00
Sijie.Sun and GitHub
d87a440c04
fix 202 bugs ( #418 )
...
* fix peer rpc stop working because of mpsc tunnel close unexpectedly
* fix gui:
1. allow set network prefix for virtual ipv4
2. fix android crash
3. fix subnet proxy cannot be set on android
2024-10-13 11:59:16 +08:00
Sijie.Sun and GitHub
d2291628e0
mpsc tunnel may be stuck by slow tcp stream, should not panic for this ( #406 )
...
* mpsc tunnel may be stuck by slow tcp stream, should not panic for this
* disallow node connect to self
2024-10-11 00:12:14 +08:00
Sijie.Sun and GitHub
7ab8cad1af
allow use ipv4 address in any cidr ( #404 )
2024-10-10 10:28:48 +08:00
Sijie.Sun and GitHub
2c017e0fc5
improve hole punch ( #403 )
...
* fix duplicated peer id (again)
* improve udp hole punch
1. always try cone punch for any nat type, tolerate fault stun type.
2. serializing all sym punch request, including server side.
2024-10-10 00:07:42 +08:00
Sijie.Sun and GitHub
e344372616
fix cone-to-cone punch ( #401 )
2024-10-09 22:39:06 +08:00
Sijie.Sun and GitHub
63821e56bc
fix udp buffer size, avoid packet loss ( #399 )
...
also bump version to 2.0.2
2024-10-08 22:01:15 +08:00
Sijie.Sun and GitHub
1be64223c8
ensure dst have session when we are initiator ( #398 )
...
* ensure dst have session when we are initiator
* bump version to 2.0.1
2024-10-08 21:05:46 +08:00
Sijie.Sun and GitHub
a08a8e7f4c
update gui dep to resolve mem leak ( #394 )
2024-10-08 09:21:47 +08:00
Sijie.Sun and GitHub
1e836501a8
serialize all sym hole punch ( #390 )
2024-10-07 23:04:49 +08:00
Sijie.Sun and GitHub
d4e59ffc40
fix listener may have no mapped addr ( #389 )
2024-10-07 12:15:20 +08:00
Sijie.Sun and GitHub
37ceb77bf6
nat4-nat4 punch ( #388 )
...
this patch optimize the udp hole punch logic:
1. allow start punch hole before stun test complete.
2. add lock to symmetric punch, avoid conflict between concurrent hole punching task.
3. support punching hole for predictable nat4-nat4.
4. make backoff of retry reasonable
2024-10-06 22:49:18 +08:00
Sijie.Sun and GitHub
1b03223537
use customized rpc implementation, remove Tarpc & Tonic ( #348 )
...
This patch removes Tarpc & Tonic GRPC and implements a customized rpc framework, which can be used by peer rpc and cli interface.
web config server can also use this rpc framework.
moreover, rewrite the public server logic, use ospf route to implement public server based networking. this make public server mesh possible.
2024-09-18 21:55:28 +08:00
Sijie.Sun and GitHub
096ed39d23
fix udp proxy disconn unexpectedly ( #321 )
2024-09-11 23:46:26 +08:00
Sijie.Sun and GitHub
1609c97574
fix panic when wireguard tunnel encounter udp recv error ( #299 )
2024-09-02 09:37:34 +08:00
Sijie.Sun and GitHub
f07b3ee9c6
fix punching task leak ( #298 )
...
the punching task creator doesn't check if the task is already
running, and may create many punching task to same peer node.
this patch also improve hole punching by checking hole punch packet
even if punch rpc is failed.
2024-08-31 14:37:34 +08:00
Sijie.Sun and GitHub
2058dbc470
fix wg client hang after some time ( #297 )
...
wg portal doesn't know client disconnect causing msg overstocked in queue, make
entire peer packet process pipeline hang.
2024-08-31 12:44:12 +08:00
Sijie.Sun and GitHub
2b7ff0efc5
bump version to v1.2.3 and update readme ( #280 )
2024-08-25 13:45:18 +08:00
Sijie.Sun and GitHub
5833541a6e
set correct route cost for peers relayed by public server ( #279 )
2024-08-25 12:27:00 +08:00
Sijie.Sun and GitHub
54c6418f97
only add necessary conn to alive urls ( #277 )
...
too many alive conns may cause high cpu usage and lagged broadcast
recv.
2024-08-25 11:12:01 +08:00
Sijie.Sun and GitHub
fc9aac42b4
fix release.yml, just skip zip gui & mobile artifect ( #276 )
2024-08-25 00:45:14 +08:00
Sijie.Sun and GitHub
89b43684d8
add complete support for freebsd ( #275 )
...
add tun & websocket & wireguard support on freebsd
2024-08-25 00:44:45 +08:00
Sijie.Sun and GitHub
833e7eca22
add command to show local node info ( #271 )
2024-08-23 11:50:11 +08:00
Sijie.Sun and GitHub
b7d85ad2ff
update rust-i18n to v3.1.2 ( #269 )
2024-08-21 11:00:13 +08:00
Sijie.Sun and GitHub
8793560e12
fix i18n, revert rust-i18n to v3.0.1 ( #267 )
2024-08-20 00:38:59 +08:00
Sijie.Sun and Sijie.Sun
28ae9c447a
Update Dockerfile to fix timezone
2024-08-17 00:00:32 +08:00
Sijie.Sun and GitHub
29806b899a
add draft release github action ( #246 )
2024-08-13 00:06:12 +08:00
Sijie.Sun and GitHub
b6fb7ac962
add two cmd line option ( #241 )
...
1. disable_p2p: only using specified peers to relay packets.
2. relay_all_peer_rpc: allow relay route info for networks not in whitelist
2024-08-10 00:26:54 +08:00
Sijie.Sun and GitHub
232165eff3
fix bugs ( #236 )
2024-08-08 22:03:22 +08:00
Sijie.Sun and GitHub
2bc4dd8c53
Update install_rust.sh ( #237 )
2024-08-08 20:07:22 +08:00
Sijie.Sun and GitHub
5f0d71b0fe
check trigger user for docker action ( #219 )
2024-08-04 00:37:58 +08:00
Sijie.Sun and GitHub
4fea3a60d6
update last_updated of peer info to local now ( #211 )
...
time between peers may not be synced, using peer last_updated time may cause peer info being cleared incorrectly
2024-08-02 00:48:31 +08:00
Sijie.Sun and GitHub
7a2bc52ae0
fix network to network without masquerade ( #207 )
2024-08-01 01:27:23 +08:00
Sijie.Sun and GitHub
5451b52daa
allow set routes manually and disable propagated routes ( #191 )
2024-07-24 22:45:55 +08:00
Sijie.Sun and GitHub
fc9812dd54
fix crash on old version android (<= 9) ( #183 )
...
* fix crash on old version android (<= 9)
* fix listener select
2024-07-19 23:55:11 +08:00
Sijie.Sun and GitHub
8858492fb4
fix vpn close when getting new subnet route ( #179 )
2024-07-18 08:48:45 +08:00
Sijie.Sun and GitHub
5987528f59
optimize android gui ( #174 )
...
make chips input more friendly
2024-07-15 22:55:10 +08:00
Sijie.Sun and GitHub
a03fc04b1b
set route correctly in android ( #172 )
2024-07-15 00:57:19 +08:00
Sijie.Sun and GitHub
858ade2eee
Android Support ( #166 )
...
1. Add vpnservice tauri plugin for android.
2. add workflow for android.
3. Easytier Core support android, allow set tun fd.
2024-07-15 00:03:55 +08:00