Зеркало Leadaxe/sing-tun-lx — сабмодуль ядра sing-box-lx. GPLv3.
Find a file
世界 30e535973b
ping: Fix stale flows kept alive by unrelated ICMP traffic
Unconnected raw ICMP sockets receive every ICMP packet arriving at the
host, so any ICMP traffic refreshed the read deadline of every flow and
stale flows (with their raw sockets and goroutines) were only reclaimed
by LRU eviction while processing all host ICMP traffic in the meantime.

Expire flows based on their own activity only, and on Linux attach a
classic BPF ident filter to each raw socket so other flows' packets are
dropped in the kernel instead of waking every flow.
2026-07-27 23:11:48 +08:00
.github Fix lint errors 2026-07-27 10:23:30 +08:00
internal Fix lint errors 2026-07-27 10:23:30 +08:00
ping ping: Fix stale flows kept alive by unrelated ICMP traffic 2026-07-27 23:11:48 +08:00
.gitignore Update .gitignore 2026-06-22 16:16:28 +08:00
.golangci.yml Fix lint errors 2026-07-27 10:23:30 +08:00
go.mod Fix multi include/exclude interfaces 2026-04-20 07:40:18 +08:00
go.sum Fix multi include/exclude interfaces 2026-04-20 07:40:18 +08:00
LICENSE Init commit 2022-07-11 17:15:22 +08:00
Makefile Fix lint errors 2026-07-27 10:23:30 +08:00
monitor.go Support multiple registered interfaces in interface monitor 2026-06-03 10:35:01 +08:00
monitor_android.go Improve error messages for Linux TUN and redirect operations 2026-03-15 14:43:38 +08:00
monitor_darwin.go Better atomic using 2025-03-19 20:37:02 +08:00
monitor_linux.go Fix redirect routes 2026-07-27 23:11:22 +08:00
monitor_linux_default.go Improve error messages for Linux TUN and redirect operations 2026-03-15 14:43:38 +08:00
monitor_other.go Add mixed stack 2023-08-12 19:38:06 +08:00
monitor_shared.go Support multiple registered interfaces in interface monitor 2026-06-03 10:35:01 +08:00
monitor_windows.go Better atomic using 2025-03-19 20:37:02 +08:00
nfqueue_linux.go Fix missing UDP and ICMP bypass for auto redirect 2026-07-27 23:11:22 +08:00
packages.go Add PackagesByID for android package manager 2026-03-23 18:25:08 +08:00
packages_android.go Add PackagesByID for android package manager 2026-03-23 18:25:08 +08:00
packages_stub.go Use new fswatcher to udpate android packages 2024-06-26 11:02:47 +08:00
README.md Fix system stack for ios 2023-04-17 20:02:10 +08:00
redirect.go Add pre-matching support for auto redirect 2025-12-26 14:44:55 +08:00
redirect_iptables.go Reject connections to redirect listener 2026-07-27 23:11:22 +08:00
redirect_linux.go Fix redirect routes 2026-07-27 23:11:22 +08:00
redirect_nftables.go Fix missing UDP and ICMP bypass for auto redirect 2026-07-27 23:11:22 +08:00
redirect_nftables_exprs.go Fix nftables interval end when range hits max address 2026-07-27 10:25:59 +08:00
redirect_nftables_rules.go Reject connections to redirect listener 2026-07-27 23:11:22 +08:00
redirect_nftables_rules_openwrt.go test: Add log for fw4 reload error 2025-08-03 00:12:24 +08:00
redirect_route_linux.go Fix redirect routes 2026-07-27 23:11:22 +08:00
redirect_server.go Reject connections to redirect listener 2026-07-27 23:11:22 +08:00
redirect_stub.go Add auto-redirect 2024-06-07 15:48:43 +08:00
route_direct.go Revert "ping: Increate mapping capacity" 2025-08-26 23:54:57 +08:00
stack.go Fix lint errors 2026-07-27 10:23:30 +08:00
stack_gvisor.go Fix ping 2026-07-27 23:11:48 +08:00
stack_gvisor_filter.go Improve darwin tun performance 2025-07-17 23:46:08 +08:00
stack_gvisor_icmp.go Fix ping 2026-07-27 23:11:48 +08:00
stack_gvisor_lazy.go Fix error usages 2025-06-20 12:47:57 +08:00
stack_gvisor_log.go Add handshake interface support for gVisor UDP 2023-08-07 20:32:32 +08:00
stack_gvisor_stub.go Add mixed stack 2023-08-12 19:38:06 +08:00
stack_gvisor_tcp.go Fix gvisor loopback address 2025-08-27 16:35:53 +08:00
stack_gvisor_tcpbuf_default.go Remove unused ICMP replies & Improve tcpbuf options 2024-11-08 12:15:52 +08:00
stack_gvisor_tcpbuf_ios.go Remove unused ICMP replies & Improve tcpbuf options 2024-11-08 12:15:52 +08:00
stack_gvisor_udp.go Fix gVisor process 2026-07-27 10:25:59 +08:00
stack_mixed.go Fix gVisor process 2026-07-27 10:25:59 +08:00
stack_system.go Fix gVisor process 2026-07-27 10:25:59 +08:00
stack_system_nat.go Fix system stack TCP NAT collision 2026-06-19 20:25:45 +08:00
stack_system_nonwindows.go Retry system listen 2024-10-14 22:10:23 +08:00
stack_system_packet.go Add ping proxy support 2025-08-22 10:56:12 +08:00
stack_system_windows.go Fix system stack 2025-07-21 09:44:17 +08:00
tun.go Fix CalculateInterfaceName on iOS 2026-07-27 10:25:59 +08:00
tun_darwin.go ping: Fix missing TTL and ICMP error handling 2026-07-27 23:11:48 +08:00
tun_darwin_gvisor.go Fix gVisor process 2026-07-27 10:25:59 +08:00
tun_linux.go Fix probe GSO 2026-07-27 23:11:22 +08:00
tun_linux_flags.go Fix android GSO 2026-07-27 23:11:22 +08:00
tun_linux_gvisor.go Fix gVisor process 2026-07-27 10:25:59 +08:00
tun_nondarwin.go Add system stack 2022-09-08 18:11:26 +08:00
tun_nonlinux.go Add GSO support 2023-12-21 16:51:06 +08:00
tun_offload.go Fix lint errors 2026-07-27 10:23:30 +08:00
tun_offload_errors.go Copy UDP GSO support from tailscale 2024-11-23 12:58:52 +08:00
tun_offload_linux.go Fix lint errors 2026-07-27 10:23:30 +08:00
tun_other.go Add create tun from file descriptor 2023-02-26 17:11:24 +08:00
tun_rules.go Fix generate darwin rules 2025-02-17 21:56:54 +08:00
tun_windows.go Handle existing Wintun adapter on restart 2026-05-19 20:56:43 +08:00
tun_windows_gvisor.go Fix dispatcher race operation in WintunEndpoint 2026-06-01 17:48:51 +08:00

sing-tun

Simple transparent proxy library.

For Linux, Windows, macOS and iOS.

License

Copyright (C) 2022 by nekohasekai <contact-sagernet@sekai.icu>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.