Update On Tue Aug 26 20:39:24 CEST 2025

This commit is contained in:
github-action[bot]
2025-08-26 20:39:24 +02:00
parent 0c4b81ed2f
commit 7518b3dffc
76 changed files with 1043 additions and 834 deletions

View File

@@ -311,6 +311,12 @@ return view.extend({
so.depends('type', 'tuic');
so.modalonly = true;
so = ss.taboption('field_general', form.Value, 'tuic_max_open_streams', _('Max open streams'));
so.datatype = 'uinteger';
so.placeholder = '100';
so.depends('type', 'tuic');
so.modalonly = true;
/* Trojan fields */
so = ss.taboption('field_general', form.Flag, 'trojan_ss_enabled', _('Shadowsocks encrypt'));
so.default = so.disabled;

View File

@@ -1422,6 +1422,10 @@ msgstr ""
msgid "Max download speed"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:314
msgid "Max open streams"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:146
#: htdocs/luci-static/resources/view/fchomo/server.js:122
msgid "Max upload speed"

View File

@@ -1446,6 +1446,10 @@ msgstr "最大失败次数"
msgid "Max download speed"
msgstr "最大下载速度"
#: htdocs/luci-static/resources/view/fchomo/node.js:314
msgid "Max open streams"
msgstr "限制打开流的数量"
#: htdocs/luci-static/resources/view/fchomo/node.js:146
#: htdocs/luci-static/resources/view/fchomo/server.js:122
msgid "Max upload speed"

View File

@@ -1446,6 +1446,10 @@ msgstr "最大失敗次數"
msgid "Max download speed"
msgstr "最大下載速度"
#: htdocs/luci-static/resources/view/fchomo/node.js:314
msgid "Max open streams"
msgstr "限制打開流的數量"
#: htdocs/luci-static/resources/view/fchomo/node.js:146
#: htdocs/luci-static/resources/view/fchomo/server.js:122
msgid "Max upload speed"

View File

@@ -529,8 +529,8 @@ uci.foreach(uciconf, ucinode, (cfg) => {
"reduce-rtt": strToBool(cfg.tuic_reduce_rtt),
"heartbeat-interval": strToInt(cfg.tuic_heartbeat) || null,
"request-timeout": strToInt(cfg.tuic_request_timeout) || null,
// fast-open: true
// max-open-streams: 20
// @"fast-open": true,
"max-open-streams": strToInt(cfg.tuic_max_open_streams) || null,
/* Trojan */
"ss-opts": cfg.trojan_ss_enabled === '1' ? {

View File

@@ -6,8 +6,8 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-passwall
PKG_VERSION:=25.8.5
PKG_RELEASE:=2
PKG_VERSION:=25.8.26
PKG_RELEASE:=1
PKG_CONFIG_DEPENDS:= \
CONFIG_PACKAGE_$(PKG_NAME)_Iptables_Transparent_Proxy \

View File

@@ -155,7 +155,7 @@ start_service() {
if [ "$core_only" = 0 ] && [ "$proxy_enabled" = 1 ]; then
log "Profile" "Checking..."
if [ "$ipv4_dns_hijack" = 1 ] || [ "$ipv6_dns_hijack" = 1 ]; then
if (! yq -M -e 'has("dns") and (.dns | .enable) and (.dns | has("listen"))' "$RUN_PROFILE_PATH"); then
if yq -M -e '(has("dns") and (.dns | .enable) and (.dns | has("listen"))) | not' "$RUN_PROFILE_PATH" > /dev/null 2>&1; then
log "Profile" "Check failed."
log "Profile" "DNS should be enabled and listen should be defined."
log "App" "Exit."
@@ -163,7 +163,7 @@ start_service() {
fi
fi
if [ "$tcp_mode" = "redirect" ]; then
if (! yq -M -e 'has("redir-port")' "$RUN_PROFILE_PATH"); then
if yq -M -e '(has("redir-port")) | not' "$RUN_PROFILE_PATH" > /dev/null 2>&1; then
log "Profile" "Check failed."
log "Profile" "Redirect Port should be defined."
log "App" "Exit."
@@ -171,7 +171,7 @@ start_service() {
fi
fi
if [ "$tcp_mode" = "tproxy" ] || [ "$udp_mode" = "tproxy" ]; then
if (! yq -M -e 'has("tproxy-port")' "$RUN_PROFILE_PATH"); then
if yq -M -e '(has("tproxy-port")) | not' "$RUN_PROFILE_PATH" > /dev/null 2>&1; then
log "Profile" "Check failed."
log "Profile" "TPROXY Port should be defined."
log "App" "Exit."
@@ -179,7 +179,7 @@ start_service() {
fi
fi
if [ "$tcp_mode" = "tun" ] || [ "$udp_mode" = "tun" ]; then
if (! yq -M -e 'has("tun") and (.tun | .enable) and (.tun | has("device"))' "$RUN_PROFILE_PATH"); then
if yq -M -e '(has("tun") and (.tun | .enable) and (.tun | has("device"))) | not' "$RUN_PROFILE_PATH" > /dev/null 2>&1; then
log "Profile" "Check failed."
log "Profile" "TUN should be enabled and device should be defined."
log "App" "Exit."
@@ -191,7 +191,7 @@ start_service() {
# test profile
if [ "$test_profile" = 1 ]; then
log "Profile" "Testing..."
if ($PROG -d "$RUN_DIR" -t >> "$CORE_LOG_PATH" 2>&1); then
if $PROG -d "$RUN_DIR" -t >> "$CORE_LOG_PATH" 2>&1; then
log "Profile" "Test passed."
else
log "Profile" "Test failed."
@@ -284,7 +284,7 @@ service_started() {
if [ "$tun_enable" = 1 ]; then
log "Proxy" "Waiting for tun device online within $tun_timeout seconds..."
while [ "$tun_timeout" -gt 0 ]; do
if (ip -j link show dev "$tun_device" | jsonfilter -q -e "@[@['flags'][@='UP']]" > /dev/null 2>&1); then
if ip -j link show dev "$tun_device" | jsonfilter -q -e "@[@['flags'][@='UP']]" > /dev/null 2>&1; then
log "Proxy" "TUN device is online."
break
fi
@@ -300,7 +300,7 @@ service_started() {
# fix compatible with dockerd
## cgroupfs-mount
### when cgroupfs-mount is installed, cgroupv1 will mounted instead of cgroupv2, we need to create cgroup manually
if (mount | grep -q -w "^cgroup"); then
if mount | grep -q -w "^cgroup"; then
mkdir -p "/sys/fs/cgroup/net_cls/$cgroup_name"
echo "$cgroup_id" > "/sys/fs/cgroup/net_cls/$cgroup_name/net_cls.classid"
cat "$PID_FILE_PATH" > "/sys/fs/cgroup/net_cls/$cgroup_name/cgroup.procs"
@@ -348,7 +348,7 @@ service_started() {
# hijack
utpl -S "$HIJACK_UT" | nft -f -
# check hijack
if (nft list tables | grep -q nikki); then
if nft list tables | grep -q nikki; then
log "Proxy" "Hijack successful."
else
log "Proxy" "Hijack failed."
@@ -405,10 +405,10 @@ cleanup() {
rm "$STARTED_FLAG_PATH" > /dev/null 2>&1
# revert fix compatible with dockerd
## kmod-br-netfilter
if (rm "$BRIDGE_NF_CALL_IPTABLES_FLAG_PATH" > /dev/null 2>&1); then
if rm "$BRIDGE_NF_CALL_IPTABLES_FLAG_PATH" > /dev/null 2>&1; then
sysctl -q -w net.bridge.bridge-nf-call-iptables=1
fi
if (rm "$BRIDGE_NF_CALL_IP6TABLES_FLAG_PATH" > /dev/null 2>&1); then
if rm "$BRIDGE_NF_CALL_IP6TABLES_FLAG_PATH" > /dev/null 2>&1; then
sysctl -q -w net.bridge.bridge-nf-call-ip6tables=1
fi
# delete cron
@@ -443,9 +443,9 @@ update_subscription() {
local subscription_header_tmpfile; subscription_header_tmpfile="$TEMP_DIR/$subscription_section.header"
local subscription_tmpfile; subscription_tmpfile="$TEMP_DIR/$subscription_section.yaml"
local subscription_file; subscription_file="$SUBSCRIPTIONS_DIR/$subscription_section.yaml"
if (curl -s -f -m 120 --connect-timeout 15 --retry 3 -L -X GET -A "$subscription_user_agent" -D "$subscription_header_tmpfile" -o "$subscription_tmpfile" "$subscription_url"); then
if curl -s -f -m 120 --connect-timeout 15 --retry 3 -L -X GET -A "$subscription_user_agent" -D "$subscription_header_tmpfile" -o "$subscription_tmpfile" "$subscription_url"; then
log "Profile" "Subscription download successful."
if (yq -p yaml -o yaml -e 'has("proxies") or has("proxy-providers")' "$subscription_tmpfile" > /dev/null 2>&1); then
if yq -p yaml -o yaml -e 'has("proxies") or has("proxy-providers")' "$subscription_tmpfile" > /dev/null 2>&1; then
log "Profile" "Subscription is valid."
success=1
else