Repository navigation
Releases: podkop-net/podkop-engine
Release list
podkop-engine 1.14.3-r15
sing-box 1.14.3 для podkop на OpenWrt, ревизия пакета r15. Неофициальная сборка, не связана с проектом sing-box.
Патчи к v1.14.3:
0001reality: keep X25519MLKEM768 key share, announce client version 26.3.270002utls: firefox -> Firefox 148, safari -> Safari 26.3 (as Xray-core)0003include: podkop_slim build tag drops snell and the API service0004rule-set: start empty when the first download fails, retry, run a hook0005dns/udp: one socket per query for servers reached without a proxy0006dns/transport: cap queries in flight on a pipelined TCP/TLS connection0007dns: fall back to the provider's DNS when a server reached through the WAN fails0008route: answer DNS hijacked from a NAT session from a handler0009dns: take the provider's DNS from netifd for the output device, ask the fastest0010utls: keep the randomized fingerprint consistent0011dns/fakeip: answer from memory, save to the cache file in the background0012route: exchange DNS of a NAT session off the reading loop0013route: a FakeIP address without a record goes by the sniffed domain0014listener: an output queue of 1024 packets for UDP instead of 640015sniff: bound the CRYPTO frames of a QUIC Initial0016route: refuse a direct dial back to the inbound the connection came in on0017transport: a failed HTTP/2 dial frees the handshake write, with its error0018sniff: stop the TLS server handshake once the ClientHello is captured0019dns: retransmit plain UDP queries while no answer has come0020rule-set: bound a remote fetch by stalls, start without a list that does not come0021urltest: test each member every interval, not every other one0022urltest: leave a member when its connections fail, not at the next test0023urltest: download 64 KiB through a member before switching to it0024include: drop the resolved service and DNS transport0025dns/https: reset the transport on a timeout only when no later query was answered0026tls: release the uTLS handshake state after the handshake0027dns: log failed exchanges once per server, with a count every 10 s0028urltest: a timeout that also reports itself closed is the member's failure0029badtls: read a pending alert after data, as crypto/tls does0030tls: give the connections of the TLS dialer the badtls read waiter0031readwait: wait for data without a buffer on QUIC streams and gRPC lite0032box: let the Go memory limit follow the memory the system can still give0033urltest: test a member out of turn when a connection gets no answer0034go.mod: take sing-vmess from the podkop-engine fork (v0.2.9-pdk.1)0035include: podkop_slim keeps podkop's protocols, podkop_full adds every outbound0036urltest: take the download test URL from the group's download_url0037urltest: fallbacks, taken in their order while no outbound answers0038ja3: test a list that runs past its extension (upstream 07512b109)0039sniff: a panicking sniffer fails its connection, a UDP sniff reads 16 packets0040urltest: the Clash API's delay test does not wait for nested selections0041log: format entries for the Clash API only while its logs are read0042clashapi: a failed listen of the external controller does not fail the start0043rule-set: collect garbage after a load only, log repeated failures sparingly0044xhttp: add the client of Xray's XHTTP transport0045xhttp: tests for options, configuration errors, the download leg and HTTP/3; refuse VLESS flow over xhttp0046xhttp: a small default request size for uploads carried in headers or cookies0047xhttp: cap the frame size the HTTP/2 client writes, wait for data on a small probe, retire idle pooled connections0048xhttp: test the backoff against a server that resets every upload0049xhttp: do not cancel packet-up uploads with their session0050xhttp: the transport in the option schema0051xhttp: BBR congestion control and the Chrome QUIC profile over HTTP/3, as Xray0052xhttp: fixes from the review0053tools: add decode-link, share links to outbounds0054tools decode-link: forms of links found in the wild0055xhttp: an oversized request no longer takes the connection down0056xhttp: data written before a close is sent0057xhttp: the backoff holds back connections, not sessions0058xhttp: a graceful GOAWAY is not a failure of the server0059xhttp: HTTP/3 takes another connection when one is out of streams0060xhttp: no post interval for a range from zero; tests for rotation and deadlines0061xhttp: no time limit on an upload a watched connection carries0062xhttp: fixes from the second review0063tools decode-link: fixes from the review0064tools decode-link: do not wrap a nil error0065tools decode-link: one link, and an exit status scripts can tell apart0066version: list the features of this build0067xhttp: Close resets the transport instead of ending it0068v2ray: state and test that Close of a client transport is a reset0069xhttp: browser versions survive a clock that was never set0070xhttp: refuse an uplink_http_method that is not a token0071xhttp: one check of the options, and a download server needs its port0072dns: test the decisions of the provider DNS fallback0073dns: count a failure of a server once per event, and only for names the provider resolved0074dns: forget the state of the provider fallback of every server on a network reset0075dns: read the provider's servers again after a miss at most once in 30 s0076dns: take the first query to a server off the goroutine that reads client queries0077dns: use slices.Equal and slices.Contains for the provider's servers0078dns/fakeip: answer new names from memory while the cache file cannot be written0079dns/fakeip: tell the loop to stop before the store refuses saves0080route: log a connection without a fakeip record as a warning that says why0081route: count the refusals of a loop to the inbound instead of logging each0082sniff: log the stack of a panicking sniffer once a minute, not per connection0083tls: name the uTLS fingerprints REALITY cannot use0084tls: do not rebuild the Client Hello after the handshake0085urltest: check the download URL of the environment at start0086rule-set: report how the recovered hook ended0087rule-set: read and drop the rules of a local set under its lock0088rule-set: refuse what cannot be a rule-set before reading it, say what came0089rule-set: download as an external connection0090urltest: keep the test results through a network pause, test again after a busy round0091urltest: one error for a failed dial, naming the member0092trafficcontrol: drop the sniffer state and the DNS answers from a tracker's metadata0093tls: make the uTLS hello of chrome, edge, ios, qq, 360 and android from its specification0094httpclient: test that what a request's context carries reaches the dialer0095tlsspoof: send the forged ClientHello the way the connection goes, and nothing else0096reality: take the tls spoof options0097tls: go on with another uTLS fingerprint when the ClientHello gets no acknowledgment0098vless: warn of a flow over a transport it does not work over0099decode-link: build the outbound to validate it, refuse by a table of reasons0100decode-link: Shadowsocks, SOCKS, Hysteria 2, TUIC, VMess, HTTP, Hysteria, AnyTLS and NaiveProxy links0101decode-link: options of sing-box by their paths, and what a link may not set0102decode-link: what the links of Marzban and Remnawave showed0103decode-link: what the fuzzer and the comparison with podkop's shell decoder showed0104urltest: a dial this host's network refused waits for the network monitor0105vmess: the security auto is not zero under TLS0106reality: refuse a short_id longer than it can be0107tlsfragment: do not hold the socket while waiting for an acknowledgment0108tlsfragment: a server name with an empty label0109tlsspoof: what the review of the forged ClientHello showed0110tls: fingerprint fallback, what two reviews and the stands showed0111urltest: failures across a change of the network, a monitor that sees no route0112rule-set: one plain line of what the server said0113vless: warn about a flow over the quic transport too0114decode-link: what the stand against real servers and two reviews showed0115clashapi: do not write to the record of a connection while it is listed0116route: do not leave a packet of a new NAT session behind its DNS handler0117dns/https: ask a query again when the server closes the connection without a GOAWAY0118vless: VLESS Encryption of Xray for the outbound, with Vision over it0119decode-link: pass the encryption of a VLESS link instead of refusing it0120dns: every message of the provider DNS fallback is a warning0121sniff: a datagram that is no DNS query goes on to the other packet sniffers0122xhttp: the test of oversized upload headers no longer races the server's settings0123common/domainset: build the domain matcher of sing with a fraction of its memory0124domainset: read rule sets of the source format in one pass, build the trie by radix0125domainset: a level of the trie is its keys one after another and a bit a node0126domainset: the trie a type of its own, filled in place0127cidrset: CIDR lists of rule sets as ranges of their own0128sharelink: the scrubbing of messages is exported0129route: remote rule-sets can be updated on request0130fakeip: Peek tells the address of a domain without giving it one- `0...
podkop-engine 1.13.21-r15
sing-box 1.13.21 для podkop на OpenWrt, ревизия пакета r15. Неофициальная сборка, не связана с проектом sing-box.
Патчи к v1.13.21:
0001reality: keep X25519MLKEM768 key share, announce client version 26.3.270002utls: firefox -> Firefox 148, safari -> Safari 26.3 (as Xray-core)0003rule-set: start empty when the first download fails, retry, run a hook0004urltest: re-check when the default interface changes0005rule-set: close the connection of a failed download0006dns/udp: one socket per query for servers reached without a proxy0007dns/tls: drop idle pooled connections before servers close them0008dns: fall back to the provider's DNS when a server reached through the WAN fails0009dns: take the provider's DNS from netifd for the output device, ask the fastest0010utls: keep the randomized fingerprint consistent0011dns/fakeip: answer from memory, save to the cache file in the background0012route: a FakeIP address without a record goes by the sniffed domain0013listener: an output queue of 1024 packets for UDP instead of 640014sniff: bound the CRYPTO frames of a QUIC Initial0015route: refuse a direct dial back to the inbound the connection came in on0016transport: a failed HTTP/2 dial frees the handshake write, with its error0017sniff: stop the TLS server handshake once the ClientHello is captured0018dns: retransmit plain UDP queries while no answer has come0019rule-set: bound a remote fetch by stalls, start without a list that does not come0020urltest: test each member every interval, not every other one0021urltest: leave a member when its connections fail, not at the next test0022tls: bound the handshake of a TLS dial0023urltest: download 64 KiB through a member before switching to it0024include: drop the resolved service and DNS transport0025dns/https: reset the transport on a timeout only when no later query was answered0026tls: release the uTLS handshake state after the handshake0027dns: log failed exchanges once per server, with a count every 10 s0028urltest: a timeout that also reports itself closed is the member's failure0029badtls: read a pending alert after data, as crypto/tls does0030tls: give the connections of the TLS dialer the badtls read waiter0031readwait: wait for data without a buffer on QUIC streams and gRPC lite0032box: let the Go memory limit follow the memory the system can still give0033urltest: test a member out of turn when a connection gets no answer0034go.mod: take sing-vmess from the podkop-engine fork (v0.2.8-pdk13.1)0035include: podkop_slim keeps podkop's protocols, podkop_full adds every outbound0036urltest: take the download test URL from the group's download_url0037urltest: fallbacks, taken in their order while no outbound answers0038Backport: fix protocol input validation (upstream 07512b109)0039Backport: close interrupted connections outside the group lock (upstream d2cf974)0040go.mod: sing-vmess v0.2.8-pdk13.2, with the upstream input validation fix0041sniff: a panicking sniffer fails its connection, a UDP sniff reads 16 packets0042log: format entries for the Clash API only while its logs are read0043clashapi: a failed listen of the external controller does not fail the start0044rule-set: collect garbage after a load only, log repeated failures sparingly0045xhttp: add the client of Xray's XHTTP transport0046xhttp: tests for options, configuration errors, the download leg and HTTP/3; refuse VLESS flow over xhttp0047xhttp: a small default request size for uploads carried in headers or cookies0048xhttp: cap the frame size the HTTP/2 client writes, wait for data on a small probe, retire idle pooled connections0049xhttp: test the backoff against a server that resets every upload0050xhttp: do not cancel packet-up uploads with their session0051xhttp: BBR congestion control over HTTP/3, as Xray0052xhttp: fixes from the review0053tools: add decode-link, share links to outbounds0054tools decode-link: forms of links found in the wild0055xhttp: an oversized request no longer takes the connection down0056xhttp: data written before a close is sent0057xhttp: the backoff holds back connections, not sessions0058xhttp: a graceful GOAWAY is not a failure of the server0059xhttp: HTTP/3 takes another connection when one is out of streams0060xhttp: no post interval for a range from zero; tests for rotation and deadlines0061xhttp: no time limit on an upload a watched connection carries0062xhttp: fixes from the second review0063tools decode-link: fixes from the review0064tools decode-link: do not wrap a nil error0065tools decode-link: one link, and an exit status scripts can tell apart0066version: list the features of this build0067xhttp: Close resets the transport instead of ending it0068v2ray: state and test that Close of a client transport is a reset0069xhttp: browser versions survive a clock that was never set0070xhttp: refuse an uplink_http_method that is not a token0071xhttp: one check of the options, and a download server needs its port0072dns: test the decisions of the provider DNS fallback0073dns: count a failure of a server once per event, and only for names the provider resolved0074dns: forget the state of the provider fallback of every server on a network reset0075dns: read the provider's servers again after a miss at most once in 30 s0076dns: use slices.Equal and slices.Contains for the provider's servers0077dns/fakeip: answer new names from memory while the cache file cannot be written0078dns/fakeip: tell the loop to stop before the store refuses saves0079route: log a connection without a fakeip record as a warning that says why0080route: count the refusals of a loop to the inbound instead of logging each0081sniff: log the stack of a panicking sniffer once a minute, not per connection0082tls: name the uTLS fingerprints REALITY cannot use0083tls: do not rebuild the Client Hello after the handshake0084urltest: check the download URL of the environment at start0085rule-set: report how the recovered hook ended0086go.mod: golang.org/x/net v0.57.0, with x/crypto, x/text and x/sys, as the 1.14 line0087rule-set: read and drop the rules of a local set under its lock0088rule-set: refuse what cannot be a rule-set before reading it, say what came0089rule-set: download as an external connection0090urltest: keep the test results through a network pause, test again after a busy round0091urltest: one error for a failed dial, naming the member0092clashapi: drop the sniffer state from a tracker's metadata0093tls: make the uTLS hello of chrome, edge, ios, qq, 360 and android from its specification0094tls: spoof and spoof_method, the route options tls_spoof and tls_spoof_method (from sing-box 1.14)0095tlsspoof: send the forged ClientHello the way the connection goes, and nothing else0096reality: take the tls spoof options0097tls: go on with another uTLS fingerprint when the ClientHello gets no acknowledgment0098vless: warn of a flow over a transport it does not work over0099decode-link: build the outbound to validate it, refuse by a table of reasons0100decode-link: Shadowsocks, SOCKS, Hysteria 2, TUIC, VMess, HTTP, Hysteria, AnyTLS and NaiveProxy links0101decode-link: options of sing-box by their paths, and what a link may not set0102decode-link: what the links of Marzban and Remnawave showed0103decode-link: what the fuzzer and the comparison with podkop's shell decoder showed0104urltest: a dial this host's network refused waits for the network monitor0105vmess: the security auto is not zero under TLS0106reality: refuse a short_id longer than it can be0107tlsfragment: do not hold the socket while waiting for an acknowledgment0108tlsfragment: a server name with an empty label0109tls: fragment the ClientHello with tls.fragment alone (from sing-box 1.14)0110tlsspoof: what the review of the forged ClientHello showed0111route: apply tls_spoof of a bypass action0112tls: fingerprint fallback, what two reviews and the stands showed0113urltest: failures across a change of the network, a monitor that sees no route0114rule-set: one plain line of what the server said0115vless: warn about a flow over the quic transport too0116decode-link: what the stand against real servers and two reviews showed0117clashapi: do not write to the record of a connection while it is listed0118route: do not leave a packet of a new NAT session behind its DNS handler0119dns/https: ask a query again when the server closes the connection without a GOAWAY0120vless: VLESS Encryption of Xray for the outbound, with Vision over it0121decode-link: pass the encryption of a VLESS link instead of refusing it0122dns: every message of the provider DNS fallback is a warning0123sniff: a datagram that is no DNS query goes on to the other packet sniffers0124go.mod: sing-shadowsocks2 with the input validation of UDP packets0125go.mod: sing-quic from a fork with the input validation of UDP packets0126go.mod: sing-vmess of the fork with the Vision buffer fix of upstream0127xhttp: the test of oversized upload headers no longer races the server's settings0128common/domainset: build the domain matcher of sing with a fraction of its memory0129domainset: read rule sets of the source format in one pass, build the trie by radix0130domainset: a level of the trie is its keys one after another a...
podkop-engine 1.14.2-r14
sing-box 1.14.2 для podkop на OpenWrt, ревизия пакета r14. Неофициальная сборка, не связана с проектом sing-box.
Патчи к v1.14.2:
0001reality: keep X25519MLKEM768 key share, announce client version 26.3.270002utls: firefox -> Firefox 148, safari -> Safari 26.3 (as Xray-core)0003include: podkop_slim build tag drops snell and the API service0004rule-set: start empty when the first download fails, retry, run a hook0005dns/udp: one socket per query for servers reached without a proxy0006dns/transport: cap queries in flight on a pipelined TCP/TLS connection0007dns: fall back to the provider's DNS when a server reached through the WAN fails0008route: answer DNS hijacked from a NAT session from a handler0009dns: take the provider's DNS from netifd for the output device, ask the fastest0010utls: keep the randomized fingerprint consistent0011dns/fakeip: answer from memory, save to the cache file in the background0012route: exchange DNS of a NAT session off the reading loop0013route: a FakeIP address without a record goes by the sniffed domain0014listener: an output queue of 1024 packets for UDP instead of 640015sniff: bound the CRYPTO frames of a QUIC Initial0016route: refuse a direct dial back to the inbound the connection came in on0017transport: a failed HTTP/2 dial frees the handshake write, with its error0018sniff: stop the TLS server handshake once the ClientHello is captured0019dns: retransmit plain UDP queries while no answer has come0020rule-set: bound a remote fetch by stalls, start without a list that does not come0021urltest: test each member every interval, not every other one0022urltest: leave a member when its connections fail, not at the next test0023urltest: download 64 KiB through a member before switching to it0024include: drop the resolved service and DNS transport0025dns/https: reset the transport on a timeout only when no later query was answered0026tls: release the uTLS handshake state after the handshake0027dns: log failed exchanges once per server, with a count every 10 s0028urltest: a timeout that also reports itself closed is the member's failure0029badtls: read a pending alert after data, as crypto/tls does0030tls: give the connections of the TLS dialer the badtls read waiter0031readwait: wait for data without a buffer on QUIC streams and gRPC lite0032box: let the Go memory limit follow the memory the system can still give0033urltest: test a member out of turn when a connection gets no answer0034go.mod: take sing-vmess from the podkop-engine fork (v0.2.8-pdk.1)0035include: podkop_slim keeps podkop's protocols, podkop_full adds every outbound0036urltest: take the download test URL from the group's download_url0037urltest: fallbacks, taken in their order while no outbound answers0038Backport: fix protocol input validation (upstream 07512b109)0039Backport: close interrupted connections outside the group lock (upstream d2cf9747d)0040go.mod: sing-vmess v0.2.8-pdk.2, with the upstream input validation fix0041sniff: a panicking sniffer fails its connection, a UDP sniff reads 16 packets0042urltest: the Clash API's delay test does not wait for nested selections0043log: format entries for the Clash API only while its logs are read0044clashapi: a failed listen of the external controller does not fail the start0045rule-set: collect garbage after a load only, log repeated failures sparingly0046xhttp: add the client of Xray's XHTTP transport0047xhttp: tests for options, configuration errors, the download leg and HTTP/3; refuse VLESS flow over xhttp0048xhttp: a small default request size for uploads carried in headers or cookies0049xhttp: cap the frame size the HTTP/2 client writes, wait for data on a small probe, retire idle pooled connections0050xhttp: test the backoff against a server that resets every upload0051xhttp: do not cancel packet-up uploads with their session0052xhttp: the transport in the option schema0053xhttp: BBR congestion control and the Chrome QUIC profile over HTTP/3, as Xray0054xhttp: fixes from the review0055tools: add decode-link, share links to outbounds0056tools decode-link: forms of links found in the wild0057xhttp: an oversized request no longer takes the connection down0058xhttp: data written before a close is sent0059xhttp: the backoff holds back connections, not sessions0060xhttp: a graceful GOAWAY is not a failure of the server0061xhttp: HTTP/3 takes another connection when one is out of streams0062xhttp: no post interval for a range from zero; tests for rotation and deadlines0063xhttp: no time limit on an upload a watched connection carries0064xhttp: fixes from the second review0065tools decode-link: fixes from the review0066tools decode-link: do not wrap a nil error0067tools decode-link: one link, and an exit status scripts can tell apart0068version: list the features of this build0069xhttp: Close resets the transport instead of ending it0070v2ray: state and test that Close of a client transport is a reset0071xhttp: browser versions survive a clock that was never set0072xhttp: refuse an uplink_http_method that is not a token0073xhttp: one check of the options, and a download server needs its port0074dns: test the decisions of the provider DNS fallback0075dns: count a failure of a server once per event, and only for names the provider resolved0076dns: forget the state of the provider fallback of every server on a network reset0077dns: read the provider's servers again after a miss at most once in 30 s0078dns: take the first query to a server off the goroutine that reads client queries0079dns: use slices.Equal and slices.Contains for the provider's servers0080dns/fakeip: answer new names from memory while the cache file cannot be written0081dns/fakeip: tell the loop to stop before the store refuses saves0082route: log a connection without a fakeip record as a warning that says why0083route: count the refusals of a loop to the inbound instead of logging each0084sniff: log the stack of a panicking sniffer once a minute, not per connection0085tls: name the uTLS fingerprints REALITY cannot use0086tls: do not rebuild the Client Hello after the handshake0087urltest: check the download URL of the environment at start0088rule-set: report how the recovered hook ended0089rule-set: read and drop the rules of a local set under its lock0090rule-set: refuse what cannot be a rule-set before reading it, say what came0091rule-set: download as an external connection0092urltest: keep the test results through a network pause, test again after a busy round0093urltest: one error for a failed dial, naming the member0094trafficcontrol: drop the sniffer state and the DNS answers from a tracker's metadata0095tls: make the uTLS hello of chrome, edge, ios, qq, 360 and android from its specification0096httpclient: test that what a request's context carries reaches the dialer0097tlsspoof: send the forged ClientHello the way the connection goes, and nothing else0098reality: take the tls spoof options0099tls: go on with another uTLS fingerprint when the ClientHello gets no acknowledgment0100vless: warn of a flow over a transport it does not work over0101decode-link: build the outbound to validate it, refuse by a table of reasons0102decode-link: Shadowsocks, SOCKS, Hysteria 2, TUIC, VMess, HTTP, Hysteria, AnyTLS and NaiveProxy links0103decode-link: options of sing-box by their paths, and what a link may not set0104decode-link: what the links of Marzban and Remnawave showed0105decode-link: what the fuzzer and the comparison with podkop's shell decoder showed0106urltest: a dial this host's network refused waits for the network monitor0107vmess: the security auto is not zero under TLS0108reality: refuse a short_id longer than it can be0109tlsfragment: do not hold the socket while waiting for an acknowledgment0110tlsfragment: a server name with an empty label0111tlsspoof: what the review of the forged ClientHello showed0112tls: fingerprint fallback, what two reviews and the stands showed0113urltest: failures across a change of the network, a monitor that sees no route0114rule-set: one plain line of what the server said0115vless: warn about a flow over the quic transport too0116decode-link: what the stand against real servers and two reviews showed0117clashapi: do not write to the record of a connection while it is listed0118route: do not leave a packet of a new NAT session behind its DNS handler0119dns/https: ask a query again when the server closes the connection without a GOAWAY0120vless: VLESS Encryption of Xray for the outbound, with Vision over it0121decode-link: pass the encryption of a VLESS link instead of refusing it0122dns: every message of the provider DNS fallback is a warning0123sniff: a datagram that is no DNS query goes on to the other packet sniffers0124go.mod: sing-shadowsocks2 with the input validation of UDP packets0125go.mod: sing-quic from a fork with the input validation of UDP packets
Теги сборки: with_quic,with_utls,with_clash_api,podkop_slim. Go 1.26.8. sing-box version → 1.14.2-pdk-r14.
Два пакета, ставится один из них:
podkop-engine— то, что использует podkop: входы tproxy, direct, mixed; выходы direct, socks, shadowsocks, trojan, vless, hysteria2, tuic, selector, urltest. Остальные типы в «Outbound Config» отвергаются...
podkop-engine 1.13.21-r14
sing-box 1.13.21 для podkop на OpenWrt, ревизия пакета r14. Неофициальная сборка, не связана с проектом sing-box.
Патчи к v1.13.21:
0001reality: keep X25519MLKEM768 key share, announce client version 26.3.270002utls: firefox -> Firefox 148, safari -> Safari 26.3 (as Xray-core)0003rule-set: start empty when the first download fails, retry, run a hook0004urltest: re-check when the default interface changes0005rule-set: close the connection of a failed download0006dns/udp: one socket per query for servers reached without a proxy0007dns/tls: drop idle pooled connections before servers close them0008dns: fall back to the provider's DNS when a server reached through the WAN fails0009dns: take the provider's DNS from netifd for the output device, ask the fastest0010utls: keep the randomized fingerprint consistent0011dns/fakeip: answer from memory, save to the cache file in the background0012route: a FakeIP address without a record goes by the sniffed domain0013listener: an output queue of 1024 packets for UDP instead of 640014sniff: bound the CRYPTO frames of a QUIC Initial0015route: refuse a direct dial back to the inbound the connection came in on0016transport: a failed HTTP/2 dial frees the handshake write, with its error0017sniff: stop the TLS server handshake once the ClientHello is captured0018dns: retransmit plain UDP queries while no answer has come0019rule-set: bound a remote fetch by stalls, start without a list that does not come0020urltest: test each member every interval, not every other one0021urltest: leave a member when its connections fail, not at the next test0022tls: bound the handshake of a TLS dial0023urltest: download 64 KiB through a member before switching to it0024include: drop the resolved service and DNS transport0025dns/https: reset the transport on a timeout only when no later query was answered0026tls: release the uTLS handshake state after the handshake0027dns: log failed exchanges once per server, with a count every 10 s0028urltest: a timeout that also reports itself closed is the member's failure0029badtls: read a pending alert after data, as crypto/tls does0030tls: give the connections of the TLS dialer the badtls read waiter0031readwait: wait for data without a buffer on QUIC streams and gRPC lite0032box: let the Go memory limit follow the memory the system can still give0033urltest: test a member out of turn when a connection gets no answer0034go.mod: take sing-vmess from the podkop-engine fork (v0.2.8-pdk13.1)0035include: podkop_slim keeps podkop's protocols, podkop_full adds every outbound0036urltest: take the download test URL from the group's download_url0037urltest: fallbacks, taken in their order while no outbound answers0038Backport: fix protocol input validation (upstream 07512b109)0039Backport: close interrupted connections outside the group lock (upstream d2cf9747d)0040go.mod: sing-vmess v0.2.8-pdk13.2, with the upstream input validation fix0041sniff: a panicking sniffer fails its connection, a UDP sniff reads 16 packets0042log: format entries for the Clash API only while its logs are read0043clashapi: a failed listen of the external controller does not fail the start0044rule-set: collect garbage after a load only, log repeated failures sparingly0045xhttp: add the client of Xray's XHTTP transport0046xhttp: tests for options, configuration errors, the download leg and HTTP/3; refuse VLESS flow over xhttp0047xhttp: a small default request size for uploads carried in headers or cookies0048xhttp: cap the frame size the HTTP/2 client writes, wait for data on a small probe, retire idle pooled connections0049xhttp: test the backoff against a server that resets every upload0050xhttp: do not cancel packet-up uploads with their session0051xhttp: BBR congestion control over HTTP/3, as Xray0052xhttp: fixes from the review0053tools: add decode-link, share links to outbounds0054tools decode-link: forms of links found in the wild0055xhttp: an oversized request no longer takes the connection down0056xhttp: data written before a close is sent0057xhttp: the backoff holds back connections, not sessions0058xhttp: a graceful GOAWAY is not a failure of the server0059xhttp: HTTP/3 takes another connection when one is out of streams0060xhttp: no post interval for a range from zero; tests for rotation and deadlines0061xhttp: no time limit on an upload a watched connection carries0062xhttp: fixes from the second review0063tools decode-link: fixes from the review0064tools decode-link: do not wrap a nil error0065tools decode-link: one link, and an exit status scripts can tell apart0066version: list the features of this build0067xhttp: Close resets the transport instead of ending it0068v2ray: state and test that Close of a client transport is a reset0069xhttp: browser versions survive a clock that was never set0070xhttp: refuse an uplink_http_method that is not a token0071xhttp: one check of the options, and a download server needs its port0072dns: test the decisions of the provider DNS fallback0073dns: count a failure of a server once per event, and only for names the provider resolved0074dns: forget the state of the provider fallback of every server on a network reset0075dns: read the provider's servers again after a miss at most once in 30 s0076dns: use slices.Equal and slices.Contains for the provider's servers0077dns/fakeip: answer new names from memory while the cache file cannot be written0078dns/fakeip: tell the loop to stop before the store refuses saves0079route: log a connection without a fakeip record as a warning that says why0080route: count the refusals of a loop to the inbound instead of logging each0081sniff: log the stack of a panicking sniffer once a minute, not per connection0082tls: name the uTLS fingerprints REALITY cannot use0083tls: do not rebuild the Client Hello after the handshake0084urltest: check the download URL of the environment at start0085rule-set: report how the recovered hook ended0086go.mod: golang.org/x/net v0.57.0, with x/crypto, x/text and x/sys, as the 1.14 line0087rule-set: read and drop the rules of a local set under its lock0088rule-set: refuse what cannot be a rule-set before reading it, say what came0089rule-set: download as an external connection0090urltest: keep the test results through a network pause, test again after a busy round0091urltest: one error for a failed dial, naming the member0092clashapi: drop the sniffer state from a tracker's metadata0093tls: make the uTLS hello of chrome, edge, ios, qq, 360 and android from its specification0094tls: spoof and spoof_method, the route options tls_spoof and tls_spoof_method (from sing-box 1.14)0095tlsspoof: send the forged ClientHello the way the connection goes, and nothing else0096reality: take the tls spoof options0097tls: go on with another uTLS fingerprint when the ClientHello gets no acknowledgment0098vless: warn of a flow over a transport it does not work over0099decode-link: build the outbound to validate it, refuse by a table of reasons0100decode-link: Shadowsocks, SOCKS, Hysteria 2, TUIC, VMess, HTTP, Hysteria, AnyTLS and NaiveProxy links0101decode-link: options of sing-box by their paths, and what a link may not set0102decode-link: what the links of Marzban and Remnawave showed0103decode-link: what the fuzzer and the comparison with podkop's shell decoder showed0104urltest: a dial this host's network refused waits for the network monitor0105vmess: the security auto is not zero under TLS0106reality: refuse a short_id longer than it can be0107tlsfragment: do not hold the socket while waiting for an acknowledgment0108tlsfragment: a server name with an empty label0109tls: fragment the ClientHello with tls.fragment alone (from sing-box 1.14)0110tlsspoof: what the review of the forged ClientHello showed0111route: apply tls_spoof of a bypass action0112tls: fingerprint fallback, what two reviews and the stands showed0113urltest: failures across a change of the network, a monitor that sees no route0114rule-set: one plain line of what the server said0115vless: warn about a flow over the quic transport too0116decode-link: what the stand against real servers and two reviews showed0117clashapi: do not write to the record of a connection while it is listed0118route: do not leave a packet of a new NAT session behind its DNS handler0119dns/https: ask a query again when the server closes the connection without a GOAWAY0120vless: VLESS Encryption of Xray for the outbound, with Vision over it0121decode-link: pass the encryption of a VLESS link instead of refusing it0122dns: every message of the provider DNS fallback is a warning0123sniff: a datagram that is no DNS query goes on to the other packet sniffers0124go.mod: sing-shadowsocks2 with the input validation of UDP packets0125go.mod: sing-quic from a fork with the input validation of UDP packets0126go.mod: sing-vmess of the fork with the Vision buffer fix of upstream
Теги сборки: with_quic,with_utls,with_clash_api,podkop_slim. Go 1.26.8. sing-box version → 1.13.21-pdk-r14.
Два пакета, ставится один из них:
podkop-engine— то, что использует podkop: входы tproxy, direct, mixed; выходы direct, socks, shadowsocks, trojan, vless, hysteria2, tuic, selector, urltest. Остальные типы в «Outbound Co...
podkop-engine 1.14.2-r13
sing-box 1.14.2 для podkop на OpenWrt, ревизия пакета r13. Неофициальная сборка, не связана с проектом sing-box.
Патчи к v1.14.2:
0001reality: keep X25519MLKEM768 key share, announce client version 26.3.270002utls: firefox -> Firefox 148, safari -> Safari 26.3 (as Xray-core)0003include: podkop_slim build tag drops snell and the API service0004rule-set: start empty when the first download fails, retry, run a hook0005dns/udp: one socket per query for servers reached without a proxy0006dns/transport: cap queries in flight on a pipelined TCP/TLS connection0007dns: fall back to the provider's DNS when a server reached through the WAN fails0008route: answer DNS hijacked from a NAT session from a handler0009dns: take the provider's DNS from netifd for the output device, ask the fastest0010utls: keep the randomized fingerprint consistent0011dns/fakeip: answer from memory, save to the cache file in the background0012route: exchange DNS of a NAT session off the reading loop0013route: a FakeIP address without a record goes by the sniffed domain0014listener: an output queue of 1024 packets for UDP instead of 640015sniff: bound the CRYPTO frames of a QUIC Initial0016route: refuse a direct dial back to the inbound the connection came in on0017transport: a failed HTTP/2 dial frees the handshake write, with its error0018sniff: stop the TLS server handshake once the ClientHello is captured0019dns: retransmit plain UDP queries while no answer has come0020rule-set: bound a remote fetch by stalls, start without a list that does not come0021urltest: test each member every interval, not every other one0022urltest: leave a member when its connections fail, not at the next test0023urltest: download 64 KiB through a member before switching to it0024include: drop the resolved service and DNS transport0025dns/https: reset the transport on a timeout only when no later query was answered0026tls: release the uTLS handshake state after the handshake0027dns: log failed exchanges once per server, with a count every 10 s0028urltest: a timeout that also reports itself closed is the member's failure0029badtls: read a pending alert after data, as crypto/tls does0030tls: give the connections of the TLS dialer the badtls read waiter0031readwait: wait for data without a buffer on QUIC streams and gRPC lite0032box: let the Go memory limit follow the memory the system can still give0033urltest: test a member out of turn when a connection gets no answer0034go.mod: take sing-vmess from the podkop-engine fork (v0.2.8-pdk.1)0035include: podkop_slim keeps podkop's protocols, podkop_full adds every outbound0036urltest: take the download test URL from the group's download_url0037urltest: fallbacks, taken in their order while no outbound answers0038Backport: fix protocol input validation (upstream 07512b109)0039Backport: close interrupted connections outside the group lock (upstream d2cf9747d)0040go.mod: sing-vmess v0.2.8-pdk.2, with the upstream input validation fix0041sniff: a panicking sniffer fails its connection, a UDP sniff reads 16 packets0042urltest: the Clash API's delay test does not wait for nested selections0043log: format entries for the Clash API only while its logs are read0044clashapi: a failed listen of the external controller does not fail the start0045rule-set: collect garbage after a load only, log repeated failures sparingly0046xhttp: add the client of Xray's XHTTP transport0047xhttp: tests for options, configuration errors, the download leg and HTTP/3; refuse VLESS flow over xhttp0048xhttp: a small default request size for uploads carried in headers or cookies0049xhttp: cap the frame size the HTTP/2 client writes, wait for data on a small probe, retire idle pooled connections0050xhttp: test the backoff against a server that resets every upload0051xhttp: do not cancel packet-up uploads with their session0052xhttp: the transport in the option schema0053xhttp: BBR congestion control and the Chrome QUIC profile over HTTP/3, as Xray0054xhttp: fixes from the review0055tools: add decode-link, share links to outbounds0056tools decode-link: forms of links found in the wild0057xhttp: an oversized request no longer takes the connection down0058xhttp: data written before a close is sent0059xhttp: the backoff holds back connections, not sessions0060xhttp: a graceful GOAWAY is not a failure of the server0061xhttp: HTTP/3 takes another connection when one is out of streams0062xhttp: no post interval for a range from zero; tests for rotation and deadlines0063xhttp: no time limit on an upload a watched connection carries0064xhttp: fixes from the second review0065tools decode-link: fixes from the review0066tools decode-link: do not wrap a nil error0067tools decode-link: one link, and an exit status scripts can tell apart0068version: list the features of this build0069xhttp: Close resets the transport instead of ending it0070v2ray: state and test that Close of a client transport is a reset0071xhttp: browser versions survive a clock that was never set0072xhttp: refuse an uplink_http_method that is not a token0073xhttp: one check of the options, and a download server needs its port0074dns: test the decisions of the provider DNS fallback0075dns: count a failure of a server once per event, and only for names the provider resolved0076dns: forget the state of the provider fallback of every server on a network reset0077dns: read the provider's servers again after a miss at most once in 30 s0078dns: take the first query to a server off the goroutine that reads client queries0079dns: use slices.Equal and slices.Contains for the provider's servers0080dns/fakeip: answer new names from memory while the cache file cannot be written0081dns/fakeip: tell the loop to stop before the store refuses saves0082route: log a connection without a fakeip record as a warning that says why0083route: count the refusals of a loop to the inbound instead of logging each0084sniff: log the stack of a panicking sniffer once a minute, not per connection0085tls: name the uTLS fingerprints REALITY cannot use0086tls: do not rebuild the Client Hello after the handshake0087urltest: check the download URL of the environment at start0088rule-set: report how the recovered hook ended0089rule-set: read and drop the rules of a local set under its lock0090rule-set: refuse what cannot be a rule-set before reading it, say what came0091rule-set: download as an external connection0092urltest: keep the test results through a network pause, test again after a busy round0093urltest: one error for a failed dial, naming the member0094trafficcontrol: drop the sniffer state and the DNS answers from a tracker's metadata0095tls: make the uTLS hello of chrome, edge, ios, qq, 360 and android from its specification0096httpclient: test that what a request's context carries reaches the dialer0097tlsspoof: send the forged ClientHello the way the connection goes, and nothing else0098reality: take the tls spoof options0099tls: go on with another uTLS fingerprint when the ClientHello gets no acknowledgment0100vless: warn of a flow over a transport it does not work over0101decode-link: build the outbound to validate it, refuse by a table of reasons0102decode-link: Shadowsocks, SOCKS, Hysteria 2, TUIC, VMess, HTTP, Hysteria, AnyTLS and NaiveProxy links0103decode-link: options of sing-box by their paths, and what a link may not set0104decode-link: what the links of Marzban and Remnawave showed0105decode-link: what the fuzzer and the comparison with podkop's shell decoder showed0106urltest: a dial this host's network refused waits for the network monitor0107vmess: the security auto is not zero under TLS0108reality: refuse a short_id longer than it can be0109tlsfragment: do not hold the socket while waiting for an acknowledgment0110tlsfragment: a server name with an empty label0111tlsspoof: what the review of the forged ClientHello showed0112tls: fingerprint fallback, what two reviews and the stands showed0113urltest: failures across a change of the network, a monitor that sees no route0114rule-set: one plain line of what the server said0115vless: warn about a flow over the quic transport too0116decode-link: what the stand against real servers and two reviews showed0117clashapi: do not write to the record of a connection while it is listed0118route: do not leave a packet of a new NAT session behind its DNS handler
Теги сборки: with_quic,with_utls,with_clash_api,podkop_slim. Go 1.26.8. sing-box version → 1.14.2-pdk-r13.
Два пакета, ставится один из них:
podkop-engine— то, что использует podkop: входы tproxy, direct, mixed; выходы direct, socks, shadowsocks, trojan, vless, hysteria2, tuic, selector, urltest. Остальные типы в «Outbound Config» отвергаются с подсказкой поставитьpodkop-engine-full.podkop-engine-full— то же плюс все остальные выходы: http, vmess, snell (1.14), tor (нужен пакет tor), ssh, shadowtls, anytls, hysteria и NaiveProxy (кроме архитектур ниже). Теги — те же плюсpodkop_full(иwith_naive_outbound,with_musl, где есть NaiveProxy).
NaiveProxy в podkop-engine-full есть не на всех архитектурах. Он работает на cronet (сетевом стеке Chromium), который sing-box выпускает не для всех процессоров; бинарь с NaiveProxy больше на 11 МБ (x86_64) — 17 МБ (mipsel).
- есть: `aarch64_...
podkop-engine 1.13.21-r13
sing-box 1.13.21 для podkop на OpenWrt, ревизия пакета r13. Неофициальная сборка, не связана с проектом sing-box.
Патчи к v1.13.21:
0001reality: keep X25519MLKEM768 key share, announce client version 26.3.270002utls: firefox -> Firefox 148, safari -> Safari 26.3 (as Xray-core)0003rule-set: start empty when the first download fails, retry, run a hook0004urltest: re-check when the default interface changes0005rule-set: close the connection of a failed download0006dns/udp: one socket per query for servers reached without a proxy0007dns/tls: drop idle pooled connections before servers close them0008dns: fall back to the provider's DNS when a server reached through the WAN fails0009dns: take the provider's DNS from netifd for the output device, ask the fastest0010utls: keep the randomized fingerprint consistent0011dns/fakeip: answer from memory, save to the cache file in the background0012route: a FakeIP address without a record goes by the sniffed domain0013listener: an output queue of 1024 packets for UDP instead of 640014sniff: bound the CRYPTO frames of a QUIC Initial0015route: refuse a direct dial back to the inbound the connection came in on0016transport: a failed HTTP/2 dial frees the handshake write, with its error0017sniff: stop the TLS server handshake once the ClientHello is captured0018dns: retransmit plain UDP queries while no answer has come0019rule-set: bound a remote fetch by stalls, start without a list that does not come0020urltest: test each member every interval, not every other one0021urltest: leave a member when its connections fail, not at the next test0022tls: bound the handshake of a TLS dial0023urltest: download 64 KiB through a member before switching to it0024include: drop the resolved service and DNS transport0025dns/https: reset the transport on a timeout only when no later query was answered0026tls: release the uTLS handshake state after the handshake0027dns: log failed exchanges once per server, with a count every 10 s0028urltest: a timeout that also reports itself closed is the member's failure0029badtls: read a pending alert after data, as crypto/tls does0030tls: give the connections of the TLS dialer the badtls read waiter0031readwait: wait for data without a buffer on QUIC streams and gRPC lite0032box: let the Go memory limit follow the memory the system can still give0033urltest: test a member out of turn when a connection gets no answer0034go.mod: take sing-vmess from the podkop-engine fork (v0.2.8-pdk13.1)0035include: podkop_slim keeps podkop's protocols, podkop_full adds every outbound0036urltest: take the download test URL from the group's download_url0037urltest: fallbacks, taken in their order while no outbound answers0038Backport: fix protocol input validation (upstream 07512b109)0039Backport: close interrupted connections outside the group lock (upstream d2cf9747d)0040go.mod: sing-vmess v0.2.8-pdk13.2, with the upstream input validation fix0041sniff: a panicking sniffer fails its connection, a UDP sniff reads 16 packets0042log: format entries for the Clash API only while its logs are read0043clashapi: a failed listen of the external controller does not fail the start0044rule-set: collect garbage after a load only, log repeated failures sparingly0045xhttp: add the client of Xray's XHTTP transport0046xhttp: tests for options, configuration errors, the download leg and HTTP/3; refuse VLESS flow over xhttp0047xhttp: a small default request size for uploads carried in headers or cookies0048xhttp: cap the frame size the HTTP/2 client writes, wait for data on a small probe, retire idle pooled connections0049xhttp: test the backoff against a server that resets every upload0050xhttp: do not cancel packet-up uploads with their session0051xhttp: BBR congestion control over HTTP/3, as Xray0052xhttp: fixes from the review0053tools: add decode-link, share links to outbounds0054tools decode-link: forms of links found in the wild0055xhttp: an oversized request no longer takes the connection down0056xhttp: data written before a close is sent0057xhttp: the backoff holds back connections, not sessions0058xhttp: a graceful GOAWAY is not a failure of the server0059xhttp: HTTP/3 takes another connection when one is out of streams0060xhttp: no post interval for a range from zero; tests for rotation and deadlines0061xhttp: no time limit on an upload a watched connection carries0062xhttp: fixes from the second review0063tools decode-link: fixes from the review0064tools decode-link: do not wrap a nil error0065tools decode-link: one link, and an exit status scripts can tell apart0066version: list the features of this build0067xhttp: Close resets the transport instead of ending it0068v2ray: state and test that Close of a client transport is a reset0069xhttp: browser versions survive a clock that was never set0070xhttp: refuse an uplink_http_method that is not a token0071xhttp: one check of the options, and a download server needs its port0072dns: test the decisions of the provider DNS fallback0073dns: count a failure of a server once per event, and only for names the provider resolved0074dns: forget the state of the provider fallback of every server on a network reset0075dns: read the provider's servers again after a miss at most once in 30 s0076dns: use slices.Equal and slices.Contains for the provider's servers0077dns/fakeip: answer new names from memory while the cache file cannot be written0078dns/fakeip: tell the loop to stop before the store refuses saves0079route: log a connection without a fakeip record as a warning that says why0080route: count the refusals of a loop to the inbound instead of logging each0081sniff: log the stack of a panicking sniffer once a minute, not per connection0082tls: name the uTLS fingerprints REALITY cannot use0083tls: do not rebuild the Client Hello after the handshake0084urltest: check the download URL of the environment at start0085rule-set: report how the recovered hook ended0086go.mod: golang.org/x/net v0.57.0, with x/crypto, x/text and x/sys, as the 1.14 line0087rule-set: read and drop the rules of a local set under its lock0088rule-set: refuse what cannot be a rule-set before reading it, say what came0089rule-set: download as an external connection0090urltest: keep the test results through a network pause, test again after a busy round0091urltest: one error for a failed dial, naming the member0092clashapi: drop the sniffer state from a tracker's metadata0093tls: make the uTLS hello of chrome, edge, ios, qq, 360 and android from its specification0094tls: spoof and spoof_method, the route options tls_spoof and tls_spoof_method (from sing-box 1.14)0095tlsspoof: send the forged ClientHello the way the connection goes, and nothing else0096reality: take the tls spoof options0097tls: go on with another uTLS fingerprint when the ClientHello gets no acknowledgment0098vless: warn of a flow over a transport it does not work over0099decode-link: build the outbound to validate it, refuse by a table of reasons0100decode-link: Shadowsocks, SOCKS, Hysteria 2, TUIC, VMess, HTTP, Hysteria, AnyTLS and NaiveProxy links0101decode-link: options of sing-box by their paths, and what a link may not set0102decode-link: what the links of Marzban and Remnawave showed0103decode-link: what the fuzzer and the comparison with podkop's shell decoder showed0104urltest: a dial this host's network refused waits for the network monitor0105vmess: the security auto is not zero under TLS0106reality: refuse a short_id longer than it can be0107tlsfragment: do not hold the socket while waiting for an acknowledgment0108tlsfragment: a server name with an empty label0109tls: fragment the ClientHello with tls.fragment alone (from sing-box 1.14)0110tlsspoof: what the review of the forged ClientHello showed0111route: apply tls_spoof of a bypass action0112tls: fingerprint fallback, what two reviews and the stands showed0113urltest: failures across a change of the network, a monitor that sees no route0114rule-set: one plain line of what the server said0115vless: warn about a flow over the quic transport too0116decode-link: what the stand against real servers and two reviews showed0117clashapi: do not write to the record of a connection while it is listed0118route: do not leave a packet of a new NAT session behind its DNS handler
Теги сборки: with_quic,with_utls,with_clash_api,podkop_slim. Go 1.26.8. sing-box version → 1.13.21-pdk-r13.
Два пакета, ставится один из них:
podkop-engine— то, что использует podkop: входы tproxy, direct, mixed; выходы direct, socks, shadowsocks, trojan, vless, hysteria2, tuic, selector, urltest. Остальные типы в «Outbound Config» отвергаются с подсказкой поставитьpodkop-engine-full.podkop-engine-full— то же плюс все остальные выходы: http, vmess, snell (1.14), tor (нужен пакет tor), ssh, shadowtls, anytls, hysteria и NaiveProxy (кроме архитектур ниже). Теги — те же плюсpodkop_full(иwith_naive_outbound,with_musl, где есть NaiveProxy).
NaiveProxy в podkop-engine-full есть не на всех архитектурах. Он работает на cronet (сетевом стеке Chromium), который sing-box выпускает не для всех процессоров; бинарь с NaiveProxy больше на 11 МБ (x86_64) — 17 МБ (mipsel).
- есть:
aarch64_cortex-a53aarch64_cortex-a72aarch64_cortex-a76`aarch64...
podkop-engine 1.14.2-r12
sing-box 1.14.2 для podkop на OpenWrt, ревизия пакета r12. Неофициальная сборка, не связана с проектом sing-box.
Патчи к v1.14.2:
0001reality: keep X25519MLKEM768 key share, announce client version 26.3.270002utls: firefox -> Firefox 148, safari -> Safari 26.3 (as Xray-core)0003include: podkop_slim build tag drops snell and the API service0004rule-set: start empty when the first download fails, retry, run a hook0005dns/udp: one socket per query for servers reached without a proxy0006dns/transport: cap queries in flight on a pipelined TCP/TLS connection0007dns: fall back to the provider's DNS when a server reached through the WAN fails0008route: answer DNS hijacked from a NAT session from a handler0009dns: take the provider's DNS from netifd for the output device, ask the fastest0010utls: keep the randomized fingerprint consistent0011dns/fakeip: answer from memory, save to the cache file in the background0012route: exchange DNS of a NAT session off the reading loop0013route: a FakeIP address without a record goes by the sniffed domain0014listener: an output queue of 1024 packets for UDP instead of 640015sniff: bound the CRYPTO frames of a QUIC Initial0016route: refuse a direct dial back to the inbound the connection came in on0017transport: a failed HTTP/2 dial frees the handshake write, with its error0018sniff: stop the TLS server handshake once the ClientHello is captured0019dns: retransmit plain UDP queries while no answer has come0020rule-set: bound a remote fetch by stalls, start without a list that does not come0021urltest: test each member every interval, not every other one0022urltest: leave a member when its connections fail, not at the next test0023urltest: download 64 KiB through a member before switching to it0024include: drop the resolved service and DNS transport0025dns/https: reset the transport on a timeout only when no later query was answered0026tls: release the uTLS handshake state after the handshake0027dns: log failed exchanges once per server, with a count every 10 s0028urltest: a timeout that also reports itself closed is the member's failure0029badtls: read a pending alert after data, as crypto/tls does0030tls: give the connections of the TLS dialer the badtls read waiter0031readwait: wait for data without a buffer on QUIC streams and gRPC lite0032box: let the Go memory limit follow the memory the system can still give0033urltest: test a member out of turn when a connection gets no answer0034go.mod: take sing-vmess from the podkop-engine fork (v0.2.8-pdk.1)0035include: podkop_slim keeps podkop's protocols, podkop_full adds every outbound0036urltest: take the download test URL from the group's download_url0037urltest: fallbacks, taken in their order while no outbound answers0038Backport: fix protocol input validation (upstream 07512b109)0039Backport: close interrupted connections outside the group lock (upstream d2cf9747d)0040go.mod: sing-vmess v0.2.8-pdk.2, with the upstream input validation fix0041sniff: a panicking sniffer fails its connection, a UDP sniff reads 16 packets0042urltest: the Clash API's delay test does not wait for nested selections0043log: format entries for the Clash API only while its logs are read0044clashapi: a failed listen of the external controller does not fail the start0045rule-set: collect garbage after a load only, log repeated failures sparingly0046xhttp: add the client of Xray's XHTTP transport0047xhttp: tests for options, configuration errors, the download leg and HTTP/3; refuse VLESS flow over xhttp0048xhttp: a small default request size for uploads carried in headers or cookies0049xhttp: cap the frame size the HTTP/2 client writes, wait for data on a small probe, retire idle pooled connections0050xhttp: test the backoff against a server that resets every upload0051xhttp: do not cancel packet-up uploads with their session0052xhttp: the transport in the option schema0053xhttp: BBR congestion control and the Chrome QUIC profile over HTTP/3, as Xray0054xhttp: fixes from the review0055tools: add decode-link, share links to outbounds0056tools decode-link: forms of links found in the wild0057xhttp: an oversized request no longer takes the connection down0058xhttp: data written before a close is sent0059xhttp: the backoff holds back connections, not sessions0060xhttp: a graceful GOAWAY is not a failure of the server0061xhttp: HTTP/3 takes another connection when one is out of streams0062xhttp: no post interval for a range from zero; tests for rotation and deadlines0063xhttp: no time limit on an upload a watched connection carries0064xhttp: fixes from the second review0065tools decode-link: fixes from the review0066tools decode-link: do not wrap a nil error0067tools decode-link: one link, and an exit status scripts can tell apart0068version: list the features of this build0069xhttp: Close resets the transport instead of ending it0070v2ray: state and test that Close of a client transport is a reset0071xhttp: browser versions survive a clock that was never set0072xhttp: refuse an uplink_http_method that is not a token0073xhttp: one check of the options, and a download server needs its port0074dns: test the decisions of the provider DNS fallback0075dns: count a failure of a server once per event, and only for names the provider resolved0076dns: forget the state of the provider fallback of every server on a network reset0077dns: read the provider's servers again after a miss at most once in 30 s0078dns: take the first query to a server off the goroutine that reads client queries0079dns: use slices.Equal and slices.Contains for the provider's servers0080dns/fakeip: answer new names from memory while the cache file cannot be written0081dns/fakeip: tell the loop to stop before the store refuses saves0082route: log a connection without a fakeip record as a warning that says why0083route: count the refusals of a loop to the inbound instead of logging each0084sniff: log the stack of a panicking sniffer once a minute, not per connection0085tls: name the uTLS fingerprints REALITY cannot use0086tls: do not rebuild the Client Hello after the handshake0087urltest: check the download URL of the environment at start0088rule-set: report how the recovered hook ended
Теги сборки: with_quic,with_utls,with_clash_api,podkop_slim. Go 1.26.8. sing-box version → 1.14.2-pdk-r12.
Два пакета, ставится один из них:
podkop-engine— то, что использует podkop: входы tproxy, direct, mixed; выходы direct, socks, shadowsocks, trojan, vless, hysteria2, tuic, selector, urltest. Остальные типы в «Outbound Config» отвергаются с подсказкой поставитьpodkop-engine-full.podkop-engine-full— то же плюс все остальные выходы: http, vmess, snell (1.14), tor (нужен пакет tor), ssh, shadowtls, anytls, hysteria и NaiveProxy (кроме архитектур ниже). Теги — те же плюсpodkop_full(иwith_naive_outbound,with_musl, где есть NaiveProxy).
NaiveProxy в podkop-engine-full есть не на всех архитектурах. Он работает на cronet (сетевом стеке Chromium), который sing-box выпускает не для всех процессоров; бинарь с NaiveProxy больше на 11 МБ (x86_64) — 17 МБ (mipsel).
- есть:
aarch64_cortex-a53aarch64_cortex-a72aarch64_cortex-a76aarch64_genericarm_cortex-a15_neon-vfpv4arm_cortex-a5_vfpv4arm_cortex-a7_neon-vfpv4arm_cortex-a7_vfpv4arm_cortex-a8_vfpv3arm_cortex-a9_neonarm_cortex-a9_vfpv3-d16i386_pentium4loongarch64_genericmipsel_24kcmipsel_74kcriscv64_genericx86_64 - нет:
arm_arm1176jzf-s_vfparm_arm926ej-sarm_cortex-a7arm_cortex-a9arm_fa526arm_xscalei386_pentium-mmxmips64_mips64r2mips64_octeonplusmips64el_mips64r2mips_24kcmips_4kecmips_mips32mipsel_24kc_24kfmipsel_mips32riscv64_riscv64
Причины: mips big-endian и mips64 (cronet для них нет), armv5/armv6 и arm без FPU (cronet собран под ARMv7 с VFP), mipsel_24kc_24kf (плавающая точка в железе, cronet — soft-float), mipsel_mips32 (cronet собран под MIPS32r2), i386_pentium-mmx (нет SSE2), riscv64_riscv64 (sing-box выпускает cronet только для riscv64_generic). На этих архитектурах остальные протоколы podkop-engine-full работают, а выход naive отвечает naive outbound is not included in this build.
Установка (<pkgarch> — opkg print-architecture / apk --print-arch; подробнее — docs/INSTALL.md):
OpenWrt 24.10 и старше (opkg):
wget -O /tmp/pe.ipk https://github.com/FiyeroT/podkop-engine/releases/download/v1.14.2-r12/podkop-engine_1.14.2-r12_openwrt_<pkgarch>.ipk # podkop-engine-full: podkop-engine-full_1.14.2-r12_openwrt_<pkgarch>.ipk
opkg remove --force-depends sing-box sing-box-tiny 2>/dev/null; opkg install /tmp/pe.ipkOpenWrt 25.12 и snapshot (apk):
wget -O /tmp/pe.apk https://github.com/FiyeroT/podkop-engine/releases/download/v1.14.2-r12/podkop-engine_1.14.2-r12_openwrt_<pkgarch>.apk # podkop-engine-full: podkop-engine-full_1.14.2-r12_openwrt_<pkgarch>.apk
apk add --allow-untrusted /tmp/pe.apkАрхитектуры (31 ipk, 31 apk): aarch64_cortex-a53 aarch64_cortex-a72 aarch64_cortex-a76 aarch64_generic arm_arm1176jzf-s_vfp arm_arm926ej-s arm_cortex-a15_neon-vfpv4 arm_cortex-a5_vfpv4 arm_cortex-a7 arm_cortex-a7_neon-vfpv4 arm_cortex-a7_vfpv4 arm_cortex-a8_vfpv3 arm_cortex-a9 arm_cortex-a9_neon arm_cortex-a9_vfpv3-d16 arm_fa526 arm_xscale i386_pentium-mmx i386_pentium4 loongarch64_generic mips64_mips...
podkop-engine 1.13.21-r12
sing-box 1.13.21 для podkop на OpenWrt, ревизия пакета r12. Неофициальная сборка, не связана с проектом sing-box.
Патчи к v1.13.21:
0001reality: keep X25519MLKEM768 key share, announce client version 26.3.270002utls: firefox -> Firefox 148, safari -> Safari 26.3 (as Xray-core)0003rule-set: start empty when the first download fails, retry, run a hook0004urltest: re-check when the default interface changes0005rule-set: close the connection of a failed download0006dns/udp: one socket per query for servers reached without a proxy0007dns/tls: drop idle pooled connections before servers close them0008dns: fall back to the provider's DNS when a server reached through the WAN fails0009dns: take the provider's DNS from netifd for the output device, ask the fastest0010utls: keep the randomized fingerprint consistent0011dns/fakeip: answer from memory, save to the cache file in the background0012route: a FakeIP address without a record goes by the sniffed domain0013listener: an output queue of 1024 packets for UDP instead of 640014sniff: bound the CRYPTO frames of a QUIC Initial0015route: refuse a direct dial back to the inbound the connection came in on0016transport: a failed HTTP/2 dial frees the handshake write, with its error0017sniff: stop the TLS server handshake once the ClientHello is captured0018dns: retransmit plain UDP queries while no answer has come0019rule-set: bound a remote fetch by stalls, start without a list that does not come0020urltest: test each member every interval, not every other one0021urltest: leave a member when its connections fail, not at the next test0022tls: bound the handshake of a TLS dial0023urltest: download 64 KiB through a member before switching to it0024include: drop the resolved service and DNS transport0025dns/https: reset the transport on a timeout only when no later query was answered0026tls: release the uTLS handshake state after the handshake0027dns: log failed exchanges once per server, with a count every 10 s0028urltest: a timeout that also reports itself closed is the member's failure0029badtls: read a pending alert after data, as crypto/tls does0030tls: give the connections of the TLS dialer the badtls read waiter0031readwait: wait for data without a buffer on QUIC streams and gRPC lite0032box: let the Go memory limit follow the memory the system can still give0033urltest: test a member out of turn when a connection gets no answer0034go.mod: take sing-vmess from the podkop-engine fork (v0.2.8-pdk13.1)0035include: podkop_slim keeps podkop's protocols, podkop_full adds every outbound0036urltest: take the download test URL from the group's download_url0037urltest: fallbacks, taken in their order while no outbound answers0038Backport: fix protocol input validation (upstream 07512b109)0039Backport: close interrupted connections outside the group lock (upstream d2cf9747d)0040go.mod: sing-vmess v0.2.8-pdk13.2, with the upstream input validation fix0041sniff: a panicking sniffer fails its connection, a UDP sniff reads 16 packets0042log: format entries for the Clash API only while its logs are read0043clashapi: a failed listen of the external controller does not fail the start0044rule-set: collect garbage after a load only, log repeated failures sparingly0045xhttp: add the client of Xray's XHTTP transport0046xhttp: tests for options, configuration errors, the download leg and HTTP/3; refuse VLESS flow over xhttp0047xhttp: a small default request size for uploads carried in headers or cookies0048xhttp: cap the frame size the HTTP/2 client writes, wait for data on a small probe, retire idle pooled connections0049xhttp: test the backoff against a server that resets every upload0050xhttp: do not cancel packet-up uploads with their session0051xhttp: BBR congestion control over HTTP/3, as Xray0052xhttp: fixes from the review0053tools: add decode-link, share links to outbounds0054tools decode-link: forms of links found in the wild0055xhttp: an oversized request no longer takes the connection down0056xhttp: data written before a close is sent0057xhttp: the backoff holds back connections, not sessions0058xhttp: a graceful GOAWAY is not a failure of the server0059xhttp: HTTP/3 takes another connection when one is out of streams0060xhttp: no post interval for a range from zero; tests for rotation and deadlines0061xhttp: no time limit on an upload a watched connection carries0062xhttp: fixes from the second review0063tools decode-link: fixes from the review0064tools decode-link: do not wrap a nil error0065tools decode-link: one link, and an exit status scripts can tell apart0066version: list the features of this build0067xhttp: Close resets the transport instead of ending it0068v2ray: state and test that Close of a client transport is a reset0069xhttp: browser versions survive a clock that was never set0070xhttp: refuse an uplink_http_method that is not a token0071xhttp: one check of the options, and a download server needs its port0072dns: test the decisions of the provider DNS fallback0073dns: count a failure of a server once per event, and only for names the provider resolved0074dns: forget the state of the provider fallback of every server on a network reset0075dns: read the provider's servers again after a miss at most once in 30 s0076dns: use slices.Equal and slices.Contains for the provider's servers0077dns/fakeip: answer new names from memory while the cache file cannot be written0078dns/fakeip: tell the loop to stop before the store refuses saves0079route: log a connection without a fakeip record as a warning that says why0080route: count the refusals of a loop to the inbound instead of logging each0081sniff: log the stack of a panicking sniffer once a minute, not per connection0082tls: name the uTLS fingerprints REALITY cannot use0083tls: do not rebuild the Client Hello after the handshake0084urltest: check the download URL of the environment at start0085rule-set: report how the recovered hook ended0086go.mod: golang.org/x/net v0.57.0, with x/crypto, x/text and x/sys, as the 1.14 line
Теги сборки: with_quic,with_utls,with_clash_api,podkop_slim. Go 1.26.8. sing-box version → 1.13.21-pdk-r12.
Два пакета, ставится один из них:
podkop-engine— то, что использует podkop: входы tproxy, direct, mixed; выходы direct, socks, shadowsocks, trojan, vless, hysteria2, tuic, selector, urltest. Остальные типы в «Outbound Config» отвергаются с подсказкой поставитьpodkop-engine-full.podkop-engine-full— то же плюс все остальные выходы: http, vmess, snell (1.14), tor (нужен пакет tor), ssh, shadowtls, anytls, hysteria и NaiveProxy (кроме архитектур ниже). Теги — те же плюсpodkop_full(иwith_naive_outbound,with_musl, где есть NaiveProxy).
NaiveProxy в podkop-engine-full есть не на всех архитектурах. Он работает на cronet (сетевом стеке Chromium), который sing-box выпускает не для всех процессоров; бинарь с NaiveProxy больше на 11 МБ (x86_64) — 17 МБ (mipsel).
- есть:
aarch64_cortex-a53aarch64_cortex-a72aarch64_cortex-a76aarch64_genericarm_cortex-a15_neon-vfpv4arm_cortex-a5_vfpv4arm_cortex-a7_neon-vfpv4arm_cortex-a7_vfpv4arm_cortex-a8_vfpv3arm_cortex-a9_neonarm_cortex-a9_vfpv3-d16i386_pentium4loongarch64_genericmipsel_24kcmipsel_74kcriscv64_genericx86_64 - нет:
arm_arm1176jzf-s_vfparm_arm926ej-sarm_cortex-a7arm_cortex-a9arm_fa526arm_xscalei386_pentium-mmxmips64_mips64r2mips64_octeonplusmips64el_mips64r2mips_24kcmips_4kecmips_mips32mipsel_24kc_24kfmipsel_mips32riscv64_riscv64
Причины: mips big-endian и mips64 (cronet для них нет), armv5/armv6 и arm без FPU (cronet собран под ARMv7 с VFP), mipsel_24kc_24kf (плавающая точка в железе, cronet — soft-float), mipsel_mips32 (cronet собран под MIPS32r2), i386_pentium-mmx (нет SSE2), riscv64_riscv64 (sing-box выпускает cronet только для riscv64_generic). На этих архитектурах остальные протоколы podkop-engine-full работают, а выход naive отвечает naive outbound is not included in this build.
Установка (<pkgarch> — opkg print-architecture / apk --print-arch; подробнее — docs/INSTALL.md):
OpenWrt 24.10 и старше (opkg):
wget -O /tmp/pe.ipk https://github.com/FiyeroT/podkop-engine/releases/download/v1.13.21-r12/podkop-engine_1.13.21-r12_openwrt_<pkgarch>.ipk # podkop-engine-full: podkop-engine-full_1.13.21-r12_openwrt_<pkgarch>.ipk
opkg remove --force-depends sing-box sing-box-tiny 2>/dev/null; opkg install /tmp/pe.ipkOpenWrt 25.12 и snapshot (apk):
wget -O /tmp/pe.apk https://github.com/FiyeroT/podkop-engine/releases/download/v1.13.21-r12/podkop-engine_1.13.21-r12_openwrt_<pkgarch>.apk # podkop-engine-full: podkop-engine-full_1.13.21-r12_openwrt_<pkgarch>.apk
apk add --allow-untrusted /tmp/pe.apkАрхитектуры (31 ipk, 31 apk): aarch64_cortex-a53 aarch64_cortex-a72 aarch64_cortex-a76 aarch64_generic arm_arm1176jzf-s_vfp arm_arm926ej-s arm_cortex-a15_neon-vfpv4 arm_cortex-a5_vfpv4 arm_cortex-a7 arm_cortex-a7_neon-vfpv4 arm_cortex-a7_vfpv4 arm_cortex-a8_vfpv3 arm_cortex-a9 arm_cortex-a9_neon arm_cortex-a9_vfpv3-d16 arm_fa526 arm_xscale i386_pentium-mmx i386_pentium4 loongarch64_generic mips64_mips64r2 mips64_octeonplus mips64el_mips64r2 mips_24kc mips_4kec mips_mips32 mipsel_24kc mipsel_24kc_24kf mipsel_74kc mipsel_mips32 riscv64_generic riscv64_riscv64 x86_64
Совместимость: как Xr...
podkop-engine 1.14.2-r11
sing-box 1.14.2 для podkop на OpenWrt, ревизия пакета r11. Неофициальная сборка, не связана с проектом sing-box.
Патчи к v1.14.2:
0001reality: keep X25519MLKEM768 key share, announce client version 26.3.270002utls: firefox -> Firefox 148, safari -> Safari 26.3 (as Xray-core)0003include: podkop_slim build tag drops snell and the API service0004rule-set: start empty when the first download fails, retry, run a hook0005dns/udp: one socket per query for servers reached without a proxy0006dns/transport: cap queries in flight on a pipelined TCP/TLS connection0007dns: fall back to the provider's DNS when a server reached through the WAN fails0008route: answer DNS hijacked from a NAT session from a handler0009dns: take the provider's DNS from netifd for the output device, ask the fastest0010utls: keep the randomized fingerprint consistent0011dns/fakeip: answer from memory, save to the cache file in the background0012route: exchange DNS of a NAT session off the reading loop0013route: a FakeIP address without a record goes by the sniffed domain0014listener: an output queue of 1024 packets for UDP instead of 640015sniff: bound the CRYPTO frames of a QUIC Initial0016route: refuse a direct dial back to the inbound the connection came in on0017transport: a failed HTTP/2 dial frees the handshake write, with its error0018sniff: stop the TLS server handshake once the ClientHello is captured0019dns: retransmit plain UDP queries while no answer has come0020rule-set: bound a remote fetch by stalls, start without a list that does not come0021urltest: test each member every interval, not every other one0022urltest: leave a member when its connections fail, not at the next test0023urltest: download 64 KiB through a member before switching to it0024include: drop the resolved service and DNS transport0025dns/https: reset the transport on a timeout only when no later query was answered0026tls: release the uTLS handshake state after the handshake0027dns: log failed exchanges once per server, with a count every 10 s0028urltest: a timeout that also reports itself closed is the member's failure0029badtls: read a pending alert after data, as crypto/tls does0030tls: give the connections of the TLS dialer the badtls read waiter0031readwait: wait for data without a buffer on QUIC streams and gRPC lite0032box: let the Go memory limit follow the memory the system can still give0033urltest: test a member out of turn when a connection gets no answer0034go.mod: take sing-vmess from the podkop-engine fork (v0.2.8-pdk.1)0035include: podkop_slim keeps podkop's protocols, podkop_full adds every outbound0036urltest: take the download test URL from the group's download_url0037urltest: fallbacks, taken in their order while no outbound answers0038Backport: fix protocol input validation (upstream 07512b109)0039Backport: close interrupted connections outside the group lock (upstream d2cf9747d)0040go.mod: sing-vmess v0.2.8-pdk.2, with the upstream input validation fix0041sniff: a panicking sniffer fails its connection, a UDP sniff reads 16 packets0042urltest: the Clash API's delay test does not wait for nested selections0043log: format entries for the Clash API only while its logs are read0044clashapi: a failed listen of the external controller does not fail the start0045rule-set: collect garbage after a load only, log repeated failures sparingly0046xhttp: add the client of Xray's XHTTP transport0047xhttp: tests for options, configuration errors, the download leg and HTTP/3; refuse VLESS flow over xhttp0048xhttp: a small default request size for uploads carried in headers or cookies0049xhttp: cap the frame size the HTTP/2 client writes, wait for data on a small probe, retire idle pooled connections0050xhttp: test the backoff against a server that resets every upload0051xhttp: do not cancel packet-up uploads with their session0052xhttp: the transport in the option schema0053xhttp: BBR congestion control and the Chrome QUIC profile over HTTP/3, as Xray0054xhttp: fixes from the review0055tools: add decode-link, share links to outbounds0056tools decode-link: forms of links found in the wild0057xhttp: an oversized request no longer takes the connection down0058xhttp: data written before a close is sent0059xhttp: the backoff holds back connections, not sessions0060xhttp: a graceful GOAWAY is not a failure of the server0061xhttp: HTTP/3 takes another connection when one is out of streams0062xhttp: no post interval for a range from zero; tests for rotation and deadlines0063xhttp: no time limit on an upload a watched connection carries0064xhttp: fixes from the second review0065tools decode-link: fixes from the review0066tools decode-link: do not wrap a nil error0067tools decode-link: one link, and an exit status scripts can tell apart0068version: list the features of this build
Теги сборки: with_quic,with_utls,with_clash_api,podkop_slim. Go 1.26.8. sing-box version → 1.14.2-pdk-r11.
Два пакета, ставится один из них:
podkop-engine— то, что использует podkop: входы tproxy, direct, mixed; выходы direct, socks, shadowsocks, trojan, vless, hysteria2, tuic, selector, urltest. Остальные типы в «Outbound Config» отвергаются с подсказкой поставитьpodkop-engine-full.podkop-engine-full— то же плюс все остальные выходы: http, vmess, snell (1.14), tor (нужен пакет tor), ssh, shadowtls, anytls, hysteria и NaiveProxy (кроме архитектур ниже). Теги — те же плюсpodkop_full(иwith_naive_outbound,with_musl, где есть NaiveProxy).
NaiveProxy в podkop-engine-full есть не на всех архитектурах. Он работает на cronet (сетевом стеке Chromium), который sing-box выпускает не для всех процессоров; бинарь с NaiveProxy больше на 11 МБ (x86_64) — 17 МБ (mipsel).
- есть:
aarch64_cortex-a53aarch64_cortex-a72aarch64_cortex-a76aarch64_genericarm_cortex-a15_neon-vfpv4arm_cortex-a5_vfpv4arm_cortex-a7_neon-vfpv4arm_cortex-a7_vfpv4arm_cortex-a8_vfpv3arm_cortex-a9_neonarm_cortex-a9_vfpv3-d16i386_pentium4loongarch64_genericmipsel_24kcmipsel_74kcriscv64_genericx86_64 - нет:
arm_arm1176jzf-s_vfparm_arm926ej-sarm_cortex-a7arm_cortex-a9arm_fa526arm_xscalei386_pentium-mmxmips64_mips64r2mips64_octeonplusmips64el_mips64r2mips_24kcmips_4kecmips_mips32mipsel_24kc_24kfmipsel_mips32riscv64_riscv64
Причины: mips big-endian и mips64 (cronet для них нет), armv5/armv6 и arm без FPU (cronet собран под ARMv7 с VFP), mipsel_24kc_24kf (плавающая точка в железе, cronet — soft-float), mipsel_mips32 (cronet собран под MIPS32r2), i386_pentium-mmx (нет SSE2), riscv64_riscv64 (sing-box выпускает cronet только для riscv64_generic). На этих архитектурах остальные протоколы podkop-engine-full работают, а выход naive отвечает naive outbound is not included in this build.
Установка (<pkgarch> — opkg print-architecture / apk --print-arch; подробнее — docs/INSTALL.md):
OpenWrt 24.10 и старше (opkg):
wget -O /tmp/pe.ipk https://github.com/FiyeroT/podkop-engine/releases/download/v1.14.2-r11/podkop-engine_1.14.2-r11_openwrt_<pkgarch>.ipk # podkop-engine-full: podkop-engine-full_1.14.2-r11_openwrt_<pkgarch>.ipk
opkg remove --force-depends sing-box sing-box-tiny 2>/dev/null; opkg install /tmp/pe.ipkOpenWrt 25.12 и snapshot (apk):
wget -O /tmp/pe.apk https://github.com/FiyeroT/podkop-engine/releases/download/v1.14.2-r11/podkop-engine_1.14.2-r11_openwrt_<pkgarch>.apk # podkop-engine-full: podkop-engine-full_1.14.2-r11_openwrt_<pkgarch>.apk
apk add --allow-untrusted /tmp/pe.apkАрхитектуры (31 ipk, 31 apk): aarch64_cortex-a53 aarch64_cortex-a72 aarch64_cortex-a76 aarch64_generic arm_arm1176jzf-s_vfp arm_arm926ej-s arm_cortex-a15_neon-vfpv4 arm_cortex-a5_vfpv4 arm_cortex-a7 arm_cortex-a7_neon-vfpv4 arm_cortex-a7_vfpv4 arm_cortex-a8_vfpv3 arm_cortex-a9 arm_cortex-a9_neon arm_cortex-a9_vfpv3-d16 arm_fa526 arm_xscale i386_pentium-mmx i386_pentium4 loongarch64_generic mips64_mips64r2 mips64_octeonplus mips64el_mips64r2 mips_24kc mips_4kec mips_mips32 mipsel_24kc mipsel_24kc_24kf mipsel_74kc mipsel_mips32 riscv64_generic riscv64_riscv64 x86_64
Совместимость: как Xray-клиент 26.9.9 (Xray-сервер 25.5.16+; с 24.x–25.4 — только если сайт-прикрытие не выбирает X25519MLKEM768).
podkop-engine 1.13.21-r11
sing-box 1.13.21 для podkop на OpenWrt, ревизия пакета r11. Неофициальная сборка, не связана с проектом sing-box.
Патчи к v1.13.21:
0001reality: keep X25519MLKEM768 key share, announce client version 26.3.270002utls: firefox -> Firefox 148, safari -> Safari 26.3 (as Xray-core)0003rule-set: start empty when the first download fails, retry, run a hook0004urltest: re-check when the default interface changes0005rule-set: close the connection of a failed download0006dns/udp: one socket per query for servers reached without a proxy0007dns/tls: drop idle pooled connections before servers close them0008dns: fall back to the provider's DNS when a server reached through the WAN fails0009dns: take the provider's DNS from netifd for the output device, ask the fastest0010utls: keep the randomized fingerprint consistent0011dns/fakeip: answer from memory, save to the cache file in the background0012route: a FakeIP address without a record goes by the sniffed domain0013listener: an output queue of 1024 packets for UDP instead of 640014sniff: bound the CRYPTO frames of a QUIC Initial0015route: refuse a direct dial back to the inbound the connection came in on0016transport: a failed HTTP/2 dial frees the handshake write, with its error0017sniff: stop the TLS server handshake once the ClientHello is captured0018dns: retransmit plain UDP queries while no answer has come0019rule-set: bound a remote fetch by stalls, start without a list that does not come0020urltest: test each member every interval, not every other one0021urltest: leave a member when its connections fail, not at the next test0022tls: bound the handshake of a TLS dial0023urltest: download 64 KiB through a member before switching to it0024include: drop the resolved service and DNS transport0025dns/https: reset the transport on a timeout only when no later query was answered0026tls: release the uTLS handshake state after the handshake0027dns: log failed exchanges once per server, with a count every 10 s0028urltest: a timeout that also reports itself closed is the member's failure0029badtls: read a pending alert after data, as crypto/tls does0030tls: give the connections of the TLS dialer the badtls read waiter0031readwait: wait for data without a buffer on QUIC streams and gRPC lite0032box: let the Go memory limit follow the memory the system can still give0033urltest: test a member out of turn when a connection gets no answer0034go.mod: take sing-vmess from the podkop-engine fork (v0.2.8-pdk13.1)0035include: podkop_slim keeps podkop's protocols, podkop_full adds every outbound0036urltest: take the download test URL from the group's download_url0037urltest: fallbacks, taken in their order while no outbound answers0038Backport: fix protocol input validation (upstream 07512b109)0039Backport: close interrupted connections outside the group lock (upstream d2cf9747d)0040go.mod: sing-vmess v0.2.8-pdk13.2, with the upstream input validation fix0041sniff: a panicking sniffer fails its connection, a UDP sniff reads 16 packets0042log: format entries for the Clash API only while its logs are read0043clashapi: a failed listen of the external controller does not fail the start0044rule-set: collect garbage after a load only, log repeated failures sparingly0045xhttp: add the client of Xray's XHTTP transport0046xhttp: tests for options, configuration errors, the download leg and HTTP/3; refuse VLESS flow over xhttp0047xhttp: a small default request size for uploads carried in headers or cookies0048xhttp: cap the frame size the HTTP/2 client writes, wait for data on a small probe, retire idle pooled connections0049xhttp: test the backoff against a server that resets every upload0050xhttp: do not cancel packet-up uploads with their session0051xhttp: BBR congestion control over HTTP/3, as Xray0052xhttp: fixes from the review0053tools: add decode-link, share links to outbounds0054tools decode-link: forms of links found in the wild0055xhttp: an oversized request no longer takes the connection down0056xhttp: data written before a close is sent0057xhttp: the backoff holds back connections, not sessions0058xhttp: a graceful GOAWAY is not a failure of the server0059xhttp: HTTP/3 takes another connection when one is out of streams0060xhttp: no post interval for a range from zero; tests for rotation and deadlines0061xhttp: no time limit on an upload a watched connection carries0062xhttp: fixes from the second review0063tools decode-link: fixes from the review0064tools decode-link: do not wrap a nil error0065tools decode-link: one link, and an exit status scripts can tell apart0066version: list the features of this build
Теги сборки: with_quic,with_utls,with_clash_api,podkop_slim. Go 1.26.8. sing-box version → 1.13.21-pdk-r11.
Два пакета, ставится один из них:
podkop-engine— то, что использует podkop: входы tproxy, direct, mixed; выходы direct, socks, shadowsocks, trojan, vless, hysteria2, tuic, selector, urltest. Остальные типы в «Outbound Config» отвергаются с подсказкой поставитьpodkop-engine-full.podkop-engine-full— то же плюс все остальные выходы: http, vmess, snell (1.14), tor (нужен пакет tor), ssh, shadowtls, anytls, hysteria и NaiveProxy (кроме архитектур ниже). Теги — те же плюсpodkop_full(иwith_naive_outbound,with_musl, где есть NaiveProxy).
NaiveProxy в podkop-engine-full есть не на всех архитектурах. Он работает на cronet (сетевом стеке Chromium), который sing-box выпускает не для всех процессоров; бинарь с NaiveProxy больше на 11 МБ (x86_64) — 17 МБ (mipsel).
- есть:
aarch64_cortex-a53aarch64_cortex-a72aarch64_cortex-a76aarch64_genericarm_cortex-a15_neon-vfpv4arm_cortex-a5_vfpv4arm_cortex-a7_neon-vfpv4arm_cortex-a7_vfpv4arm_cortex-a8_vfpv3arm_cortex-a9_neonarm_cortex-a9_vfpv3-d16i386_pentium4loongarch64_genericmipsel_24kcmipsel_74kcriscv64_genericx86_64 - нет:
arm_arm1176jzf-s_vfparm_arm926ej-sarm_cortex-a7arm_cortex-a9arm_fa526arm_xscalei386_pentium-mmxmips64_mips64r2mips64_octeonplusmips64el_mips64r2mips_24kcmips_4kecmips_mips32mipsel_24kc_24kfmipsel_mips32riscv64_riscv64
Причины: mips big-endian и mips64 (cronet для них нет), armv5/armv6 и arm без FPU (cronet собран под ARMv7 с VFP), mipsel_24kc_24kf (плавающая точка в железе, cronet — soft-float), mipsel_mips32 (cronet собран под MIPS32r2), i386_pentium-mmx (нет SSE2), riscv64_riscv64 (sing-box выпускает cronet только для riscv64_generic). На этих архитектурах остальные протоколы podkop-engine-full работают, а выход naive отвечает naive outbound is not included in this build.
Установка (<pkgarch> — opkg print-architecture / apk --print-arch; подробнее — docs/INSTALL.md):
OpenWrt 24.10 и старше (opkg):
wget -O /tmp/pe.ipk https://github.com/FiyeroT/podkop-engine/releases/download/v1.13.21-r11/podkop-engine_1.13.21-r11_openwrt_<pkgarch>.ipk # podkop-engine-full: podkop-engine-full_1.13.21-r11_openwrt_<pkgarch>.ipk
opkg remove --force-depends sing-box sing-box-tiny 2>/dev/null; opkg install /tmp/pe.ipkOpenWrt 25.12 и snapshot (apk):
wget -O /tmp/pe.apk https://github.com/FiyeroT/podkop-engine/releases/download/v1.13.21-r11/podkop-engine_1.13.21-r11_openwrt_<pkgarch>.apk # podkop-engine-full: podkop-engine-full_1.13.21-r11_openwrt_<pkgarch>.apk
apk add --allow-untrusted /tmp/pe.apkАрхитектуры (31 ipk, 31 apk): aarch64_cortex-a53 aarch64_cortex-a72 aarch64_cortex-a76 aarch64_generic arm_arm1176jzf-s_vfp arm_arm926ej-s arm_cortex-a15_neon-vfpv4 arm_cortex-a5_vfpv4 arm_cortex-a7 arm_cortex-a7_neon-vfpv4 arm_cortex-a7_vfpv4 arm_cortex-a8_vfpv3 arm_cortex-a9 arm_cortex-a9_neon arm_cortex-a9_vfpv3-d16 arm_fa526 arm_xscale i386_pentium-mmx i386_pentium4 loongarch64_generic mips64_mips64r2 mips64_octeonplus mips64el_mips64r2 mips_24kc mips_4kec mips_mips32 mipsel_24kc mipsel_24kc_24kf mipsel_74kc mipsel_mips32 riscv64_generic riscv64_riscv64 x86_64
Совместимость: как Xray-клиент 26.9.9 (Xray-сервер 25.5.16+; с 24.x–25.4 — только если сайт-прикрытие не выбирает X25519MLKEM768).