Sijie.Sun
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
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
34e4e907a9
bump version to v2.1.1 ( #533 )
2024-12-24 10:40:57 -05:00
Sijie.Sun
2f4a097787
fix android ( #531 )
2024-12-23 19:38:32 -05:00
Sijie.Sun
f3de00be37
support pause a network ( #528 )
2024-12-23 09:29:59 +08:00
Sijie.Sun
4cf61f0d4a
fix web show dup entry for same machine ( #526 )
2024-12-21 11:51:01 -05:00
Sijie.Sun
4e5915f98e
save api host in local storage ( #523 )
2024-12-21 01:29:54 +08:00
Sijie.Sun
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
25ed41caf5
use correct config server url ( #519 )
2024-12-20 00:21:22 +08:00
Sijie.Sun
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
c4d8ea4fec
refactor sym to cone punch ( #515 )
2024-12-18 23:56:47 +08:00
Sijie.Sun
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
86600c6315
version 2.1.0 ( #482 )
2024-11-19 23:46:02 +08:00
Sijie.Sun
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
1324e6163e
move toast to bottom right ( #478 )
2024-11-16 21:36:16 +08:00
Sijie.Sun
89093167c6
fix autocomplete not show dropdown ( #477 )
2024-11-16 21:31:19 +08:00
Sijie.Sun
15ad92aef2
fix no relay not work in local network ( #476 )
2024-11-16 14:36:17 +08:00
Sijie.Sun
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
4fc3ff8ce8
gui use frontend-lib, fix memory leak ( #467 )
2024-11-10 23:03:40 +08:00
Sijie.Sun
88e6de9d7e
make all frontend functions works ( #466 )
2024-11-10 11:06:58 +08:00
Sijie.Sun
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
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
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
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
2134bc9139
fix icmp/udp subnet proxy not work with public server relay ( #431 )
2024-10-17 00:22:42 +08:00
Sijie.Sun
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
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
7ab8cad1af
allow use ipv4 address in any cidr ( #404 )
2024-10-10 10:28:48 +08:00
Sijie.Sun
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
e344372616
fix cone-to-cone punch ( #401 )
2024-10-09 22:39:06 +08:00
Sijie.Sun
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
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
a08a8e7f4c
update gui dep to resolve mem leak ( #394 )
2024-10-08 09:21:47 +08:00
Sijie.Sun
1e836501a8
serialize all sym hole punch ( #390 )
2024-10-07 23:04:49 +08:00
Sijie.Sun
d4e59ffc40
fix listener may have no mapped addr ( #389 )
2024-10-07 12:15:20 +08:00
Sijie.Sun
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
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
096ed39d23
fix udp proxy disconn unexpectedly ( #321 )
2024-09-11 23:46:26 +08:00
Sijie.Sun
1609c97574
fix panic when wireguard tunnel encounter udp recv error ( #299 )
2024-09-02 09:37:34 +08:00
Sijie.Sun
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
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
2b7ff0efc5
bump version to v1.2.3 and update readme ( #280 )
2024-08-25 13:45:18 +08:00
Sijie.Sun
5833541a6e
set correct route cost for peers relayed by public server ( #279 )
2024-08-25 12:27:00 +08:00
Sijie.Sun
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
fc9aac42b4
fix release.yml, just skip zip gui & mobile artifect ( #276 )
2024-08-25 00:45:14 +08:00
Sijie.Sun
89b43684d8
add complete support for freebsd ( #275 )
...
add tun & websocket & wireguard support on freebsd
2024-08-25 00:44:45 +08:00
Sijie.Sun
833e7eca22
add command to show local node info ( #271 )
2024-08-23 11:50:11 +08:00
Sijie.Sun
b7d85ad2ff
update rust-i18n to v3.1.2 ( #269 )
2024-08-21 11:00:13 +08:00
Sijie.Sun
8793560e12
fix i18n, revert rust-i18n to v3.0.1 ( #267 )
2024-08-20 00:38:59 +08:00
Sijie.Sun
28ae9c447a
Update Dockerfile to fix timezone
2024-08-17 00:00:32 +08:00
Sijie.Sun
29806b899a
add draft release github action ( #246 )
2024-08-13 00:06:12 +08:00
Sijie.Sun
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
232165eff3
fix bugs ( #236 )
2024-08-08 22:03:22 +08:00
Sijie.Sun
2bc4dd8c53
Update install_rust.sh ( #237 )
2024-08-08 20:07:22 +08:00
Sijie.Sun
5f0d71b0fe
check trigger user for docker action ( #219 )
2024-08-04 00:37:58 +08:00
Sijie.Sun
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
7a2bc52ae0
fix network to network without masquerade ( #207 )
2024-08-01 01:27:23 +08:00
Sijie.Sun
5451b52daa
allow set routes manually and disable propagated routes ( #191 )
2024-07-24 22:45:55 +08:00
Sijie.Sun
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
8858492fb4
fix vpn close when getting new subnet route ( #179 )
2024-07-18 08:48:45 +08:00
Sijie.Sun
5987528f59
optimize android gui ( #174 )
...
make chips input more friendly
2024-07-15 22:55:10 +08:00
Sijie.Sun
a03fc04b1b
set route correctly in android ( #172 )
2024-07-15 00:57:19 +08:00
Sijie.Sun
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
Sijie.Sun
4938e3ed2b
migrate to tauri2 ( #159 )
...
migrate gui to tauri2
2024-07-08 23:18:10 +08:00
Sijie.Sun
537f6ecf78
fix smoltcp tcp proxy ( #157 )
...
1. allow smoltcp proxy with dhcp ip
2. fix smoltcp not work without no tun.
2024-07-07 22:08:50 +08:00
Sijie.Sun
24143cbf1c
add verbose cli mode; add list foreign network ( #156 )
2024-07-07 16:51:20 +08:00
Sijie.Sun
513e4cacc9
add more debug info for route ( #155 )
...
1. use info log for sync_route_info
2. allow dump route info with cli tool.
3. dump route info every 60s
2024-07-07 15:40:46 +08:00
Sijie.Sun
7cfa850d4c
GUI: support change log level when running ( #153 )
2024-07-06 17:18:13 +08:00
Sijie.Sun
571d4a6e8f
fix bug in dhcp ( #152 )
...
1. fix dhcp not retry if tun device init failed.
2. forbid dhcp use default ip when no peer.
2024-07-06 14:22:11 +08:00
Sijie.Sun
34f832bbad
make tun dependency optional ( #142 )
...
* remove log crates
* remove udp/raw of smoltcp
* make tun as optional dependancy, compile for freebsd works
2024-06-11 09:09:32 +08:00
Sijie.Sun
8aa57ebc22
support no tun mode ( #141 )
2024-06-10 10:27:24 +08:00
Sijie.Sun
fede35cca4
correctly handle ip fragment for udp/icmp proxy ( #137 )
...
icmp/udp proxy do not rely on kernel net stack, but currently not handle ip fragmentation correctly.
this patch add ip resembler to merge fragmented ip packet for udp/icmp proxy
2024-06-09 22:59:50 +08:00
Sijie.Sun
70ad81f7bd
only upx on linux ( #134 )
2024-06-05 21:00:30 +08:00
Sijie.Sun
b43c078152
fix udp proxy not work when being exit node ( #133 )
2024-06-05 08:08:55 +08:00
Sijie.Sun
6e77e6b5e7
support start on reboot ( #132 )
...
* move launcher to eastier lib
* support auto start after reboot
2024-06-04 23:06:10 +08:00
Sijie.Sun
f9e6264f31
fix upx and udp conn counter ( #131 )
...
* fix upx in workflow
* fix udp conn counter
2024-06-04 18:50:30 +08:00
Sijie.Sun
df17a7bb68
bugfix before release 11x ( #130 )
...
* use correct i18n hook
* fix peer rpc panic
make sure server use correct transact id
* fix dhcp
recreate tun device after ip changed
* use upx correctly
* compile arm & armv7
* prepare to release v1.1.0
2024-06-03 23:07:44 +08:00
Sijie.Sun
c1b725e64e
websocket support bind addr ( #129 )
2024-06-02 21:48:16 +08:00
Sijie.Sun
360691276c
support win7 and reduce win mem usage ( #128 )
2024-06-02 14:07:21 +08:00
Sijie.Sun
f1e9864d08
make release bin smaller ( #127 )
2024-06-02 09:15:40 +08:00
Sijie.Sun
abf9d23d52
improve hole punching and stun test ( #124 )
...
* implement new stun test algorithm, do test faster and provide more info
* support punching for symmetric
2024-06-02 07:20:57 +08:00
Sijie.Sun
bdbb1f02d6
Update Cargo.lock ( #122 )
2024-05-22 00:36:16 +08:00
Sijie.Sun
f64f58e2ae
support exit node ( #121 )
...
support exit node, proxy all traffic via one of node
NOTE: this patch has not implemented automatically route management.
2024-05-18 20:32:42 +08:00
Sijie.Sun
6efbb5cb3d
minor fixed ( #120 )
...
1. fix mtu, always set by ourselves and use smaller value
2. wireguard connector should return tunnel after receive packet
2024-05-18 18:04:06 +08:00
Sijie.Sun
bad6a5946a
fix run with config, update readme ( #118 )
2024-05-17 22:00:11 +08:00
Sijie.Sun
7532a7c1b2
command line improvement ( #115 )
...
make -l easy to use:
-l wg wss
-l wg:12345
-l 12345
make -r use random port
2024-05-16 20:16:09 +08:00
Sijie.Sun
f665de9b18
allow peer rpc split packet, so tunnel mtu can be small ( #116 )
2024-05-16 08:18:35 +08:00
Sijie.Sun
d5bf041834
some minor fix ( #113 )
...
1. fix ospf route panic if no ipv4 assigned.
2. should refetch global peer latency map every 60s
3. remove regex dep because it's too large and unnecessary.
2024-05-15 09:21:20 +08:00
Sijie.Sun
65ac991d1c
(Tyr) fix flashing console window on windows ( #105 )
...
add requireAdmin in app manist
2024-05-11 12:02:15 +08:00
Sijie.Sun
2deb867678
move shared codes in workflows to script ( #103 )
2024-05-10 22:56:00 +08:00
Sijie.Sun
e023c05440
Merge pull request #102 from EasyTier/fix-gui-workflow
...
rename workflow job name for gui
2024-05-10 22:39:23 +08:00
Sijie.Sun
72701c9eb3
start tcp proxy after tun device created ( #94 )
...
on win 10, tcp proxy listener created before tun device may not accept
conn from tun dev.
2024-05-10 21:40:50 +08:00
Sijie.Sun
b1153378c9
fix icmp proxy on MacOS ( #101 )
...
1. MacOS doesn't fill length field in ip header when recving from raw
socket
2. Fix udp & icmp subnet proxy not work when no p2p connection.
2024-05-10 21:40:29 +08:00
Sijie.Sun
7d3b8e42fe
move reconn task join into select! ( #88 )
...
if join_next stuck, may miss global event and cause panic
2024-05-09 18:51:58 +08:00
Sijie.Sun
076f6cd965
Merge pull request #93 from wuyumin/yumin-dev
...
update files for compiler
2024-05-08 22:29:45 +08:00
Sijie.Sun
2d394acc47
Merge pull request #90 from m1m1sha/feat/custom-hostname
...
Feat/custom hostname
2024-05-08 21:44:01 +08:00
Sijie.Sun
c3df9ea7fa
Merge pull request #84 from m1m1sha/perf/gui-front-perf
...
Optimize the GUI front-end project structure
2024-05-08 00:25:20 +08:00
Sijie.Sun
14df3d3075
mips support wireguard ( #87 )
2024-05-07 23:14:29 +08:00
Sijie.Sun
8440eb842b
fix bugs and improve user experiance ( #86 )
...
* correctly set mtu, and allow set mtu manually
* communicate between enc and non-enc should not panic
* allow loading cfg from file
* allow change file log level dynamically
2024-05-07 00:38:05 +08:00
Sijie.Sun
e5b537267e
bug fix and improve ( #81 )
...
1. fix manual connector do not retry if dns resolve failed.
2. allow not creating tun device if no virtual ipv4 is assigned.
2024-05-05 16:18:05 +08:00