mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-03-09 15:40:03 +00:00
Merge branch 'develop' of https://github.com/Ysurac/openmptcprouter-feeds into test
This commit is contained in:
commit
c488f2f630
98 changed files with 16335 additions and 385 deletions
2
.github/workflows/main.yml
vendored
2
.github/workflows/main.yml
vendored
|
@ -8,7 +8,7 @@ jobs:
|
|||
build:
|
||||
strategy:
|
||||
matrix:
|
||||
OMR_TARGET: [bpi-r1, bpi-r2, bpi-r64, rpi2, rpi4, wrt32x, espressobin, r2s, rpi3, wrt3200acm, x86, x86_64, ubnt-erx, r4s, r7800, rutx, r5s, qnap-301w]
|
||||
OMR_TARGET: [bpi-r1, bpi-r2, bpi-r64, rpi2, rpi4, wrt32x, espressobin, r2s, rpi3, wrt3200acm, x86, x86_64, ubnt-erx, r4s, r7800, rutx12, rutx50, r5s, qnap-301w]
|
||||
OMR_KERNEL: [5.4, 6.1]
|
||||
runs-on: ubuntu-latest
|
||||
continue-on-error: true
|
||||
|
|
|
@ -1,4 +1,10 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2020, 2022 Jeffery To
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
nl="
|
||||
"
|
||||
|
@ -56,7 +62,7 @@ configure() {
|
|||
if [ "$GO_INSTALL_ALL" != 1 ]; then
|
||||
code="$(printf '%s\n' "$files" | grep '\.\(c\|cc\|cpp\|go\|h\|hh\|hpp\|proto\|s\)$')"
|
||||
testdata="$(printf '%s\n' "$files" | grep '/testdata/')"
|
||||
gomod="$(printf '%s\n' "$files" | grep '/go\.\(mod\|sum\)$')"
|
||||
gomod="$(printf '%s\n' "$files" | grep '/go\.\(mod\|sum\|work\)$')"
|
||||
|
||||
for pattern in $GO_INSTALL_EXTRA; do
|
||||
extra="$(printf '%s\n' "$extra"; printf '%s\n' "$files" | grep -e "$pattern")"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (C) 2018, 2020 Jeffery To
|
||||
# Copyright (C) 2018, 2020-2021, 2023 Jeffery To
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
|
@ -60,9 +60,10 @@ define GoCompiler/Default/Install/Bin
|
|||
|
||||
$(call GoCompiler/Default/Install/install-share-data,$(1),$(2),$(3),api)
|
||||
|
||||
$(INSTALL_DATA) -p "$(1)/go.env" "$(2)/lib/go-$(3)/"
|
||||
$(INSTALL_DATA) -p "$(1)/VERSION" "$(2)/lib/go-$(3)/"
|
||||
|
||||
for file in AUTHORS CONTRIBUTING.md CONTRIBUTORS LICENSE PATENTS README.md SECURITY.md; do \
|
||||
for file in CONTRIBUTING.md LICENSE PATENTS README.md SECURITY.md; do \
|
||||
if [ -f "$(1)/$$$$file" ]; then \
|
||||
$(INSTALL_DATA) -p "$(1)/$$$$file" "$(2)/share/go-$(3)/" ; \
|
||||
fi ; \
|
||||
|
|
|
@ -1,47 +0,0 @@
|
|||
#
|
||||
# Copyright (C) 2018 Jeffery To
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=golang-golang-x-crypto
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/golang/crypto.git
|
||||
PKG_SOURCE_VERSION:=4def268fd1a49955bfb3dda92fe3db4f924f2285
|
||||
PKG_SOURCE_DATE:=20190701
|
||||
#PKG_MIRROR_HASH:=80b16b203736ac56883d0610edbc5981eb78f15b7b35d11b5ca639f7c3814214
|
||||
|
||||
PKG_LICENSE:=BSD-3-Clause
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
|
||||
|
||||
PKG_BUILD_DEPENDS:=golang/host
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
|
||||
GO_PKG:=golang.org/x/crypto
|
||||
GO_PKG_SOURCE_ONLY:=1
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include ../golang-package.mk
|
||||
|
||||
define Package/golang-golang-x-crypto-dev
|
||||
$(call GoPackage/GoSubMenu)
|
||||
TITLE:=Go supplementary cryptography libraries
|
||||
URL:=https://godoc.org/golang.org/x/crypto
|
||||
DEPENDS:=$(GO_ARCH_DEPENDS) \
|
||||
+golang-golang-x-net-dev \
|
||||
+golang-golang-x-sys-dev
|
||||
PKGARCH:=all
|
||||
endef
|
||||
|
||||
define Package/golang-golang-x-crypto-dev/description
|
||||
Supplementary Go cryptography libraries.
|
||||
endef
|
||||
|
||||
$(eval $(call GoSrcPackage,golang-golang-x-crypto-dev))
|
||||
$(eval $(call BuildPackage,golang-golang-x-crypto-dev))
|
|
@ -1,58 +0,0 @@
|
|||
#
|
||||
# Copyright (C) 2018 Jeffery To
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=golang-golang-x-net
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/golang/net.git
|
||||
PKG_SOURCE_VERSION:=afe8f62b1d6bbd81f31868121a50b06d8188e1f9
|
||||
PKG_SOURCE_DATE:=20180620
|
||||
PKG_MIRROR_HASH:=9a8bb3bf21ea60121d7e87f1bd1af9effbdcd908f758be99457653172d13eb1e
|
||||
|
||||
PKG_LICENSE:=BSD-3-Clause
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
|
||||
|
||||
PKG_BUILD_DEPENDS:=golang/host
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
|
||||
GO_PKG:=golang.org/x/net
|
||||
# exclude http2/h2i to break circular dependency with golang-golang-x-crypto-dev
|
||||
# since there are no other binaries, can skip compilation
|
||||
GO_PKG_SOURCE_ONLY:=1
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include ../golang-package.mk
|
||||
|
||||
define Package/golang-golang-x-net-dev
|
||||
$(call GoPackage/GoSubMenu)
|
||||
TITLE:=Go supplementary network libraries
|
||||
URL:=https://godoc.org/golang.org/x/net
|
||||
DEPENDS:=$(GO_ARCH_DEPENDS) +golang-golang-x-text-dev
|
||||
PKGARCH:=all
|
||||
endef
|
||||
|
||||
define Package/golang-golang-x-net-dev/description
|
||||
Supplementary Go networking libraries.
|
||||
endef
|
||||
|
||||
# http2/testdata/draft-ietf-httpbis-http2.xml is a non-free document
|
||||
# http2/z_spec_test.go uses http2/testdata/draft-ietf-httpbis-http2.xml
|
||||
define Package/golang-golang-x-net-dev/install
|
||||
$(call GoPackage/Package/Install/Src,$(1))
|
||||
|
||||
rm -f $(1)$(GO_PKG_PATH)/src/$(GO_PKG)/http2/testdata/draft-ietf-httpbis-http2.xml
|
||||
rmdir $(1)$(GO_PKG_PATH)/src/$(GO_PKG)/http2/testdata/
|
||||
|
||||
rm -f $(1)$(GO_PKG_PATH)/src/$(GO_PKG)/http2/z_spec_test.go
|
||||
endef
|
||||
|
||||
$(eval $(call GoSrcPackage,golang-golang-x-net-dev))
|
||||
$(eval $(call BuildPackage,golang-golang-x-net-dev))
|
|
@ -1,46 +0,0 @@
|
|||
#
|
||||
# Copyright (C) 2018 Jeffery To
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=golang-golang-x-sys
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/golang/sys.git
|
||||
PKG_SOURCE_VERSION:=63fc586f45fe72d95d5240a5d5eb95e6503907d3
|
||||
PKG_SOURCE_DATE:=20180621
|
||||
PKG_MIRROR_HASH:=3afe7936fb9fb291ef9b9cfa88f51576cdc19abbd34240232ce284958ac7dbaf
|
||||
|
||||
PKG_LICENSE:=BSD-3-Clause
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
|
||||
|
||||
PKG_BUILD_DEPENDS:=golang/host
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
|
||||
GO_PKG:=golang.org/x/sys
|
||||
GO_PKG_SOURCE_ONLY:=1
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include ../golang-package.mk
|
||||
|
||||
define Package/golang-golang-x-sys-dev
|
||||
$(call GoPackage/GoSubMenu)
|
||||
TITLE:=Go packages for interaction with the OS
|
||||
URL:=https://godoc.org/golang.org/x/sys
|
||||
DEPENDS:=$(GO_ARCH_DEPENDS)
|
||||
PKGARCH:=all
|
||||
endef
|
||||
|
||||
define Package/golang-golang-x-sys-dev/description
|
||||
Supplementary Go packages for low-level interactions with the operating
|
||||
system.
|
||||
endef
|
||||
|
||||
$(eval $(call GoSrcPackage,golang-golang-x-sys-dev))
|
||||
$(eval $(call BuildPackage,golang-golang-x-sys-dev))
|
|
@ -1,47 +0,0 @@
|
|||
#
|
||||
# Copyright (C) 2018 Jeffery To
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=golang-golang-x-text
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/golang/text.git
|
||||
PKG_SOURCE_VERSION:=5cec4b58c438bd98288aeb248bab2c1840713d21
|
||||
PKG_SOURCE_DATE:=20180520
|
||||
PKG_MIRROR_HASH:=6c541a59f32f57afa54a2216045ddf16a077f8fe2e823fbbe77723eca04ddddb
|
||||
|
||||
PKG_LICENSE:=BSD-3-Clause
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
|
||||
|
||||
PKG_BUILD_DEPENDS:=golang/host
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
|
||||
GO_PKG:=golang.org/x/text
|
||||
# exclude gotext (and message/pipeline) to avoid dependency on golang.org/x/tools
|
||||
# since there are no other binaries, can skip compilation
|
||||
GO_PKG_SOURCE_ONLY:=1
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include ../golang-package.mk
|
||||
|
||||
define Package/golang-golang-x-text-dev
|
||||
$(call GoPackage/GoSubMenu)
|
||||
TITLE:=Go text processing support
|
||||
URL:=https://godoc.org/golang.org/x/text
|
||||
DEPENDS:=$(GO_ARCH_DEPENDS)
|
||||
PKGARCH:=all
|
||||
endef
|
||||
|
||||
define Package/golang-golang-x-text-dev/description
|
||||
Supplementary Go libraries for text processing, many involving Unicode.
|
||||
endef
|
||||
|
||||
$(eval $(call GoSrcPackage,golang-golang-x-text-dev))
|
||||
$(eval $(call BuildPackage,golang-golang-x-text-dev))
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (C) 2020 Jeffery To
|
||||
# Copyright (C) 2020, 2022 Jeffery To
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
|
@ -107,10 +107,10 @@ GO_HOST_CUSTOM_LDFLAGS= \
|
|||
GO_HOST_INSTALL_ARGS= \
|
||||
-v \
|
||||
-ldflags "all=$(GO_HOST_DEFAULT_LDFLAGS)" \
|
||||
$(if $(filter $(GO_HOST_ENABLE_PIE),1),-buildmode pie) \
|
||||
$(if $(GO_HOST_GCFLAGS),-gcflags "$(GO_HOST_GCFLAGS)") \
|
||||
$(if $(GO_HOST_CUSTOM_LDFLAGS),-ldflags "$(GO_HOST_CUSTOM_LDFLAGS) $(GO_HOST_DEFAULT_LDFLAGS)") \
|
||||
$(if $(GO_HOST_TAGS),-tags "$(GO_HOST_TAGS)")
|
||||
$(if $(GO_HOST_ENABLE_PIE),-buildmode pie) \
|
||||
$(if $(strip $(GO_HOST_GCFLAGS)),-gcflags "$(GO_HOST_GCFLAGS)") \
|
||||
$(if $(strip $(GO_HOST_CUSTOM_LDFLAGS)),-ldflags "$(GO_HOST_CUSTOM_LDFLAGS) $(GO_HOST_DEFAULT_LDFLAGS)") \
|
||||
$(if $(strip $(GO_HOST_TAGS)),-tags "$(GO_HOST_TAGS)")
|
||||
|
||||
define GoHost/Host/Configure
|
||||
$(GO_GENERAL_BUILD_CONFIG_VARS) \
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (C) 2018-2020 Jeffery To
|
||||
# Copyright (C) 2018-2022 Jeffery To
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
|
@ -32,7 +32,7 @@ include $(GO_INCLUDE_DIR)/golang-values.mk
|
|||
#
|
||||
# * Files in any 'testdata' directory
|
||||
#
|
||||
# * go.mod and go.sum, in any directory
|
||||
# * go.mod, go.sum and go.work, in any directory
|
||||
#
|
||||
# e.g. GO_PKG_INSTALL_EXTRA:=example.toml marshal_test.toml
|
||||
#
|
||||
|
@ -198,9 +198,11 @@ GO_PKG_TARGET_VARS= \
|
|||
GOOS="$(GO_OS)" \
|
||||
GOARCH="$(GO_ARCH)" \
|
||||
GO386="$(GO_386)" \
|
||||
GOAMD64="$(GO_AMD64)" \
|
||||
GOARM="$(GO_ARM)" \
|
||||
GOMIPS="$(GO_MIPS)" \
|
||||
GOMIPS64="$(GO_MIPS64)" \
|
||||
GOPPC64="$(GO_PPC64)" \
|
||||
CGO_ENABLED=1 \
|
||||
CC="$(TARGET_CC)" \
|
||||
CXX="$(TARGET_CXX)" \
|
||||
|
@ -213,7 +215,8 @@ GO_PKG_BUILD_VARS= \
|
|||
GOPATH="$(GO_PKG_BUILD_DIR)" \
|
||||
GOCACHE="$(GO_BUILD_CACHE_DIR)" \
|
||||
GOMODCACHE="$(GO_MOD_CACHE_DIR)" \
|
||||
GOENV=off GOPROXY="direct"
|
||||
GOENV=off GOPROXY="direct" \
|
||||
GOTOOLCHAIN=local
|
||||
|
||||
GO_PKG_VARS= \
|
||||
$(GO_PKG_TARGET_VARS) \
|
||||
|
@ -236,17 +239,18 @@ GO_PKG_CUSTOM_LDFLAGS= \
|
|||
|
||||
GO_PKG_INSTALL_ARGS= \
|
||||
-v \
|
||||
-buildvcs=false \
|
||||
-trimpath \
|
||||
-ldflags "all=$(GO_PKG_DEFAULT_LDFLAGS)" \
|
||||
$(if $(GO_PKG_DEFAULT_GCFLAGS),-gcflags "all=$(GO_PKG_DEFAULT_GCFLAGS)") \
|
||||
$(if $(GO_PKG_DEFAULT_ASMFLAGS),-asmflags "all=$(GO_PKG_DEFAULT_ASMFLAGS)") \
|
||||
$(if $(filter $(GO_PKG_ENABLE_PIE),1),-buildmode pie) \
|
||||
$(if $(strip $(GO_PKG_DEFAULT_GCFLAGS)),-gcflags "all=$(GO_PKG_DEFAULT_GCFLAGS)") \
|
||||
$(if $(strip $(GO_PKG_DEFAULT_ASMFLAGS)),-asmflags "all=$(GO_PKG_DEFAULT_ASMFLAGS)") \
|
||||
$(if $(GO_PKG_ENABLE_PIE),-buildmode pie) \
|
||||
$(if $(filter $(GO_ARCH),arm),-installsuffix "v$(GO_ARM)") \
|
||||
$(if $(filter $(GO_ARCH),mips mipsle),-installsuffix "$(GO_MIPS)") \
|
||||
$(if $(filter $(GO_ARCH),mips64 mips64le),-installsuffix "$(GO_MIPS64)") \
|
||||
$(if $(GO_PKG_GCFLAGS),-gcflags "$(GO_PKG_GCFLAGS) $(GO_PKG_DEFAULT_GCFLAGS)") \
|
||||
$(if $(GO_PKG_CUSTOM_LDFLAGS),-ldflags "$(GO_PKG_CUSTOM_LDFLAGS) $(GO_PKG_DEFAULT_LDFLAGS)") \
|
||||
$(if $(GO_PKG_TAGS),-tags "$(GO_PKG_TAGS)")
|
||||
$(if $(strip $(GO_PKG_GCFLAGS)),-gcflags "$(GO_PKG_GCFLAGS) $(GO_PKG_DEFAULT_GCFLAGS)") \
|
||||
$(if $(strip $(GO_PKG_CUSTOM_LDFLAGS)),-ldflags "$(GO_PKG_CUSTOM_LDFLAGS) $(GO_PKG_DEFAULT_LDFLAGS)") \
|
||||
$(if $(strip $(GO_PKG_TAGS)),-tags "$(GO_PKG_TAGS)")
|
||||
|
||||
define GoPackage/Build/Configure
|
||||
$(GO_GENERAL_BUILD_CONFIG_VARS) \
|
||||
|
@ -314,14 +318,3 @@ define GoSrcPackage
|
|||
Package/$(1)/install=$$(call GoPackage/Package/Install/Src,$$(1))
|
||||
endif
|
||||
endef
|
||||
|
||||
|
||||
# Deprecated variables - these will be removed after the next OpenWrt release
|
||||
GO_PKG_PATH=$(GO_PKG_BUILD_DEPENDS_PATH)
|
||||
GO_PKG_WORK_DIR=$(PKG_BUILD_DIR)/$(GO_PKG_WORK_DIR_NAME)
|
||||
GO_PKG_CACHE_DIR=$(GO_BUILD_CACHE_DIR)
|
||||
GO_PKG_DEFAULT_VARS=$(GO_PKG_VARS)
|
||||
GoPackage/Environment=$(GO_PKG_VARS)
|
||||
GoPackage/is_dir_not_empty=$$$$($(FIND) "$(1)" -maxdepth 0 -type d \! -empty 2>/dev/null)
|
||||
GoPackage/has_binaries=$(call GoPackage/is_dir_not_empty,$(GO_PKG_BUILD_BIN_DIR))
|
||||
# End of deprecated variables
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (C) 2018, 2020 Jeffery To
|
||||
# Copyright (C) 2018-2023 Jeffery To
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
|
@ -29,8 +29,10 @@ unexport \
|
|||
GOOS \
|
||||
GOPATH \
|
||||
GOROOT \
|
||||
GOTOOLCHAIN \
|
||||
GOTMPDIR \
|
||||
GOWORK GOPROXY
|
||||
GOPROXY \
|
||||
GOWORK
|
||||
# Unmodified:
|
||||
# GOINSECURE
|
||||
# GOPRIVATE
|
||||
|
@ -201,7 +203,7 @@ endif
|
|||
|
||||
# Target Go
|
||||
|
||||
GO_ARCH_DEPENDS:=@(aarch64||arm||i386||i686||mips||mips64||mips64el||mipsel||powerpc64||x86_64)
|
||||
GO_ARCH_DEPENDS:=@(aarch64||arm||i386||i686||mips||mips64||mips64el||mipsel||powerpc64||riscv64||x86_64)
|
||||
|
||||
|
||||
# ASLR/PIE
|
||||
|
@ -219,7 +221,7 @@ GO_PIE_SUPPORTED_OS_ARCH:= \
|
|||
\
|
||||
aix_ppc64 \
|
||||
\
|
||||
linux_ppc64le linux_riscv64 linux_s390x
|
||||
linux_loong64 linux_ppc64le linux_riscv64 linux_s390x
|
||||
|
||||
# From https://go.dev/src/cmd/go/internal/work/init.go
|
||||
go_pie_install_suffix=$(if $(filter $(1),aix_ppc64 windows_386 windows_amd64 windows_arm windows_arm64),,shared)
|
||||
|
|
|
@ -17,7 +17,7 @@ config GOLANG_BUILD_CACHE_DIR
|
|||
default ""
|
||||
help
|
||||
Store the Go build cache in this directory.
|
||||
If not set, uses './.go-build'.
|
||||
If not set, uses '$(TMP_DIR)/go-build'.
|
||||
|
||||
config GOLANG_MOD_CACHE_WORLD_READABLE
|
||||
bool "Ensure Go module cache is world-readable"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (C) 2018, 2020 Jeffery To
|
||||
# Copyright (C) 2018-2023 Jeffery To
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
|
@ -7,10 +7,8 @@
|
|||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
#GO_VERSION_MAJOR_MINOR:=1.20
|
||||
#GO_VERSION_PATCH:=3
|
||||
GO_VERSION_MAJOR_MINOR:=1.20
|
||||
GO_VERSION_PATCH:=999
|
||||
GO_VERSION_MAJOR_MINOR:=1.21
|
||||
GO_VERSION_PATCH:=1
|
||||
|
||||
PKG_NAME:=golang
|
||||
PKG_VERSION:=$(GO_VERSION_MAJOR_MINOR)$(if $(GO_VERSION_PATCH),.$(GO_VERSION_PATCH))
|
||||
|
@ -20,14 +18,9 @@ GO_SOURCE_URLS:=https://dl.google.com/go/ \
|
|||
https://mirrors.ustc.edu.cn/golang/ \
|
||||
https://mirrors.nju.edu.cn/golang/
|
||||
|
||||
#PKG_SOURCE:=go$(PKG_VERSION).src.tar.gz
|
||||
#PKG_SOURCE_URL:=$(GO_SOURCE_URLS)
|
||||
#PKG_HASH:=e447b498cde50215c4f7619e5124b0fc4e25fb5d16ea47271c47f278e7aa763a
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/golang/go.git
|
||||
PKG_SOURCE_VERSION:=a5350558e6e2db16bfe09f2ba8104549c6598c46
|
||||
PKG_SOURCE_DATE:=2023-05-05
|
||||
PKG_SOURCE_SUBDIR:=go-$(PKG_VERSION)
|
||||
PKG_SOURCE:=go$(PKG_VERSION).src.tar.gz
|
||||
PKG_SOURCE_URL:=$(GO_SOURCE_URLS)
|
||||
PKG_HASH:=bfa36bf75e9a1e9cbbdb9abcf9d1707e479bd3a07880a8ae3564caee5711cb99
|
||||
|
||||
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
|
||||
PKG_LICENSE:=BSD-3-Clause
|
||||
|
@ -37,7 +30,6 @@ PKG_CPE_ID:=cpe:/a:golang:go
|
|||
PKG_BUILD_DEPENDS:=golang/host
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/go-$(PKG_VERSION)
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
#PKG_USE_MIPS16:=0
|
||||
PKG_BUILD_FLAGS:=no-mips16
|
||||
|
||||
PKG_GO_PREFIX:=/usr
|
||||
|
@ -70,6 +62,7 @@ HOST_GO_VALID_OS_ARCH:= \
|
|||
\
|
||||
aix_ppc64 \
|
||||
js_wasm \
|
||||
wasip1_wasm \
|
||||
\
|
||||
freebsd_riscv64 \
|
||||
\
|
||||
|
@ -108,7 +101,7 @@ include ../golang-compiler.mk
|
|||
include ../golang-package.mk
|
||||
|
||||
PKG_UNPACK:=$(HOST_TAR) -C "$(PKG_BUILD_DIR)" --strip-components=1 -xzf "$(DL_DIR)/$(PKG_SOURCE)"
|
||||
#HOST_UNPACK:=$(HOST_TAR) -C "$(HOST_BUILD_DIR)" --strip-components=1 -xzf "$(DL_DIR)/$(PKG_SOURCE)"
|
||||
HOST_UNPACK:=$(HOST_TAR) -C "$(HOST_BUILD_DIR)" --strip-components=1 -xzf "$(DL_DIR)/$(PKG_SOURCE)"
|
||||
BOOTSTRAP_UNPACK:=$(HOST_TAR) -C "$(BOOTSTRAP_BUILD_DIR)" --strip-components=1 -xzf "$(DL_DIR)/$(BOOTSTRAP_SOURCE)"
|
||||
BOOTSTRAP_1_17_UNPACK:=$(HOST_TAR) -C "$(BOOTSTRAP_1_17_BUILD_DIR)" --strip-components=1 -xzf "$(DL_DIR)/$(BOOTSTRAP_1_17_SOURCE)"
|
||||
|
||||
|
@ -242,13 +235,10 @@ HOST_GO_VARS= \
|
|||
CXX="$(HOSTCXX_NOCACHE)"
|
||||
|
||||
define Host/Configure
|
||||
sed -i 's/1\.21/1.20/g' $(HOST_BUILD_DIR)/src/go.mod
|
||||
sed -i 's/21/20/g' $(HOST_BUILD_DIR)/src/internal/goversion/goversion.go
|
||||
$(call GoCompiler/Bootstrap/CheckHost,$(BOOTSTRAP_GO_VALID_OS_ARCH))
|
||||
$(call GoCompiler/Host/CheckHost,$(HOST_GO_VALID_OS_ARCH))
|
||||
|
||||
mkdir -p "$(GO_BUILD_CACHE_DIR)"
|
||||
echo "go$(PKG_VERSION)" > $(HOST_BUILD_DIR)/VERSION
|
||||
endef
|
||||
|
||||
define Host/Compile
|
||||
|
@ -307,7 +297,7 @@ $(eval $(call GoCompiler/AddProfile,Package,$(PKG_BUILD_DIR),$(PKG_GO_PREFIX),$(
|
|||
PKG_GO_ZBOOTSTRAP_MODS:= \
|
||||
s/defaultGO386 = `[^`]*`/defaultGO386 = `$(or $(GO_386),sse2)`/; \
|
||||
s/defaultGOAMD64 = `[^`]*`/defaultGOAMD64 = `$(or $(GO_AMD64),v1)`/; \
|
||||
s/defaultGOARM = `[^`]*`/defaultGOARM = `$(or $(GO_ARM),5)`/; \
|
||||
s/defaultGOARM = `[^`]*`/defaultGOARM = `$(or $(GO_ARM),7)`/; \
|
||||
s/defaultGOMIPS = `[^`]*`/defaultGOMIPS = `$(or $(GO_MIPS),hardfloat)`/; \
|
||||
s/defaultGOMIPS64 = `[^`]*`/defaultGOMIPS64 = `$(or $(GO_MIPS64),hardfloat)`/; \
|
||||
s/defaultGOPPC64 = `[^`]*`/defaultGOPPC64 = `$(or $(GO_PPC64),power8)`/;
|
||||
|
@ -345,14 +335,12 @@ PKG_GO_INSTALL_ARGS= \
|
|||
$(if $(filter $(GO_PKG_ENABLE_PIE),1),-buildmode pie)
|
||||
|
||||
define Build/Configure
|
||||
sed -i 's/1\.21/1.20/g' $(HOST_BUILD_DIR)/src/go.mod
|
||||
sed -i 's/21/20/g' $(HOST_BUILD_DIR)/src/internal/goversion/goversion.go
|
||||
mkdir -p "$(GO_BUILD_CACHE_DIR)"
|
||||
echo "go$(PKG_VERSION)" > $(PKG_BUILD_DIR)/VERSION
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
@echo "Building target Go first stage"
|
||||
|
||||
$(call GoCompiler/Package/Make, \
|
||||
GOROOT_BOOTSTRAP="$(HOST_GO_ROOT)" \
|
||||
GO_GCC_HELPER_CC="$(HOSTCC)" \
|
||||
|
|
|
@ -1,4 +1,10 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2018, 2020 Jeffery To
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
me=go-gcc-helper
|
||||
name="${0##*/}"
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
--- a/src/net/dial.go 2023-05-06 10:33:54.275030044 +0200
|
||||
+++ b/src/net/dial.go 2023-05-06 10:34:29.218440686 +0200
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
// For the moment, MultiPath TCP is not used by default
|
||||
// See go.dev/issue/56539
|
||||
- defaultMPTCPEnabled = false
|
||||
+ defaultMPTCPEnabled = true
|
||||
)
|
||||
|
||||
// mptcpStatus is a tristate for Multipath TCP, see go.dev/issue/56539
|
5
golang/golang/test.sh
Normal file
5
golang/golang/test.sh
Normal file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/sh
|
||||
|
||||
[ "$1" = golang ] || exit 0
|
||||
|
||||
go version | grep -F " go$PKG_VERSION "
|
|
@ -8,17 +8,19 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=iproute2
|
||||
PKG_VERSION:=6.2.0
|
||||
PKG_VERSION:=6.4.0
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2
|
||||
PKG_HASH:=4d72730200ec5b2aabaa1a2f20553c6748292f065d9a154c7d5e22559df9fd62
|
||||
PKG_HASH:=4c51b8decbc7e4da159ffb066f590cfb93dbf9af7ff86b1647ce42b7c179a272
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PKG_BUILD_DEPENDS:=iptables
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
PKG_CPE_ID:=cpe:/a:iproute2_project:iproute2
|
||||
|
||||
PKG_BUILD_FLAGS:=gc-sections lto
|
||||
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/nls.mk
|
||||
|
@ -171,8 +173,7 @@ define Build/Configure
|
|||
> $(PKG_BUILD_DIR)/include/SNAPSHOT.h
|
||||
endef
|
||||
|
||||
TARGET_CFLAGS += -ffunction-sections -fdata-sections -flto
|
||||
TARGET_LDFLAGS += -Wl,--gc-sections -Wl,--as-needed
|
||||
TARGET_LDFLAGS += -Wl,--as-needed
|
||||
TARGET_CPPFLAGS += -I$(STAGING_DIR)/usr/include/libnl-tiny
|
||||
|
||||
MAKE_FLAGS += \
|
||||
|
|
|
@ -59,7 +59,7 @@ return L.view.extend({
|
|||
o = s.option(form.ListValue, 'family', _('Restrict to address family'));
|
||||
o.value('ipv4ipv6', _('IPv4 and IPv6'));
|
||||
o.value('ipv4', _('IPv4 only'));
|
||||
o.value('ipv4', _('IPv6 only'));
|
||||
o.value('ipv6', _('IPv6 only'));
|
||||
o.default = 'ipv4ipv6';
|
||||
o.modalonly = true
|
||||
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
#!/bin/sh
|
||||
[ -z "$(pgrep -f omr-bypass)" ] && logger -t "firewall.omr-bypass" "reloal omr-bypass rules" && /etc/init.d/omr-bypass reload_rules
|
||||
[ -z "$(pgrep -f omr-bypass)" ] && logger -t "firewall.omr-bypass" "reload omr-bypass rules" && /etc/init.d/omr-bypass reload_rules
|
||||
|
|
|
@ -685,6 +685,59 @@ _intf_rule_v2ray_rules() {
|
|||
fi
|
||||
}
|
||||
|
||||
_intf_rule_xray_rules() {
|
||||
#rule_name=$1
|
||||
#[ "$rule_name" = "ss_rules" ] && rule_name="def"
|
||||
rule_name="def"
|
||||
if [ "$($IPTABLES --wait=40 -t nat -L -n | grep xr_${rule_name}_dst)" != "" ] && [ "$($IPTABLESSAVE 2>/dev/null | grep xr_${rule_name}_dst | grep omr_dst_bypass_$intf)" = "" ]; then
|
||||
$IPTABLESRESTORE -w --wait=60 --noflush <<-EOF
|
||||
*nat
|
||||
-I xr_${rule_name}_dst 1 -m set --match-set omr_dst_bypass_$intf dst -j MARK --set-mark 0x539$count
|
||||
-I xr_${rule_name}_dst 2 -m mark --mark 0x539$count -j RETURN
|
||||
COMMIT
|
||||
EOF
|
||||
fi
|
||||
if [ "$($IPTABLES --wait=40 -t nat -L -n | grep xr_${rule_name}_local_out)" != "" ] && [ "$($IPTABLESSAVE 2>/dev/null | grep xr_${rule_name}_local_out | grep omr_dst_bypass_$intf)" = "" ]; then
|
||||
$IPTABLESRESTORE -w --wait=60 --noflush <<-EOF
|
||||
*nat
|
||||
-I xr_${rule_name}_local_out 1 -m set --match-set omr_dst_bypass_$intf dst -j MARK --set-mark 0x539$count
|
||||
-I xr_${rule_name}_local_out 2 -m mark --mark 0x539$count -j RETURN
|
||||
COMMIT
|
||||
EOF
|
||||
fi
|
||||
if [ "$($IPTABLES --wait=40 -t nat -L -n | grep xr_${rule_name}_pre_src)" != "" ] && [ "$($IPTABLESSAVE 2</dev/null | grep xr_${rule_name}_pre_src | grep omr_dst_bypass_$intf)" = "" ]; then
|
||||
$IPTABLESRESTORE -w --wait=60 --noflush <<-EOF
|
||||
*nat
|
||||
-I xr_${rule_name}_pre_src 1 -m set --match-set omr_dst_bypass_$intf dst -j MARK --set-mark 0x539$count
|
||||
-I xr_${rule_name}_pre_src 2 -m mark --mark 0x539$count -j RETURN
|
||||
COMMIT
|
||||
EOF
|
||||
fi
|
||||
|
||||
|
||||
if [ "$disableipv6" = "0" ]; then
|
||||
if [ "$($IP6TABLESSAVE | grep omr-bypass6 | grep omr6_dst_bypass_$intf)" = "" ]; then
|
||||
$IP6TABLESRESTORE -w --wait=60 --noflush <<-EOF
|
||||
*mangle
|
||||
-I omr-bypass6 1 -m set --match-set omr6_dst_bypass_$intf dst -j MARK --set-mark 0x6539$count
|
||||
COMMIT
|
||||
EOF
|
||||
fi
|
||||
if [ "$($IP6TABLES --wait=40 -t nat -L -n | grep xr6_${rule_name}_pre_src)" != "" ] && [ "$($IP6TABLESSAVE 2>/dev/null | grep xr6 | grep omr6_dst_bypass_$intf)" = "" ]; then
|
||||
$IP6TABLESRESTORE -w --wait=60 --noflush <<-EOF
|
||||
*nat
|
||||
-I xr6_${rule_name}_dst 1 -m set --match-set omr6_dst_bypass_$intf dst -j MARK --set-mark 0x6539$count
|
||||
-I xr6_${rule_name}_dst 2 -m mark --mark 0x6539$count -j RETURN
|
||||
-I xr6_${rule_name}_local_out 1 -m set --match-set omr6_dst_bypass_$intf dst -j MARK --set-mark 0x6539$count
|
||||
-I xr6_${rule_name}_local_out 2 -m mark --mark 0x6539$count -j RETURN
|
||||
-I xr6_${rule_name}_pre_src 1 -m set --match-set omr6_dst_bypass_$intf dst -j MARK --set-mark 0x6539$count
|
||||
-I xr6_${rule_name}_pre_src 2 -m mark --mark 0x6539$count -j RETURN
|
||||
COMMIT
|
||||
EOF
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
_intf_rule() {
|
||||
local intf
|
||||
intf=$(ifstatus "$1" | jsonfilter -q -e '@["l3_device"]')
|
||||
|
@ -740,8 +793,13 @@ _intf_rule() {
|
|||
if [ "$(uci -q get openmptcprouter.settings.proxy)" = "shadowsocks" ]; then
|
||||
config_load shadowsocks-libev
|
||||
config_foreach _intf_rule_ss_rules ss_rules
|
||||
elif [ "$(uci -q get openmptcprouter.settings.proxy)" = "shadowsocks-rust" ]; then
|
||||
config_load shadowsocks-rust
|
||||
config_foreach _intf_rule_ss_rules ss_rules
|
||||
elif [ "$(uci -q get openmptcprouter.settings.proxy)" = "v2ray" ]; then
|
||||
_intf_rule_v2ray_rules
|
||||
elif [ "$(uci -q get openmptcprouter.settings.proxy)" = "xray" ]; then
|
||||
_intf_rule_xray_rules
|
||||
fi
|
||||
|
||||
uci -q set omr-bypass.$intf=interface
|
||||
|
@ -864,6 +922,45 @@ _v2ray_rules_config() {
|
|||
fi
|
||||
}
|
||||
|
||||
_xray_rules_config() {
|
||||
#rule_name=$1
|
||||
#[ "$rule_name" = "ss_rules" ] && rule_name="def"
|
||||
rule_name="def"
|
||||
if [ "$($IPTABLES --wait=40 -t nat -L -n | grep xr_${rule_name}_pre_src)" != "" ] && [ "$($IPTABLES --wait=40 -t nat -L -n | grep omr_dst_bypass_all)" = "" ]; then
|
||||
$IPTABLESRESTORE -w --wait=60 --noflush <<-EOF
|
||||
*nat
|
||||
-I xr_${rule_name}_dst 1 -m set --match-set omr_dst_bypass_all dst -j MARK --set-mark 0x539
|
||||
-I xr_${rule_name}_dst 2 -m mark --mark 0x539 -j RETURN
|
||||
-I xr_${rule_name}_local_out 1 -m set --match-set omr_dst_bypass_all dst -j MARK --set-mark 0x539
|
||||
-I xr_${rule_name}_local_out 2 -m mark --mark 0x539 -j RETURN
|
||||
-I xr_${rule_name}_pre_src 1 -m set --match-set omr_dst_bypass_all dst -j MARK --set-mark 0x539
|
||||
-I xr_${rule_name}_pre_src 2 -m mark --mark 0x539 -j RETURN
|
||||
COMMIT
|
||||
EOF
|
||||
fi
|
||||
if [ "$disableipv6" = "0" ]; then
|
||||
if [ "$($IP6TABLES --wait=40 -t mangle -L -n | grep 'match-set omr6_dst_bypass_all dst MARK set')" = "" ]; then
|
||||
$IP6TABLESRESTORE -w --wait=60 --noflush <<-EOF
|
||||
*mangle
|
||||
-A omr-bypass6 -m set --match-set omr6_dst_bypass_all dst -j MARK --set-mark 0x6539
|
||||
COMMIT
|
||||
EOF
|
||||
fi
|
||||
if [ "$($IP6TABLES --wait=40 -t nat -L -n | grep xr6_${rule_name}_pre_src)" != "" ] && [ "$($IP6TABLES --wait=40 -t nat -L -n | grep omr6_dst_bypass_all)" = "" ]; then
|
||||
$IP6TABLESRESTORE -w --wait=60 --noflush <<-EOF
|
||||
*nat
|
||||
-I xr6_${rule_name}_dst 1 -m set --match-set omr6_dst_bypass_all dst -j MARK --set-mark 0x6539
|
||||
-I xr6_${rule_name}_dst 1 -m mark --mark 0x6539 -j RETURN
|
||||
-I xr6_${rule_name}_local_out 1 -m set --match-set omr6_dst_bypass_all dst -j MARK --set-mark 0x6539
|
||||
-I xr6_${rule_name}_local_out 2 -m mark --mark 0x6539 -j RETURN
|
||||
-I xr6_${rule_name}_pre_src 1 -m set --match-set omr6_dst_bypass_all dst -j MARK --set-mark 0x6539
|
||||
-I xr6_${rule_name}_pre_src 2 -m mark --mark 0x6539 -j RETURN
|
||||
COMMIT
|
||||
EOF
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
boot() {
|
||||
BOOT=1
|
||||
start "$@"
|
||||
|
@ -970,7 +1067,10 @@ start_service() {
|
|||
|
||||
config_load shadowsocks-libev
|
||||
config_foreach _ss_rules_config
|
||||
config_load shadowsocks-rust
|
||||
config_foreach _ss_rules_config
|
||||
_v2ray_rules_config
|
||||
_xray_rules_config
|
||||
|
||||
$IPTABLESSAVE --counters 2>/dev/null | grep -v omr-bypass-dpi | $IPTABLESRESTORE -w --counters 2>/dev/null
|
||||
$IPTABLESRESTORE -w --wait=60 --noflush <<-EOF
|
||||
|
|
|
@ -613,6 +613,7 @@ function wizard_add()
|
|||
ucic:set("openmptcprouter",server,"master","1")
|
||||
ucic:set("openmptcprouter",server,"current","1")
|
||||
ucic:set("openmptcprouter",server,"backup","0")
|
||||
ucic:set("xray","omrout","s_shadowsocks_email",openmptcprouter_vps_username:gsub("%s+", ""))
|
||||
else
|
||||
ucic:set("openmptcprouter",server,"get_config","0")
|
||||
ucic:set("openmptcprouter",server,"master","0")
|
||||
|
@ -669,14 +670,34 @@ function wizard_add()
|
|||
if default_proxy == "shadowsocks" and serversnb > 0 and serversnb > disablednb then
|
||||
--ucic:set("shadowsocks-libev","sss0","disabled","0")
|
||||
ucic:set("v2ray","main","enabled","0")
|
||||
ucic:set("xray","main","enabled","0")
|
||||
ucic:foreach("shadowsocks-libev", "server", function(s)
|
||||
local sectionname = s[".name"]
|
||||
if sectionname:match("^sss.*") and ucic:get("shadowsocks-libev",sectionname,"server") ~= "" then
|
||||
ucic:set("shadowsocks-libev",sectionname,"disabled","0")
|
||||
end
|
||||
end)
|
||||
ucic:foreach("shadowsocks-rust", "server", function(s)
|
||||
local sectionname = s[".name"]
|
||||
ucic:set("shadowsocks-rust",sectionname,"disabled","1")
|
||||
end)
|
||||
elseif default_proxy == "shadowsocks-rust" and serversnb > 0 and serversnb > disablednb then
|
||||
--ucic:set("shadowsocks-libev","sss0","disabled","0")
|
||||
ucic:set("v2ray","main","enabled","0")
|
||||
ucic:set("xray","main","enabled","0")
|
||||
ucic:foreach("shadowsocks-rust", "server", function(s)
|
||||
local sectionname = s[".name"]
|
||||
if sectionname:match("^sss.*") and ucic:get("shadowsocks-rust",sectionname,"server") ~= "" then
|
||||
ucic:set("shadowsocks-rust",sectionname,"disabled","0")
|
||||
end
|
||||
end)
|
||||
ucic:foreach("shadowsocks-libev", "server", function(s)
|
||||
local sectionname = s[".name"]
|
||||
ucic:set("shadowsocks-libev",sectionname,"disabled","1")
|
||||
end)
|
||||
elseif (default_proxy == "v2ray" or default_proxy == "v2ray-vmess" or default_proxy == "v2ray-trojan" or default_proxy == "v2ray-socks") and serversnb > 0 and serversnb > disablednb then
|
||||
--ucic:set("shadowsocks-libev","sss0","disabled","1")
|
||||
ucic:set("xray","main","enabled","0")
|
||||
ucic:set("v2ray","main","enabled","1")
|
||||
if default_proxy == "v2ray" then
|
||||
ucic:set("v2ray","omrout","protocol","vless")
|
||||
|
@ -691,18 +712,51 @@ function wizard_add()
|
|||
local sectionname = s[".name"]
|
||||
ucic:set("shadowsocks-libev",sectionname,"disabled","1")
|
||||
end)
|
||||
else
|
||||
ucic:foreach("shadowsocks-rust", "server", function(s)
|
||||
local sectionname = s[".name"]
|
||||
ucic:set("shadowsocks-rust",sectionname,"disabled","1")
|
||||
end)
|
||||
elseif (default_proxy == "xray" or default_proxy == "xray-vmess" or default_proxy == "xray-trojan" or default_proxy == "xray-shadowsocks" or default_proxy == "xray-socks") and serversnb > 0 and serversnb > disablednb then
|
||||
--ucic:set("shadowsocks-libev","sss0","disabled","1")
|
||||
ucic:set("v2ray","main","enabled","0")
|
||||
ucic:set("xray","main","enabled","1")
|
||||
if default_proxy == "xray" then
|
||||
ucic:set("xray","omrout","protocol","vless")
|
||||
elseif default_proxy == "xray-vmess" then
|
||||
ucic:set("xray","omrout","protocol","vmess")
|
||||
elseif default_proxy == "xray-trojan" then
|
||||
ucic:set("xray","omrout","protocol","trojan")
|
||||
elseif default_proxy == "xray-socks" then
|
||||
ucic:set("xray","omrout","protocol","socks")
|
||||
elseif default_proxy == "xray-shadowsocks" then
|
||||
ucic:set("xray","omrout","protocol","shadowsocks")
|
||||
end
|
||||
ucic:foreach("shadowsocks-libev", "server", function(s)
|
||||
local sectionname = s[".name"]
|
||||
ucic:set("shadowsocks-libev",sectionname,"disabled","1")
|
||||
end)
|
||||
ucic:foreach("shadowsocks-rust", "server", function(s)
|
||||
local sectionname = s[".name"]
|
||||
ucic:set("shadowsocks-rust",sectionname,"disabled","1")
|
||||
end)
|
||||
else
|
||||
--ucic:set("shadowsocks-libev","sss0","disabled","1")
|
||||
ucic:set("v2ray","main","enabled","0")
|
||||
ucic:set("xray","main","enabled","0")
|
||||
ucic:foreach("shadowsocks-libev", "server", function(s)
|
||||
local sectionname = s[".name"]
|
||||
ucic:set("shadowsocks-libev",sectionname,"disabled","1")
|
||||
end)
|
||||
ucic:foreach("shadowsocks-rust", "server", function(s)
|
||||
local sectionname = s[".name"]
|
||||
ucic:set("shadowsocks-rust",sectionname,"disabled","1")
|
||||
end)
|
||||
end
|
||||
ucic:set("openmptcprouter","settings","proxy",default_proxy)
|
||||
ucic:save("openmptcprouter")
|
||||
ucic:save("shadowsocks-libev")
|
||||
ucic:save("v2ray")
|
||||
ucic:save("xray")
|
||||
|
||||
ucic:foreach("shadowsocks-libev","server", function(s)
|
||||
local sectionname = s[".name"]
|
||||
|
@ -744,6 +798,11 @@ function wizard_add()
|
|||
ucic:set("v2ray","omrout","s_vless_address",server_ip)
|
||||
ucic:set("v2ray","omrout","s_trojan_address",server_ip)
|
||||
ucic:set("v2ray","omrout","s_socks_address",server_ip)
|
||||
ucic:set("xray","omrout","s_vmess_address",server_ip)
|
||||
ucic:set("xray","omrout","s_vless_address",server_ip)
|
||||
ucic:set("xray","omrout","s_trojan_address",server_ip)
|
||||
ucic:set("xray","omrout","s_socks_address",server_ip)
|
||||
ucic:set("xray","omrout","s_shadowsocks_address",server_ip)
|
||||
luci.sys.call("uci -q del openvpn.omr.remote")
|
||||
luci.sys.call("uci -q add_list openvpn.omr.remote=" .. server_ip)
|
||||
ucic:set("qos","serverin","srchost",server_ip)
|
||||
|
@ -784,6 +843,11 @@ function wizard_add()
|
|||
ucic:set("v2ray","omrout","s_vless_address",server_ip)
|
||||
ucic:set("v2ray","omrout","s_trojan_address",server_ip)
|
||||
ucic:set("v2ray","omrout","s_socks_address",server_ip)
|
||||
ucic:set("xray","omrout","s_vmess_address",server_ip)
|
||||
ucic:set("xray","omrout","s_vless_address",server_ip)
|
||||
ucic:set("xray","omrout","s_trojan_address",server_ip)
|
||||
ucic:set("xray","omrout","s_socks_address",server_ip)
|
||||
ucic:set("xray","omrout","s_shadowsocks_address",server_ip)
|
||||
luci.sys.call("uci -q del openvpn.omr.remote")
|
||||
luci.sys.call("uci -q add_list openvpn.omr.remote=" .. server_ip)
|
||||
ucic:set("qos","serverin","srchost",server_ip)
|
||||
|
@ -816,6 +880,7 @@ function wizard_add()
|
|||
ucic:save("mlvpn")
|
||||
ucic:save("ubond")
|
||||
ucic:save("v2ray")
|
||||
ucic:save("xray")
|
||||
--ucic:commit("mlvpn")
|
||||
ucic:save("dsvpn")
|
||||
--ucic:commit("dsvpn")
|
||||
|
@ -831,12 +896,19 @@ function wizard_add()
|
|||
ucic:set("openmptcprouter","settings","encryption","none")
|
||||
ucic:set("shadowsocks-libev","sss0","method","none")
|
||||
ucic:set("shadowsocks-libev","sss1","method","none")
|
||||
ucic:set("shadowsocks-rust","sss0","method","none")
|
||||
ucic:set("shadowsocks-rust","sss1","method","none")
|
||||
ucic:set("openvpn","omr","cipher","none")
|
||||
ucic:set("mlvpn","general","cleartext_data","1")
|
||||
ucic:set("v2ray","omrout","s_vmess_user_security","none")
|
||||
ucic:set("v2ray","omrout","s_vless_user_security","none")
|
||||
ucic:set("v2ray","omrout","s_trojan_user_security","none")
|
||||
ucic:set("v2ray","omrout","s_socks_user_security","none")
|
||||
ucic:set("xray","omrout","s_vmess_user_security","none")
|
||||
ucic:set("xray","omrout","s_vless_user_security","none")
|
||||
ucic:set("xray","omrout","s_trojan_user_security","none")
|
||||
ucic:set("xray","omrout","s_socks_user_security","none")
|
||||
ucic:set("xray","omrout","s_shadowsocks_method","none")
|
||||
elseif encryption == "aes-256-gcm" then
|
||||
ucic:set("openmptcprouter","settings","encryption","aes-256-gcm")
|
||||
ucic:set("shadowsocks-libev","sss0","method","aes-256-gcm")
|
||||
|
@ -849,6 +921,13 @@ function wizard_add()
|
|||
ucic:set("v2ray","omrout","s_vless_user_security","aes-128-gcm")
|
||||
ucic:set("v2ray","omrout","s_trojan_user_security","aes-128-gcm")
|
||||
ucic:set("v2ray","omrout","s_socks_user_security","aes-128-gcm")
|
||||
ucic:set("xray","omrout","s_vmess_user_security","aes-128-gcm")
|
||||
ucic:set("xray","omrout","s_vless_user_security","aes-128-gcm")
|
||||
ucic:set("xray","omrout","s_trojan_user_security","aes-128-gcm")
|
||||
ucic:set("xray","omrout","s_socks_user_security","aes-128-gcm")
|
||||
ucic:set("xray","omrout","s_shadowsocks_method","2022-blake3-aes-256-gcm")
|
||||
ucic:set("shadowsocks-rust","sss0","s_shadowsocks_method","2022-blake3-aes-256-gcm")
|
||||
ucic:set("shadowsocks-rust","sss1","s_shadowsocks_method","2022-blake3-aes-256-gcm")
|
||||
elseif encryption == "aes-256-cfb" then
|
||||
ucic:set("openmptcprouter","settings","encryption","aes-256-cfb")
|
||||
ucic:set("shadowsocks-libev","sss0","method","aes-256-cfb")
|
||||
|
@ -861,6 +940,13 @@ function wizard_add()
|
|||
ucic:set("v2ray","omrout","s_vless_user_security","aes-128-gcm")
|
||||
ucic:set("v2ray","omrout","s_trojan_user_security","aes-128-gcm")
|
||||
ucic:set("v2ray","omrout","s_socks_user_security","aes-128-gcm")
|
||||
ucic:set("xray","omrout","s_vmess_user_security","aes-128-gcm")
|
||||
ucic:set("xray","omrout","s_vless_user_security","aes-128-gcm")
|
||||
ucic:set("xray","omrout","s_trojan_user_security","aes-128-gcm")
|
||||
ucic:set("xray","omrout","s_socks_user_security","aes-128-gcm")
|
||||
ucic:set("xray","omrout","s_shadowsocks_method","2022-blake3-aes-256-gcm")
|
||||
ucic:set("shadowsocks-rust","sss0","s_shadowsocks_method","2022-blake3-aes-256-gcm")
|
||||
ucic:set("shadowsocks-rust","sss1","s_shadowsocks_method","2022-blake3-aes-256-gcm")
|
||||
elseif encryption == "chacha20-ietf-poly1305" then
|
||||
ucic:set("openmptcprouter","settings","encryption","chacha20")
|
||||
ucic:set("shadowsocks-libev","sss0","method","chacha20-ietf-poly1305")
|
||||
|
@ -873,6 +959,13 @@ function wizard_add()
|
|||
ucic:set("v2ray","omrout","s_vless_user_security","chacha20-poly1305")
|
||||
ucic:set("v2ray","omrout","s_trojan_user_security","chacha20-poly1305")
|
||||
ucic:set("v2ray","omrout","s_socks_user_security","chacha20-poly1305")
|
||||
ucic:set("xray","omrout","s_vmess_user_security","chacha20-poly1305")
|
||||
ucic:set("xray","omrout","s_vless_user_security","chacha20-poly1305")
|
||||
ucic:set("xray","omrout","s_trojan_user_security","chacha20-poly1305")
|
||||
ucic:set("xray","omrout","s_socks_user_security","chacha20-poly1305")
|
||||
ucic:set("xray","omrout","s_shadowsocks_method","2022-blake3-chacha20-poly1305")
|
||||
ucic:set("shadowsocks-rust","sss0","s_shadowsocks_method","2022-blake3-chacha20-poly1305")
|
||||
ucic:set("shadowsocks-rust","sss1","s_shadowsocks_method","2022-blake3-chacha20-poly1305")
|
||||
else
|
||||
ucic:set("openmptcprouter","settings","encryption","other")
|
||||
end
|
||||
|
@ -881,6 +974,7 @@ function wizard_add()
|
|||
ucic:save("glorytun-udp")
|
||||
ucic:save("shadowsocks-libev")
|
||||
ucic:save("v2ray")
|
||||
ucic:save("xray")
|
||||
|
||||
-- Set ShadowSocks settings
|
||||
local shadowsocks_key = luci.http.formvalue("shadowsocks_key")
|
||||
|
@ -897,7 +991,7 @@ function wizard_add()
|
|||
ucic:save("shadowsocks-libev")
|
||||
ucic:commit("shadowsocks-libev")
|
||||
if shadowsocks_disable == "1" then
|
||||
luci.sys.call("/etc/init.d/shadowsocks rules_down >/dev/null 2>/dev/null")
|
||||
luci.sys.call("/etc/init.d/shadowsocks-libev rules_down >/dev/null 2>/dev/null")
|
||||
end
|
||||
else
|
||||
if serversnb == 0 then
|
||||
|
@ -908,8 +1002,33 @@ function wizard_add()
|
|||
ucic:set("shadowsocks-libev","sss1","key","")
|
||||
ucic:save("shadowsocks-libev")
|
||||
ucic:commit("shadowsocks-libev")
|
||||
luci.sys.call("/etc/init.d/shadowsocks rules_down >/dev/null 2>/dev/null")
|
||||
luci.sys.call("/etc/init.d/shadowsocks-libev rules_down >/dev/null 2>/dev/null")
|
||||
end
|
||||
-- Set ShadowSocks 2022 settings
|
||||
local shadowsocks2022_key = luci.http.formvalue("shadowsocks2022_key")
|
||||
if shadowsocks2022_key ~= "" then
|
||||
ucic:set("shadowsocks-rust","sss0","password",shadowsocks2022_key)
|
||||
ucic:set("shadowsocks-rust","sss1","password",shadowsocks2022_key)
|
||||
ucic:set("xray","omrout","s_shadowsocks_password",shadowsocks2022_key)
|
||||
ucic:save("shadowsocks-rust")
|
||||
ucic:commit("shadowsocks-rust")
|
||||
if shadowsocks_disable == "1" then
|
||||
luci.sys.call("/etc/init.d/shadowsocks-rust rules_down >/dev/null 2>/dev/null")
|
||||
end
|
||||
else
|
||||
if serversnb == 0 then
|
||||
ucic:set("shadowsocks-rust","sss0","disabled","1")
|
||||
ucic:set("shadowsocks-rust","sss1","disabled","1")
|
||||
end
|
||||
ucic:set("shadowsocks-rust","sss0","key","")
|
||||
ucic:set("shadowsocks-rust","sss1","key","")
|
||||
ucic:set("xray","omrout","s_shadowsocks_password","")
|
||||
ucic:save("shadowsocks-rust")
|
||||
ucic:commit("shadowsocks-rust")
|
||||
luci.sys.call("/etc/init.d/shadowsocks-rust rules_down >/dev/null 2>/dev/null")
|
||||
end
|
||||
|
||||
|
||||
local v2ray_user = luci.http.formvalue("v2ray_user")
|
||||
ucic:set("v2ray","omrout","s_vmess_user_id",v2ray_user)
|
||||
ucic:set("v2ray","omrout","s_vless_user_id",v2ray_user)
|
||||
|
@ -917,6 +1036,14 @@ function wizard_add()
|
|||
ucic:set("v2ray","omrout","s_socks_user_id",v2ray_user)
|
||||
ucic:save("v2ray")
|
||||
ucic:commit("v2ray")
|
||||
ucic:set("xray","omrout","s_vmess_user_id",v2ray_user)
|
||||
ucic:set("xray","omrout","s_vless_user_id",v2ray_user)
|
||||
ucic:set("xray","omrout","s_trojan_user_id",v2ray_user)
|
||||
ucic:set("xray","omrout","s_socks_user_id",v2ray_user)
|
||||
ucic:save("xray")
|
||||
ucic:commit("xray")
|
||||
ucic:save("shadowsocks-libev")
|
||||
ucic:commit("shadowsocks-libev")
|
||||
|
||||
|
||||
-- Set Glorytun settings
|
||||
|
@ -1046,6 +1173,8 @@ function wizard_add()
|
|||
|
||||
ucic:save("v2ray")
|
||||
ucic:commit("v2ray")
|
||||
ucic:save("xray")
|
||||
ucic:commit("xray")
|
||||
|
||||
ucic:save("network")
|
||||
ucic:commit("network")
|
||||
|
@ -1086,6 +1215,7 @@ function wizard_add()
|
|||
luci.sys.call("/etc/init.d/omr-6in4 restart >/dev/null 2>/dev/null")
|
||||
luci.sys.call("/etc/init.d/vnstat restart >/dev/null 2>/dev/null")
|
||||
luci.sys.call("/etc/init.d/v2ray restart >/dev/null 2>/dev/null")
|
||||
luci.sys.call("/etc/init.d/xray restart >/dev/null 2>/dev/null")
|
||||
luci.sys.call("/etc/init.d/sqm restart >/dev/null 2>/dev/null")
|
||||
luci.sys.call("/etc/init.d/sqm-autorate restart >/dev/null 2>/dev/null")
|
||||
luci.sys.call("/etc/init.d/sysntpd restart >/dev/null 2>/dev/null")
|
||||
|
@ -1214,11 +1344,14 @@ function settings_add()
|
|||
local shadowsocksudp = luci.http.formvalue("shadowsocksudp") or "0"
|
||||
ucic:set("openmptcprouter","settings","shadowsocksudp",shadowsocksudp)
|
||||
|
||||
-- Enable/disable v2ray udp
|
||||
-- Enable/disable v2ray/xray udp
|
||||
local v2rayudp = luci.http.formvalue("v2rayudp") or "0"
|
||||
ucic:set("v2ray","main_transparent_proxy","redirect_udp",v2rayudp)
|
||||
ucic:save("v2ray")
|
||||
ucic:commit("v2ray")
|
||||
ucic:set("xray","main_transparent_proxy","redirect_udp",v2rayudp)
|
||||
ucic:save("xray")
|
||||
ucic:commit("xray")
|
||||
|
||||
-- Enable/disable nDPI
|
||||
local ndpi = luci.http.formvalue("ndpi") or "1"
|
||||
|
|
|
@ -292,15 +292,23 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="cbi-value">
|
||||
<label class="cbi-value-title"><%:When proxy shadowsocks is used, use it for UDP if VPN down%></label>
|
||||
<label class="cbi-value-title"><%:Shadowsocks UDP%></label>
|
||||
<div class="cbi-value-field">
|
||||
<input type="checkbox" name="shadowsocksudp" class="cbi-input-checkbox" value="1" <% if luci.model.uci.cursor():get("openmptcprouter","settings","shadowsocksudp") == "1" then %>checked<% end %>>
|
||||
<br />
|
||||
<div class="cbi-value-description">
|
||||
<%:When proxy shadowsocks is used, use it for UDP if VPN down%>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cbi-value">
|
||||
<label class="cbi-value-title"><%:When proxy V2Ray VLESS or VMESS is used, use it for UDP%></label>
|
||||
<label class="cbi-value-title"><%:V2Ray/XRay UDP%></label>
|
||||
<div class="cbi-value-field">
|
||||
<input type="checkbox" name="v2rayudp" class="cbi-input-checkbox" value="1" <% if luci.model.uci.cursor():get("v2ray","main_transparent_proxy","redirect_udp") == "1" then %>checked<% end %>>
|
||||
<br />
|
||||
<div class="cbi-value-description">
|
||||
<%:When proxy V2Ray/XRay VLESS, VMESS or Trojan is used, use it for UDP%>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cbi-value">
|
||||
|
|
|
@ -163,6 +163,18 @@ local statuslogo = ucic:get("openmptcprouter","settings","statuslogo") or "openm
|
|||
statusMessage += '<br/>';
|
||||
}
|
||||
}
|
||||
if (mArray.openmptcprouter.shadowsocksrust_enabled == true && mArray.openmptcprouter.service_addr != "")
|
||||
{
|
||||
if (mArray.openmptcprouter.shadowsocksrust_service == false)
|
||||
{
|
||||
statusMessage += '<%:ShadowSocks Rust is not running%>';
|
||||
if (mArray.openmptcprouter.shadowsocksrust_service_key == false && mArray.openmptcprouter.shadowsocksrust_service_method !== "none")
|
||||
{
|
||||
statusMessage += ' <i>(' + '<%:empty key%>' + ')</i>';
|
||||
}
|
||||
statusMessage += '<br/>';
|
||||
}
|
||||
}
|
||||
if (mArray.openmptcprouter.v2ray_enabled == true && mArray.openmptcprouter.service_addr != "")
|
||||
{
|
||||
if (mArray.openmptcprouter.v2ray_service == false)
|
||||
|
@ -171,6 +183,14 @@ local statuslogo = ucic:get("openmptcprouter","settings","statuslogo") or "openm
|
|||
statusMessage += '<br/>';
|
||||
}
|
||||
}
|
||||
if (mArray.openmptcprouter.xray_enabled == true && mArray.openmptcprouter.service_addr != "")
|
||||
{
|
||||
if (mArray.openmptcprouter.xray_service == false)
|
||||
{
|
||||
statusMessage += '<%:XRay is not running%>';
|
||||
statusMessage += '<br/>';
|
||||
}
|
||||
}
|
||||
if (mArray.openmptcprouter.fsro == true)
|
||||
{
|
||||
statusMessage += '<%:Filesystem is readonly%>' + '<br/>';
|
||||
|
@ -194,7 +214,7 @@ local statuslogo = ucic:get("openmptcprouter","settings","statuslogo") or "openm
|
|||
statusIcon = "<%=resource%>/openmptcprouter/images/statusError.png";
|
||||
} else if (mArray.openmptcprouter.service_addr != "")
|
||||
{
|
||||
if (mArray.openmptcprouter.v2ray_enabled == false && mArray.openmptcprouter.shadowsocks_enabled == false)
|
||||
if (mArray.openmptcprouter.xray_enabled == false && mArray.openmptcprouter.v2ray_enabled == false && mArray.openmptcprouter.shadowsocks_enabled == false && mArray.openmptcprouter.shadowsocksrust_enabled == false)
|
||||
{
|
||||
statusMessage += '<%:Proxy is DISABLED%>' + '<br/>';
|
||||
}
|
||||
|
@ -285,9 +305,15 @@ local statuslogo = ucic:get("openmptcprouter","settings","statuslogo") or "openm
|
|||
} else if (mArray.openmptcprouter.shadowsocks_enabled == true && mArray.openmptcprouter.proxy_addr == "" && mArray.openmptcprouter.external_check == true)
|
||||
{
|
||||
statusMessage += '<%:Can\'t get public IP address from ShadowSocks%>' + '<br/>';
|
||||
} else if (mArray.openmptcprouter.shadowsocksrust_enabled == true && mArray.openmptcprouter.proxy_addr == "" && mArray.openmptcprouter.external_check == true)
|
||||
{
|
||||
statusMessage += '<%:Can\'t get public IP address from ShadowSocks Rust%>' + '<br/>';
|
||||
} else if (mArray.openmptcprouter.v2ray_enabled == true && mArray.openmptcprouter.proxy_addr == "" && mArray.openmptcprouter.external_check == true)
|
||||
{
|
||||
statusMessage += '<%:Can\'t get public IP address from V2Ray%>' + '<br/>';
|
||||
} else if (mArray.openmptcprouter.xray_enabled == true && mArray.openmptcprouter.proxy_addr == "" && mArray.openmptcprouter.external_check == true)
|
||||
{
|
||||
statusMessage += '<%:Can\'t get public IP address from XRay%>' + '<br/>';
|
||||
} else if (mArray.openmptcprouter.wan_addr == "" && mArray.openmptcprouter.wan_addr6 == "" && mArray.openmptcprouter.external_check == true)
|
||||
{
|
||||
statusMessage += '<%:No public IP address detected in less than 1 second%>' + '<br/>';
|
||||
|
|
|
@ -227,7 +227,7 @@
|
|||
</fieldset>
|
||||
<fieldset class="cbi-section" id="proxy">
|
||||
<legend><%:Proxy settings%></legend>
|
||||
<div class="cbi-section-descr"><%:By default proxy is used for any traffic that is TCP (and UDP for V2Ray).%></div>
|
||||
<div class="cbi-section-descr"><%:By default proxy is used for any traffic that is TCP (and UDP for V2Ray/XRay).%></div>
|
||||
<div class="cbi-value">
|
||||
<label class="cbi-value-title"><%:Default Proxy%></label>
|
||||
<div class="cbi-value-field">
|
||||
|
@ -237,11 +237,17 @@
|
|||
<% if nixio.fs.access("/etc/init.d/v2ray") then %><option value="v2ray-vmess" <% if uci:get("openmptcprouter","settings","proxy") == "v2ray-vmess" then %>selected="selected"<% end %>>V2Ray VMESS</option><% end %>
|
||||
<% if nixio.fs.access("/etc/init.d/v2ray") then %><option value="v2ray-trojan" <% if uci:get("openmptcprouter","settings","proxy") == "v2ray-trojan" then %>selected="selected"<% end %>>V2Ray TROJAN</option><% end %>
|
||||
<% if nixio.fs.access("/etc/init.d/v2ray") then %><option value="v2ray-socks" <% if uci:get("openmptcprouter","settings","proxy") == "v2ray-socks" then %>selected="selected"<% end %>>V2Ray SOCKS</option><% end %>
|
||||
<% if nixio.fs.access("/etc/init.d/xray") then %><option value="xray" <% if uci:get("openmptcprouter","settings","proxy") == "xray" then %>selected="selected"<% end %>>XRay VLESS</option><% end %>
|
||||
<% if nixio.fs.access("/etc/init.d/xray") then %><option value="xray-vmess" <% if uci:get("openmptcprouter","settings","proxy") == "xray-vmess" then %>selected="selected"<% end %>>XRay VMESS</option><% end %>
|
||||
<% if nixio.fs.access("/etc/init.d/xray") then %><option value="xray-trojan" <% if uci:get("openmptcprouter","settings","proxy") == "xray-trojan" then %>selected="selected"<% end %>>XRay Trojan</option><% end %>
|
||||
<% if nixio.fs.access("/etc/init.d/xray") then %><option value="xray-socks" <% if uci:get("openmptcprouter","settings","proxy") == "xray-socks" then %>selected="selected"<% end %>>XRay Socks</option><% end %>
|
||||
<% if nixio.fs.access("/etc/init.d/xray") then %><option value="xray-shadowsocks" <% if uci:get("openmptcprouter","settings","proxy") == "xray-shadowsocks" then %>selected="selected"<% end %>>XRay Shadowsocks 2022</option><% end %>
|
||||
<% if nixio.fs.access("/etc/init.d/shadowsocks-rust") then %><option value="shadowsocks-rust" <% if uci:get("openmptcprouter","settings","proxy") == "shadowsocks-rust" then %>selected="selected"<% end %>>Shadowsocks-Rust 2022</option><% end %>
|
||||
<option value="none" <% if uci:get("openmptcprouter","settings","proxy") == "none" then %>selected="selected"<% end %>>None</option>
|
||||
</select>
|
||||
<br />
|
||||
<div class="cbi-value-description">
|
||||
<%:Set the default Proxy used for TCP when ShadowSocks is enabled, for TCP and UDP when V2Ray VLESS, VMESS or Trojan is enabled.%>
|
||||
<%:Set the default Proxy used for TCP when ShadowSocks is enabled, for TCP and UDP when V2Ray/XRay VLESS, VMESS or Trojan is enabled.%>
|
||||
<%:Only ShadowSocks is supported with server multiple IPs for now.%>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -258,9 +264,21 @@
|
|||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
<% if nixio.fs.access("/etc/init.d/v2ray") then %>
|
||||
<% if nixio.fs.access("/etc/init.d/xray") or nixio.fs.access("/etc/init.d/shadowsocks-rust") then %>
|
||||
<div class="cbi-value">
|
||||
<label class="cbi-value-title"><%:V2Ray user id%></label>
|
||||
<label class="cbi-value-title"><%:ShadowSocks 2022 key%></label>
|
||||
<div class="cbi-value-field">
|
||||
<input type="text" name="shadowsocks2022_key" placeholder="<%:ShadowSocks 2022 key%>" class="cbi-input-text" value="<%=uci:get("shadowsocks-rust","sss0","password")%>" />
|
||||
<br />
|
||||
<div class="cbi-value-description">
|
||||
<%:Key is retrieved from server API by default.%> <%:ShadowSocks is used for TCP.%>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
<% if nixio.fs.access("/etc/init.d/v2ray") or nixio.fs.access("/etc/init.d/xray") then %>
|
||||
<div class="cbi-value">
|
||||
<label class="cbi-value-title"><%:V2Ray/XRay user id%></label>
|
||||
<div class="cbi-value-field">
|
||||
<input type="text" name="v2ray_user" placeholder="<%:V2Ray user%>" class="cbi-input-text" value="<%=uci:get("v2ray","omrout","s_vmess_user_id")%>" />
|
||||
<br />
|
||||
|
@ -284,7 +302,7 @@
|
|||
%>
|
||||
<option value="none" <% if method == "none" then %>selected="selected"<% end %>><%:None%></option>
|
||||
<option value="aes-256-gcm" <% if method == "aes-256-gcm" then %>selected="selected"<% end %>>AES-256-GCM</option>
|
||||
<option value="aes-256-cfb" <% if method == "aes-256-cfb" then %>selected="selected"<% end %>>AES-256-CFB</option>
|
||||
<!--<option value="aes-256-cfb" <% if method == "aes-256-cfb" then %>selected="selected"<% end %>>AES-256-CFB</option>-->
|
||||
<option value="chacha20-ietf-poly1305" <% if method == "chacha20" or method == "chacha20-ietf-poly1305" then %>selected="selected"<% end %>>chacha20</option>
|
||||
<option value="other" <% if method == "other" or (method ~= "chacha20" and method ~= "aes-256-gcm" and method ~= "aes-256-cfb" and method ~= "chacha20-ietf-poly1305" and method ~= "none") then %>selected="selected"<% end %>><%:other%></option>
|
||||
</select>
|
||||
|
@ -297,7 +315,7 @@
|
|||
<% else %>
|
||||
<%:There is no Advanced Encryption Standard (AES) instruction set integrated in the processor, you should use chacha20.%>
|
||||
<% end %>
|
||||
<%:Encryption method is used for Shadowsocks, V2Ray, Glorytun and OpenVPN.%>
|
||||
<%:Encryption method is used for Shadowsocks, V2Ray/XRay, Glorytun and OpenVPN.%>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -334,6 +334,10 @@ function server_settings(server,server_ip,openmptcprouter_vps_key)
|
|||
ucic:set("v2ray","omrout","s_vless_address",server_ip)
|
||||
ucic:set("v2ray","omrout","s_socks_address",server_ip)
|
||||
ucic:set("v2ray","omrout","s_trojan_address",server_ip)
|
||||
ucic:set("xray","omrout","s_vmess_address",server_ip)
|
||||
ucic:set("xray","omrout","s_vless_address",server_ip)
|
||||
ucic:set("xray","omrout","s_socks_address",server_ip)
|
||||
ucic:set("xray","omrout","s_trojan_address",server_ip)
|
||||
ucic:save("qos")
|
||||
ucic:commit("qos")
|
||||
ucic:save("mlvpn")
|
||||
|
@ -341,7 +345,9 @@ function server_settings(server,server_ip,openmptcprouter_vps_key)
|
|||
ucic:save("dsvpn")
|
||||
ucic:commit("dsvpn")
|
||||
ucic:save("v2ray")
|
||||
ucic:save("xray")
|
||||
ucic:commit("v2ray")
|
||||
ucic:commit("xray")
|
||||
ucic:save("glorytun")
|
||||
ucic:commit("glorytun")
|
||||
ucic:save("shadowsocks-libev")
|
||||
|
@ -428,6 +434,7 @@ function restart_all()
|
|||
sys.exec("/etc/init.d/mptcpovervpn restart >/dev/null 2>/dev/null")
|
||||
sys.exec("/etc/init.d/vnstat restart >/dev/null 2>/dev/null")
|
||||
sys.exec("/etc/init.d/v2ray restart >/dev/null 2>/dev/null")
|
||||
sys.exec("/etc/init.d/xray restart >/dev/null 2>/dev/null")
|
||||
end
|
||||
|
||||
function redirectports(server,redirect_ports)
|
||||
|
@ -822,9 +829,9 @@ function interfaces_status()
|
|||
-- shadowsocksaddr
|
||||
mArray.openmptcprouter["proxy_addr"] = uci:get("openmptcprouter","omr","detected_ss_ipv4") or ""
|
||||
if mArray.openmptcprouter["proxy_addr"] == "" and mArray.openmptcprouter["service_addr"] ~= "" then
|
||||
tracker_ip = uci:get("shadowsocks-libev","tracker_sss0","local_address") or ""
|
||||
tracker_ip = uci:get("shadowsocks-libev","tracker_sss0","local_address") or "127.0.0.1"
|
||||
if tracker_ip ~= "" then
|
||||
local tracker_port = uci:get("shadowsocks-libev","tracker_sss0","local_port")
|
||||
local tracker_port = uci:get("shadowsocks-libev","tracker_sss0","local_port") or "1111"
|
||||
if mArray.openmptcprouter["external_check"] ~= false then
|
||||
mArray.openmptcprouter["proxy_addr"] = ut.trim(sys.exec("curl -s -4 --socks5 " .. tracker_ip .. ":" .. tracker_port .. " -m " .. timeout .. " " .. check_ipv4_website))
|
||||
if mArray.openmptcprouter["proxy_addr"] == "" then
|
||||
|
@ -930,7 +937,16 @@ function interfaces_status()
|
|||
mArray.openmptcprouter["v2ray_traffic_tx"] = "0"
|
||||
mArray.openmptcprouter["v2ray_traffic"] = "0"
|
||||
end
|
||||
mArray.openmptcprouter["proxy_traffic"] = mArray.openmptcprouter["ss_traffic"] + mArray.openmptcprouter["v2ray_traffic"]
|
||||
if status and vpsinfo.xray ~= nil then
|
||||
mArray.openmptcprouter["xray_traffic_rx"] = vpsinfo.xray.rx or "0"
|
||||
mArray.openmptcprouter["xray_traffic_tx"] = vpsinfo.xray.tx or "0"
|
||||
mArray.openmptcprouter["xray_traffic"] = mArray.openmptcprouter["xray_traffic_tx"] + mArray.openmptcprouter["xray_traffic_rx"]
|
||||
else
|
||||
mArray.openmptcprouter["xray_traffic_rx"] = "0"
|
||||
mArray.openmptcprouter["xray_traffic_tx"] = "0"
|
||||
mArray.openmptcprouter["xray_traffic"] = "0"
|
||||
end
|
||||
mArray.openmptcprouter["proxy_traffic"] = mArray.openmptcprouter["ss_traffic"] + mArray.openmptcprouter["v2ray_traffic"] + mArray.openmptcprouter["xray_traffic"]
|
||||
mArray.openmptcprouter["total_traffic"] = mArray.openmptcprouter["proxy_traffic"] + mArray.openmptcprouter["vpn_traffic"]
|
||||
else
|
||||
mArray.openmptcprouter["vps_admin"] = false
|
||||
|
@ -1048,6 +1064,11 @@ function interfaces_status()
|
|||
if string.find(sys.exec("/usr/bin/pgrep ss-redir"), "%d+") then
|
||||
mArray.openmptcprouter["shadowsocks_service"] = true
|
||||
end
|
||||
-- check Shadowsocks Rust is running
|
||||
mArray.openmptcprouter["shadowsocksrust_service"] = false
|
||||
if string.find(sys.exec("/usr/bin/pgrep sslocal"), "%d+") then
|
||||
mArray.openmptcprouter["shadowsocksrust_service"] = true
|
||||
end
|
||||
|
||||
mArray.openmptcprouter["shadowsocks_enabled"] = true
|
||||
local ss_server = "1"
|
||||
|
@ -1061,6 +1082,18 @@ function interfaces_status()
|
|||
mArray.openmptcprouter["shadowsocks_enabled"] = false
|
||||
end
|
||||
|
||||
mArray.openmptcprouter["shadowsocksrust_enabled"] = true
|
||||
local ss_server = "1"
|
||||
ucic:foreach("shadowsocks-rust", "server", function(s)
|
||||
local ss_server_disabled = uci:get("shadowsocks-rust",s[".name"],"disabled") or "0"
|
||||
if ss_server_disabled == "0" then
|
||||
ss_server = "0"
|
||||
end
|
||||
end)
|
||||
if ss_server == "1" then
|
||||
mArray.openmptcprouter["shadowsocksrust_enabled"] = false
|
||||
end
|
||||
|
||||
-- check V2Ray is running
|
||||
mArray.openmptcprouter["v2ray_service"] = false
|
||||
if string.find(sys.exec("/usr/bin/pgrep v2ray"), "%d+") then
|
||||
|
@ -1071,6 +1104,16 @@ function interfaces_status()
|
|||
if v2ray == "1" then
|
||||
mArray.openmptcprouter["v2ray_enabled"] = true
|
||||
end
|
||||
-- check XRay is running
|
||||
mArray.openmptcprouter["xray_service"] = false
|
||||
if string.find(sys.exec("/usr/bin/pgrep xray"), "%d+") then
|
||||
mArray.openmptcprouter["xray_service"] = true
|
||||
end
|
||||
mArray.openmptcprouter["xray_enabled"] = false
|
||||
local xray = uci:get("xray","main","enabled") or "0"
|
||||
if xray == "1" then
|
||||
mArray.openmptcprouter["xray_enabled"] = true
|
||||
end
|
||||
local ss_key = uci:get("shadowsocks-libev","sss0","key") or ""
|
||||
mArray.openmptcprouter["shadowsocks_service_method"] = uci:get("shadowsocks-libev","sss0","method")
|
||||
if ss_key == "" then
|
||||
|
@ -1078,6 +1121,13 @@ function interfaces_status()
|
|||
else
|
||||
mArray.openmptcprouter["shadowsocks_service_key"] = true
|
||||
end
|
||||
local ssr_key = uci:get("shadowsocks-rust","sss0","key") or ""
|
||||
mArray.openmptcprouter["shadowsocksrust_service_method"] = uci:get("shadowsocks-rust","sss0","method")
|
||||
if ssr_key == "" then
|
||||
mArray.openmptcprouter["shadowsocksrust_service_key"] = false
|
||||
else
|
||||
mArray.openmptcprouter["shadowsocksrust_service_key"] = true
|
||||
end
|
||||
|
||||
-- Add DHCP infos by parsing dnsmasq config file
|
||||
mArray.openmptcprouter.dhcpd = {}
|
||||
|
|
18
luci-app-shadowsocks-rust/Makefile
Normal file
18
luci-app-shadowsocks-rust/Makefile
Normal file
|
@ -0,0 +1,18 @@
|
|||
#
|
||||
# Copyright (C) 2017 Yousong Zhou <yszhou4tech@gmail.com>
|
||||
# Copyright (C) 2019-2023 Ycarus (Yannick Chabanois) <ycarus@zugaina.org> for OpenMPTCProuter
|
||||
#
|
||||
# This is free software, licensed under the Apache License, Version 2.0 .
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
LUCI_TITLE:=LuCI Support for shadowsocks-rust
|
||||
LUCI_DEPENDS:=+luci-compat
|
||||
|
||||
PKG_LICENSE:=Apache-2.0
|
||||
PKG_VERSION:=omr-202309
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
|
@ -0,0 +1,294 @@
|
|||
'use strict';
|
||||
'require baseclass';
|
||||
'require uci';
|
||||
'require form';
|
||||
'require network';
|
||||
|
||||
var names_options_server = [
|
||||
'server',
|
||||
'server_port',
|
||||
'method',
|
||||
'password',
|
||||
'plugin',
|
||||
'plugin_opts',
|
||||
];
|
||||
|
||||
var names_options_client = [
|
||||
'server',
|
||||
'local_address',
|
||||
'local_port',
|
||||
];
|
||||
|
||||
var names_options_common = [
|
||||
'verbose',
|
||||
'ipv6_first',
|
||||
'fast_open',
|
||||
'no_delay',
|
||||
'reuse_port',
|
||||
'mode',
|
||||
'mtu',
|
||||
'timeout',
|
||||
'user',
|
||||
'mptcp',
|
||||
];
|
||||
|
||||
var modes = [
|
||||
'tcp_only',
|
||||
'tcp_and_udp',
|
||||
'udp_only',
|
||||
];
|
||||
|
||||
var methods = [
|
||||
'none',
|
||||
// aead
|
||||
'aes-128-gcm',
|
||||
'aes-256-gcm',
|
||||
'chacha20-ietf-poly1305',
|
||||
'2022-blake3-aes-128-gcm',
|
||||
'2022-blake3-aes-256-gcm',
|
||||
'2022-blake3-chacha8-poly1305',
|
||||
'2022-blake3-chacha20-poly1305',
|
||||
];
|
||||
|
||||
function ucival_to_bool(val) {
|
||||
return val === 'true' || val === '1' || val === 'yes' || val === 'on';
|
||||
}
|
||||
|
||||
return L.Class.extend({
|
||||
values_actions: function(o) {
|
||||
o.value('bypass');
|
||||
o.value('forward');
|
||||
if (o.option !== 'dst_default') {
|
||||
o.value('checkdst');
|
||||
}
|
||||
},
|
||||
values_redir: function(o, xmode) {
|
||||
uci.sections('shadowsocks-rust', 'ss_redir', function(sdata) {
|
||||
var disabled = ucival_to_bool(sdata['disabled']),
|
||||
sname = sdata['.name'],
|
||||
mode = sdata['mode'] || 'tcp_only';
|
||||
if (!disabled && mode.indexOf(xmode) !== -1) {
|
||||
o.value(sname, sname + ' - ' + mode);
|
||||
}
|
||||
});
|
||||
o.value('', '<unset>');
|
||||
o.value('all', 'all');
|
||||
o.default = '';
|
||||
},
|
||||
values_serverlist: function(o) {
|
||||
uci.sections('shadowsocks-rust', 'server', function(sdata) {
|
||||
var sname = sdata['.name'],
|
||||
server = sdata['server'],
|
||||
server_port = sdata['server_port'];
|
||||
if (server && server_port) {
|
||||
var disabled = ucival_to_bool(sdata['.disabled']) ? ' - disabled' : '',
|
||||
desc = '%s - %s:%s%s'.format(sname, server, server_port, disabled);
|
||||
o.value(sname, desc);
|
||||
}
|
||||
});
|
||||
},
|
||||
values_ipaddr: function(o, netDevs) {
|
||||
netDevs.forEach(function(v) {
|
||||
v.getIPAddrs().forEach(function(a) {
|
||||
var host = a.split('/')[0];
|
||||
o.value(host, '%s (%s)'.format(host, v.getShortName()));
|
||||
});
|
||||
});
|
||||
},
|
||||
options_client: function(s, tab, netDevs) {
|
||||
var o = s.taboption(tab, form.ListValue, 'server', _('Remote server'));
|
||||
this.values_serverlist(o);
|
||||
o = s.taboption(tab, form.Value, 'local_address', _('Local address'));
|
||||
o.datatype = 'ipaddr';
|
||||
o.placeholder = '0.0.0.0';
|
||||
this.values_ipaddr(o, netDevs);
|
||||
o = s.taboption(tab, form.Value, 'local_port', _('Local port'));
|
||||
o.datatype = 'port';
|
||||
},
|
||||
options_server: function(s, opts) {
|
||||
var o, optfunc,
|
||||
tab = opts && opts.tab || null;
|
||||
|
||||
if (!tab) {
|
||||
optfunc = function(/* ... */) {
|
||||
var o = s.option.apply(s, arguments);
|
||||
o.editable = true;
|
||||
return o;
|
||||
};
|
||||
} else {
|
||||
optfunc = function(/* ... */) {
|
||||
var o = s.taboption.apply(s, L.varargs(arguments, 0, tab));
|
||||
o.editable = true;
|
||||
return o;
|
||||
};
|
||||
}
|
||||
|
||||
o = optfunc(form.Value, 'label', _('Label'));
|
||||
|
||||
o = optfunc(form.Value, 'server', _('Server'));
|
||||
o.datatype = 'host';
|
||||
o.size = 16;
|
||||
|
||||
o = optfunc(form.Value, 'server_port', _('Server port'));
|
||||
o.datatype = 'port';
|
||||
o.size = 5;
|
||||
|
||||
o = optfunc(form.ListValue, 'method', _('Method'));
|
||||
methods.forEach(function(m) {
|
||||
o.value(m);
|
||||
});
|
||||
|
||||
o = optfunc(form.Value, 'password', _('Password (Base64)'));
|
||||
o.datatype = 'base64';
|
||||
o.password = true;
|
||||
o.size = 12;
|
||||
|
||||
optfunc(form.Value, 'plugin', _('Plugin')).modalonly = true;
|
||||
|
||||
optfunc(form.Value, 'plugin_opts', _('Plugin Options')).modalonly = true;
|
||||
},
|
||||
options_common: function(s, tab) {
|
||||
var o = s.taboption(tab, form.ListValue, 'mode', _('Mode of operation'));
|
||||
modes.forEach(function(m) {
|
||||
o.value(m);
|
||||
});
|
||||
o.default = 'tcp_and_udp';
|
||||
o = s.taboption(tab, form.Value, 'mtu', _('MTU'));
|
||||
o.datatype = 'uinteger';
|
||||
o = s.taboption(tab, form.Value, 'timeout', _('Timeout (sec)'));
|
||||
o.datatype = 'uinteger';
|
||||
s.taboption(tab, form.Value, 'user', _('Run as'));
|
||||
|
||||
s.taboption(tab, form.Flag, 'verbose', _('Verbose'));
|
||||
s.taboption(tab, form.Flag, 'ipv6_first', _('IPv6 First'), _('Prefer IPv6 addresses when resolving names'));
|
||||
s.taboption(tab, form.Flag, 'fast_open', _('Enable TCP Fast Open'));
|
||||
s.taboption(tab, form.Flag, 'no_delay', _('Enable TCP_NODELAY'));
|
||||
s.taboption(tab, form.Flag, 'reuse_port', _('Enable SO_REUSEPORT'));
|
||||
s.taboption(tab, form.Flag, 'mptcp', _('Enable MPTCP'));
|
||||
},
|
||||
ucival_to_bool: function(val) {
|
||||
return ucival_to_bool(val);
|
||||
},
|
||||
cfgvalue_overview: function(sdata) {
|
||||
var stype = sdata['.type'],
|
||||
lines = [];
|
||||
|
||||
if (stype === 'ss_server') {
|
||||
this.cfgvalue_overview_(sdata, lines, names_options_server);
|
||||
this.cfgvalue_overview_(sdata, lines, names_options_common);
|
||||
this.cfgvalue_overview_(sdata, lines, ['bind_address']);
|
||||
} else if (stype === 'ss_local' || stype === 'ss_redir' || stype === 'ss_tunnel') {
|
||||
this.cfgvalue_overview_(sdata, lines, names_options_client);
|
||||
if (stype === 'ss_tunnel') {
|
||||
this.cfgvalue_overview_(sdata, lines, ['tunnel_address']);
|
||||
}
|
||||
this.cfgvalue_overview_(sdata, lines, names_options_common);
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
|
||||
return lines;
|
||||
},
|
||||
cfgvalue_overview_: function(sdata, lines, names) {
|
||||
names.forEach(function(n) {
|
||||
var v = sdata[n];
|
||||
if (v) {
|
||||
if (n === 'password') {
|
||||
v = _('<hidden>');
|
||||
}
|
||||
var fv = E('var', [v]);
|
||||
if (sdata['.type'] !== 'ss_server' && n === 'server') {
|
||||
fv = E('a', {
|
||||
class: 'label',
|
||||
href: L.url('admin/services/shadowsocks-rust/servers') + '#edit=' + v,
|
||||
target: '_blank',
|
||||
rel: 'noopener'
|
||||
}, fv);
|
||||
}
|
||||
lines.push(n + ': ', fv, E('br'));
|
||||
}
|
||||
});
|
||||
},
|
||||
option_install_package: function(s, tab) {
|
||||
var bin = s.sectiontype.replace('_', '-'),
|
||||
opkg_package = 'shadowsocks-rust-' + bin, o;
|
||||
if (tab) {
|
||||
o = s.taboption(tab, form.Button, '_install');
|
||||
} else {
|
||||
o = s.option(form.Button, '_install');
|
||||
}
|
||||
o.title = _('Package is not installed');
|
||||
o.inputtitle = _('Install package ' + opkg_package);
|
||||
o.inputstyle = 'apply';
|
||||
o.onclick = function() {
|
||||
window.open(L.url('admin/system/opkg') +
|
||||
'?query=' + opkg_package, '_blank', 'noopener');
|
||||
};
|
||||
},
|
||||
parse_uri: function(uri) {
|
||||
var scheme = 'ss://';
|
||||
if (uri && uri.indexOf(scheme) === 0) {
|
||||
var atPos = uri.indexOf('@'), hashPos = uri.lastIndexOf('#'), tag;
|
||||
if (hashPos === -1) {
|
||||
hashPos = undefined;
|
||||
} else {
|
||||
tag = uri.slice(hashPos + 1);
|
||||
}
|
||||
|
||||
if (atPos !== -1) { // SIP002 format https://shadowsocks.org/en/spec/SIP002-URI-Scheme.html
|
||||
var colonPos = uri.indexOf(':', atPos + 1), slashPos = uri.indexOf('/', colonPos + 1);
|
||||
if (colonPos === -1) return null;
|
||||
if (slashPos === -1) slashPos = undefined;
|
||||
|
||||
var userinfo = atob(uri.slice(scheme.length, atPos)
|
||||
.replace(/-/g, '+').replace(/_/g, '/')),
|
||||
i = userinfo.indexOf(':');
|
||||
if (i === -1) return null;
|
||||
|
||||
var config = {
|
||||
server: uri.slice(atPos + 1, colonPos),
|
||||
server_port: uri.slice(colonPos + 1, slashPos ? slashPos : hashPos),
|
||||
password: userinfo.slice(i + 1),
|
||||
method: userinfo.slice(0, i)
|
||||
};
|
||||
|
||||
if (slashPos) {
|
||||
var search = uri.slice(slashPos + 1, hashPos);
|
||||
if (search[0] === '?') search = search.slice(1);
|
||||
search.split('&').forEach(function(s) {
|
||||
var j = s.indexOf('=');
|
||||
if (j !== -1) {
|
||||
var k = s.slice(0, j), v = s.slice(j + 1);
|
||||
if (k === 'plugin') {
|
||||
v = decodeURIComponent(v);
|
||||
var k = v.indexOf(';');
|
||||
if (k !== -1) {
|
||||
config['plugin'] = v.slice(0, k);
|
||||
config['plugin_opts'] = v.slice(k + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
return [config, tag];
|
||||
} else { // Legacy format https://shadowsocks.org/en/config/quick-guide.html
|
||||
var plain = atob(uri.slice(scheme.length, hashPos)),
|
||||
firstColonPos = plain.indexOf(':'),
|
||||
lastColonPos = plain.lastIndexOf(':'),
|
||||
atPos = plain.lastIndexOf('@', lastColonPos);
|
||||
if (firstColonPos === -1 ||
|
||||
lastColonPos === -1 ||
|
||||
atPos === -1) return null;
|
||||
|
||||
var config = {
|
||||
server: plain.slice(atPos + 1, lastColonPos),
|
||||
server_port: plain.slice(lastColonPos + 1),
|
||||
password: plain.slice(firstColonPos + 1, atPos),
|
||||
method: plain.slice(0, firstColonPos)
|
||||
};
|
||||
return [config, tag];
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
});
|
|
@ -0,0 +1,163 @@
|
|||
'use strict';
|
||||
'require form';
|
||||
'require uci';
|
||||
'require fs';
|
||||
'require network';
|
||||
'require rpc';
|
||||
'require shadowsocks-rust as ss';
|
||||
|
||||
var conf = 'shadowsocks-rust';
|
||||
var cfgtypes = ['ss_local', 'ss_redir', 'ss_server', 'ss_tunnel'];
|
||||
|
||||
var callServiceList = rpc.declare({
|
||||
object: 'service',
|
||||
method: 'list',
|
||||
params: [ 'name' ],
|
||||
expect: { '': {} }
|
||||
});
|
||||
|
||||
return L.view.extend({
|
||||
render: function(stats) {
|
||||
var m, s, o;
|
||||
|
||||
m = new form.Map(conf,
|
||||
_('Local Instances'),
|
||||
_('Instances of shadowsocks-rust components, e.g. ss-local, \
|
||||
ss-redir, ss-tunnel, ss-server, etc. To enable an instance it \
|
||||
is required to enable both the instance itself and the remote \
|
||||
server it refers to.'));
|
||||
|
||||
s = m.section(form.GridSection);
|
||||
s.addremove = true;
|
||||
s.cfgsections = function() {
|
||||
return this.map.data.sections(this.map.config)
|
||||
.filter(function(s) { return cfgtypes.indexOf(s['.type']) !== -1; })
|
||||
.map(function(s) { return s['.name']; });
|
||||
};
|
||||
s.sectiontitle = function(section_id) {
|
||||
var s = uci.get(conf, section_id);
|
||||
return (s ? s['.type'] + '.' : '') + section_id;
|
||||
};
|
||||
s.renderSectionAdd = function(extra_class) {
|
||||
var el = form.GridSection.prototype.renderSectionAdd.apply(this, arguments),
|
||||
optionEl = [E('option', { value: '_dummy' }, [_('-- instance type --')])];
|
||||
cfgtypes.forEach(function(t) {
|
||||
optionEl.push(E('option', { value: t }, [t.replace('_', '-')]));
|
||||
});
|
||||
var selectEl = E('select', {
|
||||
class: 'cbi-input-select',
|
||||
change: function(ev) {
|
||||
ev.target.parentElement.nextElementSibling.nextElementSibling
|
||||
.toggleAttribute('disabled', ev.target.value === '_dummy');
|
||||
}
|
||||
}, optionEl);
|
||||
el.lastElementChild.setAttribute('disabled', '');
|
||||
el.prepend(E('div', {}, selectEl));
|
||||
return el;
|
||||
};
|
||||
s.handleAdd = function(ev, name) {
|
||||
var selectEl = ev.target.parentElement.firstElementChild.firstElementChild,
|
||||
type = selectEl.value;
|
||||
this.sectiontype = type;
|
||||
var promise = form.GridSection.prototype.handleAdd.apply(this, arguments);
|
||||
this.sectiontype = undefined;
|
||||
return promise;
|
||||
};
|
||||
s.addModalOptions = function(s, section_id, ev) {
|
||||
var sdata = uci.get(conf, section_id),
|
||||
stype = sdata ? sdata['.type'] : null;
|
||||
if (stype) {
|
||||
s.sectiontype = stype;
|
||||
return Promise.all([
|
||||
L.resolveDefault(fs.stat('/usr/bin/' + stype.replace('_', '-')), null),
|
||||
network.getDevices()
|
||||
]).then(L.bind(function(res) {
|
||||
s.tab('general', _('General Settings'));
|
||||
s.tab('advanced', _('Advanced Settings'));
|
||||
s.taboption('general', form.Value, 'label', _('Label'));
|
||||
s.taboption('general', form.Flag, 'disabled', _('Disable'));
|
||||
if (!res[0]) {
|
||||
ss.option_install_package(s, 'general');
|
||||
}
|
||||
ss.options_common(s, 'advanced');
|
||||
|
||||
if (stype === 'ss_server') {
|
||||
ss.options_server(s, { tab: 'general' });
|
||||
o = s.taboption('general', form.Value, 'bind_address',
|
||||
_('Bind address'),
|
||||
_('The address ss-server will initiate connection from'));
|
||||
o.datatype = 'ipaddr';
|
||||
o.placeholder = '0.0.0.0';
|
||||
ss.values_ipaddr(o, res[1]);
|
||||
} else {
|
||||
ss.options_client(s, 'general', res[1]);
|
||||
if (stype === 'ss_tunnel') {
|
||||
o = s.taboption('general', form.Value, 'tunnel_address',
|
||||
_('Tunnel address'),
|
||||
_('The address ss-tunnel will forward traffic to'));
|
||||
o.datatype = 'hostport';
|
||||
}
|
||||
}
|
||||
}, this));
|
||||
}
|
||||
};
|
||||
|
||||
o = s.option(form.DummyValue, 'overview', _('Overview'));
|
||||
o.modalonly = false;
|
||||
o.editable = true;
|
||||
o.rawhtml = true;
|
||||
o.renderWidget = function(section_id, option_index, cfgvalue) {
|
||||
var sdata = uci.get(conf, section_id);
|
||||
if (sdata) {
|
||||
return form.DummyValue.prototype.renderWidget.call(this, section_id, option_index, ss.cfgvalue_overview(sdata));
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
o = s.option(form.DummyValue, 'running', _('Running'));
|
||||
o.modalonly = false;
|
||||
o.editable = true;
|
||||
o.default = '';
|
||||
|
||||
o = s.option(form.Button, 'disabled', _('Enable/Disable'));
|
||||
o.modalonly = false;
|
||||
o.editable = true;
|
||||
o.inputtitle = function(section_id) {
|
||||
var s = uci.get(conf, section_id);
|
||||
if (ss.ucival_to_bool(s['disabled'])) {
|
||||
this.inputstyle = 'reset';
|
||||
return _('Disabled');
|
||||
}
|
||||
this.inputstyle = 'save';
|
||||
return _('Enabled');
|
||||
}
|
||||
o.onclick = function(ev) {
|
||||
var inputEl = ev.target.parentElement.nextElementSibling;
|
||||
inputEl.value = ss.ucival_to_bool(inputEl.value) ? '0' : '1';
|
||||
return this.map.save();
|
||||
}
|
||||
|
||||
return m.render().finally(function() {
|
||||
L.Poll.add(function() {
|
||||
return L.resolveDefault(callServiceList(conf), {})
|
||||
.then(function(res) {
|
||||
var instances = null;
|
||||
try {
|
||||
instances = res[conf]['instances'];
|
||||
} catch (e) {}
|
||||
if (!instances) return;
|
||||
uci.sections(conf)
|
||||
.filter(function(s) { return cfgtypes.indexOf(s['.type']) !== -1; })
|
||||
.forEach(function(s) {
|
||||
var el = document.getElementById('cbi-shadowsocks-rust-' + s['.name'] + '-running');
|
||||
if (el) {
|
||||
var name = s['.type'] + '.' + s['.name'],
|
||||
running = instances.hasOwnProperty(name)? instances[name].running : false;
|
||||
el.innerText = running ? 'yes' : 'no';
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
},
|
||||
});
|
|
@ -0,0 +1,141 @@
|
|||
'use strict';
|
||||
'require view';
|
||||
'require uci';
|
||||
'require fs';
|
||||
'require form';
|
||||
'require tools.widgets as widgets';
|
||||
'require shadowsocks-rust as ss';
|
||||
|
||||
var conf = 'shadowsocks-rust';
|
||||
var cfgtypes = ['ss_rules'];
|
||||
|
||||
function src_dst_option(s /*, ... */) {
|
||||
var o = s.taboption.apply(s, L.varargs(arguments, 1));
|
||||
o.datatype = 'or(ipaddr,cidr)';
|
||||
}
|
||||
|
||||
return L.view.extend({
|
||||
load: function() {
|
||||
return Promise.all([
|
||||
L.resolveDefault(fs.stat('/usr/lib/iptables/libxt_recent.so'), {}),
|
||||
L.resolveDefault(fs.stat('/usr/bin/ss-rules'), null),
|
||||
uci.load(conf).then(function() {
|
||||
if (!uci.get_first(conf, 'ss_rules')) {
|
||||
uci.set(conf, uci.add(conf, 'ss_rules', 'ss_rules'), 'disabled', '1');
|
||||
}
|
||||
})
|
||||
]);
|
||||
},
|
||||
render: function(stats) {
|
||||
var m, s, o;
|
||||
|
||||
m = new form.Map(conf, _('Redir Rules'),
|
||||
_('On this page you can configure how traffics are to be \
|
||||
forwarded to ss-redir instances. \
|
||||
If enabled, packets will first have their src ip addresses checked \
|
||||
against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, \
|
||||
<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> \
|
||||
will give the default action to be taken. \
|
||||
If the prior check results in action <em>checkdst</em>, packets will continue \
|
||||
to have their dst addresses checked.'));
|
||||
|
||||
s = m.section(form.GridSection);
|
||||
s.addremove = true;
|
||||
s.addbtntitle = _('Add a new rule...');
|
||||
s.cfgsections = function() {
|
||||
return this.map.data.sections(this.map.config)
|
||||
.filter(function(s) { return cfgtypes.indexOf(s['.type']) !== -1; })
|
||||
.map(function(s) { return s['.name']; });
|
||||
};
|
||||
s.tab('general', _('General Settings'));
|
||||
s.tab('src', _('Source Settings'));
|
||||
s.tab('dst', _('Destination Settings'));
|
||||
s.sectiontype = 'ss_rules';
|
||||
|
||||
s.addModalOptions = function(s, section_id, ev) {
|
||||
s.taboption('general', form.Flag, 'disabled', _('Disable'));
|
||||
s.taboption('general', form.Value, 'label', _('Label'));
|
||||
|
||||
//o = s.taboption('general', form.ListValue, 'server', _('server'));
|
||||
//ss.values_serverlist(o, '');
|
||||
o = s.taboption('general', form.ListValue, 'redir_tcp',
|
||||
_('ss-redir for TCP'));
|
||||
ss.values_redir(o, 'tcp');
|
||||
o = s.taboption('general', form.ListValue, 'redir_udp',
|
||||
_('ss-redir for UDP'));
|
||||
ss.values_redir(o, 'udp');
|
||||
|
||||
o = s.taboption('general', form.ListValue, 'local_default',
|
||||
_('Local-out default'),
|
||||
_('Default action for locally generated TCP packets'));
|
||||
ss.values_actions(o);
|
||||
o = s.taboption('general', widgets.DeviceSelect, 'ifnames',
|
||||
_('Ingress interfaces'),
|
||||
_('Only apply rules on packets from these network interfaces'));
|
||||
o.multiple = true;
|
||||
o.noaliases = true;
|
||||
o.noinactive = true;
|
||||
s.taboption('general', form.Value, 'ipt_args',
|
||||
_('Extra arguments'),
|
||||
_('Passes additional arguments to iptables. Use with care!'));
|
||||
|
||||
src_dst_option(s, 'src', form.DynamicList, 'src_ips_bypass',
|
||||
_('Src ip/net bypass'),
|
||||
_('Bypass ss-redir for packets with src address in this list'));
|
||||
src_dst_option(s, 'src', form.DynamicList, 'src_ips_forward',
|
||||
_('Src ip/net forward'),
|
||||
_('Forward through ss-redir for packets with src address in this list'));
|
||||
src_dst_option(s, 'src', form.DynamicList, 'src_ips_checkdst',
|
||||
_('Src ip/net checkdst'),
|
||||
_('Continue to have dst address checked for packets with src address in this list'));
|
||||
o = s.taboption('src', form.ListValue, 'src_default',
|
||||
_('Src default'),
|
||||
_('Default action for packets whose src address do not match any of the src ip/net list'));
|
||||
ss.values_actions(o);
|
||||
|
||||
src_dst_option(s, 'dst', form.DynamicList, 'dst_ips_bypass',
|
||||
_('Dst ip/net bypass'),
|
||||
_('Bypass ss-redir for packets with dst address in this list'));
|
||||
src_dst_option(s, 'dst', form.DynamicList, 'dst_ips_forward',
|
||||
_('Dst ip/net forward'),
|
||||
_('Forward through ss-redir for packets with dst address in this list'));
|
||||
|
||||
var dir = '/etc/shadowsocks-rust';
|
||||
o = s.taboption('dst', form.FileUpload, 'dst_ips_bypass_file',
|
||||
_('Dst ip/net bypass file'),
|
||||
_('File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>'));
|
||||
o.root_directory = dir;
|
||||
o = s.taboption('dst', form.FileUpload, 'dst_ips_forward_file',
|
||||
_('Dst ip/net forward file'),
|
||||
_('File containing ip/net for the purposes as with <em>Dst ip/net forward</em>'));
|
||||
o.root_directory = dir;
|
||||
o = s.taboption('dst', form.ListValue, 'dst_default',
|
||||
_('Dst default'),
|
||||
_('Default action for packets whose dst address do not match any of the dst ip list'));
|
||||
ss.values_actions(o);
|
||||
|
||||
o = s.taboption('dst', form.Flag, 'dst_forward_recentrst');
|
||||
o.title = _('Forward recentrst');
|
||||
o.description = _('Forward those packets whose dst have recently sent to us multiple tcp-rst');
|
||||
};
|
||||
|
||||
o = s.option(form.Button, 'disabled', _('Enable/Disable'));
|
||||
o.modalonly = false;
|
||||
o.editable = true;
|
||||
o.inputtitle = function(section_id) {
|
||||
var s = uci.get(conf, section_id);
|
||||
if (ss.ucival_to_bool(s['disabled'])) {
|
||||
this.inputstyle = 'reset';
|
||||
return _('Disabled');
|
||||
}
|
||||
this.inputstyle = 'save';
|
||||
return _('Enabled');
|
||||
};
|
||||
o.onclick = function(ev) {
|
||||
var inputEl = ev.target.parentElement.nextElementSibling;
|
||||
inputEl.value = ss.ucival_to_bool(inputEl.value) ? '0' : '1';
|
||||
return this.map.save();
|
||||
};
|
||||
return m.render();
|
||||
},
|
||||
});
|
|
@ -0,0 +1,82 @@
|
|||
'use strict';
|
||||
'require form';
|
||||
'require uci';
|
||||
'require ui';
|
||||
'require shadowsocks-rust as ss';
|
||||
|
||||
var conf = 'shadowsocks-rust';
|
||||
|
||||
return L.view.extend({
|
||||
render: function() {
|
||||
var m, s, o;
|
||||
|
||||
m = new form.Map(conf, _('Remote Servers'),
|
||||
_('Definition of remote shadowsocks servers. \
|
||||
Disable any of them will also disable instances referring to it.'));
|
||||
|
||||
s = m.section(form.GridSection, 'server');
|
||||
s.addremove = true;
|
||||
s.handleLinkImport = function() {
|
||||
var textarea = new ui.Textarea();
|
||||
ui.showModal(_('Import Links'), [
|
||||
textarea.render(),
|
||||
E('div', { class: 'right' }, [
|
||||
E('button', {
|
||||
class: 'btn',
|
||||
click: ui.hideModal
|
||||
}, [ _('Cancel') ]),
|
||||
' ',
|
||||
E('button', {
|
||||
class: 'btn cbi-button-action',
|
||||
click: ui.createHandlerFn(this, function() {
|
||||
textarea.getValue().split('\n').forEach(function(s) {
|
||||
var config = ss.parse_uri(s);
|
||||
if (config) {
|
||||
var tag = config[1];
|
||||
if (tag && !tag.match(/^[a-zA-Z0-9_]+$/)) tag = null;
|
||||
var sid = uci.add(conf, 'server', tag);
|
||||
config = config[0];
|
||||
Object.keys(config).forEach(function(k) {
|
||||
uci.set(conf, sid, k, config[k]);
|
||||
});
|
||||
}
|
||||
});
|
||||
return uci.save()
|
||||
.then(L.bind(this.map.load, this.map))
|
||||
.then(L.bind(this.map.reset, this.map))
|
||||
.then(L.ui.hideModal)
|
||||
.catch(function() {});
|
||||
})
|
||||
}, [ _('Import') ])
|
||||
])
|
||||
]);
|
||||
};
|
||||
s.renderSectionAdd = function(extra_class) {
|
||||
var el = form.GridSection.prototype.renderSectionAdd.apply(this, arguments);
|
||||
el.appendChild(E('button', {
|
||||
'class': 'cbi-button cbi-button-add',
|
||||
'title': _('Import Links'),
|
||||
'click': ui.createHandlerFn(this, 'handleLinkImport')
|
||||
}, [ _('Import Links') ]));
|
||||
return el;
|
||||
};
|
||||
|
||||
o = s.option(form.Flag, 'disabled', _('Disable'));
|
||||
o.editable = true;
|
||||
|
||||
ss.options_server(s);
|
||||
|
||||
return m.render();
|
||||
},
|
||||
addFooter: function() {
|
||||
var p = '#edit=';
|
||||
if (location.hash.indexOf(p) === 0) {
|
||||
var section_id = location.hash.substring(p.length);
|
||||
var editBtn = document.querySelector('#cbi-shadowsocks-rust-' + section_id + ' button.cbi-button-edit');
|
||||
if (editBtn)
|
||||
editBtn.click();
|
||||
}
|
||||
//return this.super('addFooter', arguments);
|
||||
return null;
|
||||
}
|
||||
});
|
|
@ -0,0 +1,22 @@
|
|||
-- Copyright 2017 Yousong Zhou <yszhou4tech@gmail.com>
|
||||
-- Licensed to the public under the Apache License 2.0.
|
||||
--
|
||||
module("luci.controller.shadowsocks-rust", package.seeall)
|
||||
|
||||
function index()
|
||||
entry({"admin", "services", "shadowsocks-rust"},
|
||||
alias("admin", "services", "shadowsocks-rust", "instances"),
|
||||
_("Shadowsocks-rust"), 59)
|
||||
|
||||
entry({"admin", "services", "shadowsocks-rust", "instances"},
|
||||
view("shadowsocks-rust/instances"),
|
||||
_("Local Instances"), 10).leaf = true
|
||||
|
||||
entry({"admin", "services", "shadowsocks-rust", "servers"},
|
||||
view("shadowsocks-rust/servers"),
|
||||
_("Remote Servers"), 20).leaf = true
|
||||
|
||||
entry({"admin", "services", "shadowsocks-rust", "rules"},
|
||||
view("shadowsocks-rust/rules"),
|
||||
_("Redir Rules"), 30).leaf = true
|
||||
end
|
327
luci-app-shadowsocks-rust/po/bg/shadowsocks-rust.po
Normal file
327
luci-app-shadowsocks-rust/po/bg/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,327 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Language: bg\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
336
luci-app-shadowsocks-rust/po/ca/shadowsocks-rust.po
Normal file
336
luci-app-shadowsocks-rust/po/ca/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,336 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"PO-Revision-Date: 2019-10-25 18:01+0000\n"
|
||||
"Last-Translator: Adolfo Jayme Barrientos <fitojb@ubuntu.com>\n"
|
||||
"Language-Team: Catalan <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsshadowsocks-rust/ca/>\n"
|
||||
"Language: ca\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 3.9.1-dev\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr "Activat"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr "Visió de conjunt"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr "Contrasenya"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Name"
|
||||
#~ msgstr "Nom"
|
327
luci-app-shadowsocks-rust/po/cs/shadowsocks-rust.po
Normal file
327
luci-app-shadowsocks-rust/po/cs/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,327 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Language: cs\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
341
luci-app-shadowsocks-rust/po/de/shadowsocks-rust.po
Normal file
341
luci-app-shadowsocks-rust/po/de/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,341 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"PO-Revision-Date: 2019-11-05 01:57+0000\n"
|
||||
"Last-Translator: Paul Spooren <mail@aparcar.org>\n"
|
||||
"Language-Team: German <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsshadowsocks-rust/de/>\n"
|
||||
"Language: de\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 3.10-dev\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Erweiterte Einstellungen"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr "Deaktivieren"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr "Deaktiviert"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr "Aktivieren/Deaktivieren"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr "Aktiviert"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr "Zusätzliche Argumente"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr "Allgemeine Einstellungen"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr "MTU"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr "Übersicht"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
"Gibt zusätzliche Kommandozeilenargumente an iptables weiter. Mit Vorsicht "
|
||||
"benutzen!"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr "Passwort"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr "Server"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Add"
|
||||
#~ msgstr "Hinzufügen"
|
||||
|
||||
#~ msgid "Name"
|
||||
#~ msgstr "Name"
|
327
luci-app-shadowsocks-rust/po/el/shadowsocks-rust.po
Normal file
327
luci-app-shadowsocks-rust/po/el/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,327 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Language: el\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
327
luci-app-shadowsocks-rust/po/en/shadowsocks-rust.po
Normal file
327
luci-app-shadowsocks-rust/po/en/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,327 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Language: en\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
373
luci-app-shadowsocks-rust/po/es/shadowsocks-rust.po
Normal file
373
luci-app-shadowsocks-rust/po/es/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,373 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2019-11-13 23:06+0000\n"
|
||||
"Last-Translator: Franco Castillo <castillofrancodamian@gmail.com>\n"
|
||||
"Language-Team: Spanish <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsshadowsocks-rust/es/>\n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 3.10-dev\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr "-- tipo de instancia --"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr "<oculto>"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Configuración avanzada"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr "Dirección de enlace"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr "Omitir ss-redir para paquetes con dirección dst en esta lista"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr "Omitir ss-redir para paquetes con dirección src en esta lista"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
"Continuar con la verificación de la dirección dst para paquetes con "
|
||||
"dirección src en esta lista"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr "Acción predeterminada para paquetes TCP generados localmente"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
"Acción predeterminada para paquetes cuya dirección dst no coincide con "
|
||||
"ninguna de la lista dst ip"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
"Acción predeterminada para paquetes cuya dirección src no coincide con "
|
||||
"ninguna de la lista src ip/net"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
"Definición de servidores shadowsocks remotos. Deshabilitar cualquiera de "
|
||||
"ellos también deshabilitará las instancias que lo refieran."
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr "Configuración de destino"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr "Desactivar"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr "Desactivado"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr "Dst predeterminado"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr "Omitir Dst ip/net"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr "Omitir archivo Dst ip/net"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr "Reenviar Dst ip/net"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr "Reenviar archivo Dst ip/net"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr "Activar SO_REUSEPORT"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr "Activar TCP Fast Open"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr "Activar TCP_NODELAY"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr "Activar/Desactivar"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr "Activado"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr "Argumentos extra"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
"Archivo que contiene ip/net para los fines como con <em>Omitir Dst ip/net</"
|
||||
"em>"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
"Archivo que contiene ip / net para los fines como con <em>Reenviar Dst ip/"
|
||||
"net</em>"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr "Reenviar recentrst"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
"Reenviar aquellos paquetes cuyos archivos dst nos hayan enviado "
|
||||
"recientemente múltiples tcp-rst"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
"Reenviar a través de ss-redir para paquetes con dirección dst en esta lista"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
"Reenviar a través de ss-redir para paquetes con dirección src en esta lista"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr "Configuración general"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr "IPv6 primero"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr "Interfaces de ingreso"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr "Instalar paquete"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr "Instalar el paquete iptables-mod-conntrack-extra"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
"Instancias de componentes de shadowsocks-rust, ej. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. Para habilitar una instancia, se requiere habilitar "
|
||||
"tanto la instancia como el servidor remoto al que hace referencia."
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr "Clave (base64)"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr "Instancias locales"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr "Dirección local"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr "Puerto local"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr "Salida local predeterminada"
|
||||
|
||||
# Maximum Transmission Unit
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr "MTU"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr "Método"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr "Modo de operación"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
"En esta página puede configurar cómo se reenviará el tráfico a las "
|
||||
"instancias de ss-redir. Si están habilitados, los paquetes tendrán primero "
|
||||
"sus direcciones src ip verificadas con <em>Omitir Src ip / net</em>, "
|
||||
"<em>Reenviar Src ip / net</em>, <em>Src ip / net checkdst</em > y si ninguno "
|
||||
"coincide con <em>Src predeterminado</em> dará la acción predeterminada que "
|
||||
"se debe realizar. Si la verificación anterior resulta en la acción "
|
||||
"<em>checkdst</em>, los paquetes continuarán teniendo sus direcciones dst "
|
||||
"marcadas."
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr "Solo aplicar reglas en paquetes desde estas interfaces de red"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr "Vista general"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr "Paquete no instalado"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr "Pasa argumentos adicionales a iptables. ¡Utilícelo con cuidado!"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr "Contraseña"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr "Plugin"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr "Opciones de plugin"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr "Preferir direcciones IPv6 al resolver nombres"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr "Reglas de redireccionamiento"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr "Servidores remotos"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr "Servidor remoto"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr "Correr como"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr "Corriendo"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr "Servidor"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr "Puerto del servidor"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr "Shadowsocks-rust"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr "Configuración de fuente"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr "Src predeterminado"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr "Omitir Src ip/net"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr "Src ip/net checkdst"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr "Reenviar Src ip/net"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr "La dirección ss-server iniciará la conexión desde"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr "La dirección ss-tunnel reenviará el tráfico a"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr "Tiempo de espera (seg)"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr "Direccion del tunel"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr "Verbosidad"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr "ss-redir para TCP"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr "ss-redir para UDP"
|
||||
|
||||
#~ msgid "Add"
|
||||
#~ msgstr "Añadir"
|
||||
|
||||
#~ msgid "Install package %q"
|
||||
#~ msgstr "Instalar paquete %q"
|
||||
|
||||
#~ msgid "Name"
|
||||
#~ msgstr "Nombre"
|
346
luci-app-shadowsocks-rust/po/fr/shadowsocks-rust.po
Normal file
346
luci-app-shadowsocks-rust/po/fr/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,346 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"PO-Revision-Date: 2019-10-24 13:55+0000\n"
|
||||
"Last-Translator: Nathan <bonnemainsnathan@gmail.com>\n"
|
||||
"Language-Team: French <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsshadowsocks-rust/fr/>\n"
|
||||
"Language: fr\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 3.9.1-dev\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr "<masqué>"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Paramètres avancés"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
#, fuzzy
|
||||
msgid "Bind address"
|
||||
msgstr "Adresse de liaison"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr "Action par défaut pour les paquets TCP générés localement"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr "Paramètres de destination"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr "Désactiver"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr "Désactivé"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr "Activer SO_REUSEPORT"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr "Activer TCP_NODELAY"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr "Activer/Désactiver"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr "Activé"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr "Arguments supplémentaires"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr "Paramètres généraux"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr "IPv6 en priorité"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr "Interfaces d'entrée"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr "Clé (base64)"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr "Instances locales"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr "Adresse locale"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr "Port local"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr "Méthode"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr "Mode de fonctionnement"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
"Appliquer les règles uniquement sur les paquets de ces interfaces réseau"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr "Vue d'ensemble"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr "Le paquet n'est pas installé"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
"Passe des arguments supplémentaires aux tables d'adresses IP. A utiliser "
|
||||
"avec précaution !"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr "Mot de passe"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr "Plugin"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr "Options de plugin"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr "Préférer les adresses IPv6 lors de la résolution des noms"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr "Règles de redirection"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr "Serveurs distants"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr "Serveur distant"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr "Exécuter comme"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr "En cours d'exécution"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr "Serveur"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr "Port serveur"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr "Délai d'attente (s)"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr "Adresse du tunnel"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr "Verbeux"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Add"
|
||||
#~ msgstr "Ajouter"
|
||||
|
||||
#~ msgid "Install package %q"
|
||||
#~ msgstr "Installer le paquet %q"
|
||||
|
||||
#~ msgid "Name"
|
||||
#~ msgstr "Nom"
|
327
luci-app-shadowsocks-rust/po/he/shadowsocks-rust.po
Normal file
327
luci-app-shadowsocks-rust/po/he/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,327 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Language: he\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
327
luci-app-shadowsocks-rust/po/hi/shadowsocks-rust.po
Normal file
327
luci-app-shadowsocks-rust/po/hi/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,327 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Language: hi\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
327
luci-app-shadowsocks-rust/po/hu/shadowsocks-rust.po
Normal file
327
luci-app-shadowsocks-rust/po/hu/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,327 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Language: hu\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
327
luci-app-shadowsocks-rust/po/it/shadowsocks-rust.po
Normal file
327
luci-app-shadowsocks-rust/po/it/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,327 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Language: it\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
327
luci-app-shadowsocks-rust/po/ja/shadowsocks-rust.po
Normal file
327
luci-app-shadowsocks-rust/po/ja/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,327 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Language: ja\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
327
luci-app-shadowsocks-rust/po/ko/shadowsocks-rust.po
Normal file
327
luci-app-shadowsocks-rust/po/ko/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,327 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Language: ko\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
327
luci-app-shadowsocks-rust/po/ms/shadowsocks-rust.po
Normal file
327
luci-app-shadowsocks-rust/po/ms/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,327 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Language: ms\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
333
luci-app-shadowsocks-rust/po/nb_NO/shadowsocks-rust.po
Normal file
333
luci-app-shadowsocks-rust/po/nb_NO/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,333 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"PO-Revision-Date: 2019-10-30 03:22+0000\n"
|
||||
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
|
||||
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsshadowsocks-rust/nb_NO/>\n"
|
||||
"Language: nb_NO\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 3.9.1\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr "Påskrudd"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
335
luci-app-shadowsocks-rust/po/pl/shadowsocks-rust.po
Normal file
335
luci-app-shadowsocks-rust/po/pl/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,335 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"PO-Revision-Date: 2019-11-17 11:07+0000\n"
|
||||
"Last-Translator: Marcin Net <marcin.net@linux.pl>\n"
|
||||
"Language-Team: Polish <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsshadowsocks-rust/pl/>\n"
|
||||
"Language: pl\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
||||
"|| n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 3.10-dev\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Ustawienia zaawansowane"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr "Wyłącz"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr "Wyłączone"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr "Włącz/Wyłącz"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr "Włączone"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr "Dodatkowe argumenty"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr "Ustawienia główne"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr "MTU"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr "Przegląd"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
"Przekazuje dodatkowe argumenty do iptables. Zachowaj szczególną ostrożność!"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr "Hasło"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr "Serwer"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr "Port serwera"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
339
luci-app-shadowsocks-rust/po/pt/shadowsocks-rust.po
Normal file
339
luci-app-shadowsocks-rust/po/pt/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,339 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"PO-Revision-Date: 2019-11-02 16:07+0000\n"
|
||||
"Last-Translator: ssantos <ssantos@web.de>\n"
|
||||
"Language-Team: Portuguese <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsshadowsocks-rust/pt/>\n"
|
||||
"Language: pt\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 3.10-dev\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Definições Avançadas"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr "Desativar"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr "Desativado"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr "Ativar/Desativar"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr "Ativado"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr "Argumentos adicionais"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr "Configurações Gerais"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr "MTU"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr "Visão Geral"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr "Passa argumentos adicionais para o iptables. Usar com cuidado!"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr "Palavra-passe"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr "Servidor"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr "Porta do servidor"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Add"
|
||||
#~ msgstr "Adicionar"
|
||||
|
||||
#~ msgid "Name"
|
||||
#~ msgstr "Nome"
|
327
luci-app-shadowsocks-rust/po/pt_BR/shadowsocks-rust.po
Normal file
327
luci-app-shadowsocks-rust/po/pt_BR/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,327 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Language: pt_BR\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
327
luci-app-shadowsocks-rust/po/ro/shadowsocks-rust.po
Normal file
327
luci-app-shadowsocks-rust/po/ro/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,327 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Language: ro\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
337
luci-app-shadowsocks-rust/po/ru/shadowsocks-rust.po
Normal file
337
luci-app-shadowsocks-rust/po/ru/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,337 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"PO-Revision-Date: 2019-10-19 18:26+0000\n"
|
||||
"Last-Translator: Anton Kikin <a.a.kikin@gmail.com>\n"
|
||||
"Language-Team: Russian <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsshadowsocks-rust/ru/>\n"
|
||||
"Language: ru\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<="
|
||||
"4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 3.9.1-dev\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Дополнительные настройки"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Add"
|
||||
#~ msgstr "Добавить"
|
327
luci-app-shadowsocks-rust/po/sk/shadowsocks-rust.po
Normal file
327
luci-app-shadowsocks-rust/po/sk/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,327 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Language: sk\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
339
luci-app-shadowsocks-rust/po/sv/shadowsocks-rust.po
Normal file
339
luci-app-shadowsocks-rust/po/sv/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,339 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"PO-Revision-Date: 2019-10-17 20:24+0000\n"
|
||||
"Last-Translator: Mattias Münster <mattiasmun@gmail.com>\n"
|
||||
"Language-Team: Swedish <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsshadowsocks-rust/sv/>\n"
|
||||
"Language: sv\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 3.9.1-dev\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Avancerade inställningar"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr "Bindningsadress"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr "Inaktivera"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr "Inaktiverad"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr "Aktivera/Inaktivera"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr "Aktiverad"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr "Extra argument"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr "Generella inställningar"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr "MTU"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr "Översikt"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr "Lösenord"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr "Server"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr "Server-port"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Add"
|
||||
#~ msgstr "Lägg till"
|
||||
|
||||
#~ msgid "Name"
|
||||
#~ msgstr "Namn"
|
359
luci-app-shadowsocks-rust/po/templates/shadowsocks-rust.pot
Normal file
359
luci-app-shadowsocks-rust/po/templates/shadowsocks-rust.pot
Normal file
|
@ -0,0 +1,359 @@
|
|||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:218
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:44
|
||||
msgid "Add a new rule..."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:84
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:27
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:70
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:114
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:93
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:52
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:78
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:56
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:64
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:129
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:129
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:113
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:97
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:105
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:100
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:109
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:188
|
||||
msgid "Enable MPTCP"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:187
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:185
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:186
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:122
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:122
|
||||
msgid "Enable/Disable"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:132
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:132
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid "Extra arguments"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:106
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:110
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:101
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:50
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/root/usr/share/rpcd/acl.d/luci-app-shadowsocks-rust.json:3
|
||||
msgid "Grant service list access to LuCI app shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:184
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:50
|
||||
msgid "Import"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:21
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:58
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:60
|
||||
msgid "Import Links"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:242
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:57
|
||||
msgid "Label"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
#: luci-app-shadowsocks-rust/root/usr/share/luci/menu.d/luci-app-shadowsocks-rust.json:14
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:121
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "MTU"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:152
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:172
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:33
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:74
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:105
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:241
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:80
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:157
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:167
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:169
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:184
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:32
|
||||
#: luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
#: luci-app-shadowsocks-rust/root/usr/share/luci/menu.d/luci-app-shadowsocks-rust.json:32
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
#: luci-app-shadowsocks-rust/root/usr/share/luci/menu.d/luci-app-shadowsocks-rust.json:23
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:115
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:117
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:144
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:148
|
||||
msgid "Server port"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
#: luci-app-shadowsocks-rust/root/usr/share/luci/menu.d/luci-app-shadowsocks-rust.json:3
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:92
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:83
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:88
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:97
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:183
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:65
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
327
luci-app-shadowsocks-rust/po/tr/shadowsocks-rust.po
Normal file
327
luci-app-shadowsocks-rust/po/tr/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,327 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Language: tr\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
341
luci-app-shadowsocks-rust/po/uk/shadowsocks-rust.po
Normal file
341
luci-app-shadowsocks-rust/po/uk/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,341 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"PO-Revision-Date: 2019-11-05 01:57+0000\n"
|
||||
"Last-Translator: Yurii Petrashko <yuripet@gmail.com>\n"
|
||||
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/openwrt/"
|
||||
"luciapplicationsshadowsocks-rust/uk/>\n"
|
||||
"Language: uk\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<="
|
||||
"4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 3.10-dev\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Додаткові параметри"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr "Увімкнути/Вимкнути"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr "Увімкнено"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr "Додаткові аргументи"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr "Загальні параметри"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr "MTU"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr "Огляд"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
"Передача додаткових аргументів для IPTables. Використовуйте з обережністю!"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr "Пароль"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Add"
|
||||
#~ msgstr "Додати"
|
||||
|
||||
#~ msgid "Name"
|
||||
#~ msgstr "Ім'я"
|
327
luci-app-shadowsocks-rust/po/vi/shadowsocks-rust.po
Normal file
327
luci-app-shadowsocks-rust/po/vi/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,327 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Language: vi\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
352
luci-app-shadowsocks-rust/po/zh-cn/shadowsocks-rust.po
Normal file
352
luci-app-shadowsocks-rust/po/zh-cn/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,352 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"PO-Revision-Date: 2019-11-08 21:05+0000\n"
|
||||
"Last-Translator: Meano Lee <meanocat@gmail.com>\n"
|
||||
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
|
||||
"openwrt/luciapplicationsshadowsocks-rust/zh_Hans/>\n"
|
||||
"Language: zh-cn\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 3.10-dev\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr "-- 实例类型 --"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr "<已隐藏>"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr "高级设置"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr "绑定地址"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr "对于目的地址在列表中的报文,绕过ss-redir"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr "对于源地址在列表中的报文,绕过ss-redir"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr "对于源地址在列表中的报文,继续检查其目的地址"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr "对于设备本身产生的TCP报文的默认行为"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr "对于目的地址不在列表中的报文的默认行为"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr "对于源地址不在列表中的报文的默认行为"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
"在此页面设定访问远端shadowsocks服务器的参数。请注意,禁用远端服务器会同时停止"
|
||||
"与之关联的shadowsocks-rust组件"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr "目的地址设定"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr "禁用"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr "已禁用"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr "目的未匹配时默认行为"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr "绕过"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr "绕过(文件)"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr "转发"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr "转发(文件)"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr "启用SO_REUSEPORT"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr "启用TCP Fast Open"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr "启用TCP_NODELAY"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr "启用/禁用"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr "已启用"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr "额外参数"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr "文件列出需要绕过ss-redir转发的地址和网段"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr "文件列出需要使用ss-redir转发的地址和网段"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr "转发被连接重置的地址"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr "若近期多次收到某地址的连接重置报文,则将其加入到转发列表中"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr "对于目的地址在列表中的报文,通过ss-redir转发"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr "对于源地址在列表中的报文,通过ss-redir转发"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr "基本设置"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr "IPv6优先"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr "入口网卡"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr "安装软件包"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr "安装iptables-mod-conntrack-extra"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
"此页面展示本地运行的shadowsocks-rust各组件实例,如ss-local、ss-redir、ss-"
|
||||
"tunnel、ss-server等。请注意,实际启用一个实例要求实例本身及所关联的远端服务器"
|
||||
"都是启用状态。"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr "密钥(base64)"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr "本地实例"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr "监听地址"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr "监听端口"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr "本地报文默认行为"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr "MTU"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr "加密方法"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr "工作模式"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
"在此页面,您可以配置指定报文是否通过ss-redir转发。启用后,规则会先将报文的源"
|
||||
"地址与相应的地址集进行匹配,依次决定是否“绕过(<em>bypass</em>)”、“转发"
|
||||
"(<em>forward</em>)”,或“继续匹配目的地址(<em>checkdst</em>)”;若未在集合"
|
||||
"中找到匹配,则执行指定的默认动作。继续匹配目的地址时同理。"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr "仅对来自指定网卡的报文应用规则"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr "概览"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr "依赖包未安装"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr "给iptables的额外参数。请小心使用"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr "密码"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr "启用插件"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr "插件选项"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr "名字解析时优先取用IPv6地址"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr "转发规则"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr "远端服务器"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr "服务器"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr "运行时用户"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr "运行中"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr "监听地址"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr "监听端口"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr "源地址设定"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr "源未匹配默认行为"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr "绕过"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr "继续匹配目的地址"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr "转发"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr "ss-server建立连接时使用的源地址"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr "ss-tunnel所建立隧道的对端地址"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr "超时时间(秒)"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr "隧道对端地址"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr "记录详细日志"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr "用于TCP转发的ss-redir"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr "用于UDP转发的ss-redir"
|
||||
|
||||
#~ msgid "Add"
|
||||
#~ msgstr "添加"
|
||||
|
||||
#~ msgid "Install package %q"
|
||||
#~ msgstr "安装%q"
|
||||
|
||||
#~ msgid "Name"
|
||||
#~ msgstr "名称"
|
327
luci-app-shadowsocks-rust/po/zh-tw/shadowsocks-rust.po
Normal file
327
luci-app-shadowsocks-rust/po/zh-tw/shadowsocks-rust.po
Normal file
|
@ -0,0 +1,327 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Language: zh_Hant\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:43
|
||||
msgid "-- instance type --"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:211
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:76
|
||||
msgid "Advanced Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:86
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:87
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:73
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:79
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:59
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:103
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:82
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:14
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:43
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:77
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:45
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:20
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:128
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:102
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:86
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:94
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:89
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:98
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:181
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:179
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:180
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:121
|
||||
msgid "Enable/Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:131
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:68
|
||||
msgid "Extra arguments"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:95
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:99
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:118
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:119
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:90
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:76
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:75
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:41
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:62
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:235
|
||||
msgid "Install package"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:111
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:25
|
||||
msgid ""
|
||||
"Instances of shadowsocks-rust components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:155
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:24
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:13
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:113
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:117
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:58
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:171
|
||||
msgid "MTU"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:146
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:166
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:31
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:63
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:104
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:234
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:69
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:151
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:161
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:163
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:178
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:30
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:21
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/servers.js:13
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:17
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:111
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:175
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:116
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:138
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:142
|
||||
msgid "Server port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/luasrc/controller/shadowsocks-rust.lua:9
|
||||
msgid "Shadowsocks-rust"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:42
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:81
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:72
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:78
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:75
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:87
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:96
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:173
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/instances.js:95
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/shadowsocks-rust.js:177
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:51
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-rust/htdocs/luci-static/resources/view/shadowsocks-rust/rules.js:54
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
|
@ -0,0 +1,13 @@
|
|||
#!/bin/sh
|
||||
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
delete ucitrack.@shadowsocks-rust[-1]
|
||||
add ucitrack shadowsocks-rust
|
||||
set ucitrack.@shadowsocks-rust[-1].init=shadowsocks-rust
|
||||
commit ucitrack
|
||||
EOF
|
||||
|
||||
rm -f /tmp/luci-indexcache
|
||||
mkdir -p /etc/shadowsocks-rust
|
||||
/etc/init.d/rpcd reload
|
||||
exit 0
|
|
@ -0,0 +1,39 @@
|
|||
{
|
||||
"admin/services/shadowsocks-rust": {
|
||||
"title": "Shadowsocks-rust",
|
||||
"order": 59,
|
||||
"action": {
|
||||
"type": "firstchild"
|
||||
},
|
||||
"depends": {
|
||||
"acl": [ "luci-app-shadowsocks-rust" ]
|
||||
}
|
||||
},
|
||||
|
||||
"admin/services/shadowsocks-rust/instances": {
|
||||
"title": "Local Instances",
|
||||
"order": 10,
|
||||
"action": {
|
||||
"type": "view",
|
||||
"path": "shadowsocks-rust/instances"
|
||||
}
|
||||
},
|
||||
|
||||
"admin/services/shadowsocks-rust/servers": {
|
||||
"title": "Remote Servers",
|
||||
"order": 20,
|
||||
"action": {
|
||||
"type": "view",
|
||||
"path": "shadowsocks-rust/servers"
|
||||
}
|
||||
},
|
||||
|
||||
"admin/services/shadowsocks-rust/rules": {
|
||||
"title": "Redir Rules",
|
||||
"order": 30,
|
||||
"action": {
|
||||
"type": "view",
|
||||
"path": "shadowsocks-rust/rules"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"luci-app-shadowsocks-rust": {
|
||||
"description": "Grant service list access to LuCI app shadowsocks-rust",
|
||||
"read": {
|
||||
"ubus": {
|
||||
"service": [ "list" ]
|
||||
},
|
||||
"uci": [ "shadowsocks-rust" ]
|
||||
},
|
||||
"write": {
|
||||
"file": {
|
||||
"/etc/shadowsocks-rust/*": [ "write" ]
|
||||
},
|
||||
"uci": [ "shadowsocks-rust" ]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -2,7 +2,7 @@ config mlvpn 'general'
|
|||
option enable '0'
|
||||
option password ''
|
||||
option timeout '30'
|
||||
option reorder_buffer_size '128'
|
||||
option reorder_buffer_size '512'
|
||||
option loss_tolerence '50'
|
||||
option mode 'client'
|
||||
option host '128.128.128.128'
|
||||
|
|
|
@ -4,7 +4,7 @@ if [ "$(uci -q get network.globals.mptcp_path_manager)" = "" ]; then
|
|||
set network.globals.multipath='enable'
|
||||
set network.globals.mptcp_path_manager='fullmesh'
|
||||
set network.globals.mptcp_scheduler='blest'
|
||||
set network.globals.congestion='bbr'
|
||||
set network.globals.congestion='bbr2'
|
||||
set network.globals.mptcp_checksum=0
|
||||
set network.globals.mptcp_debug=0
|
||||
set network.globals.mptcp_syn_retries=4
|
||||
|
@ -19,7 +19,7 @@ if [ "$(uci -q get network.globals.mptcp_path_manager)" = "" ]; then
|
|||
EOF
|
||||
fi
|
||||
# BBRv2 is replaced by BBRv3
|
||||
if [ "$(uci -q get network.globals.congestion)" = "bbr2" ]; then
|
||||
if [ "$(uci -q get network.globals.congestion)" = "bbr2" ] && [ -z "$(uname -a | grep 5.4)" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set network.globals.congestion='bbr'
|
||||
commit network
|
||||
|
|
|
@ -629,7 +629,7 @@ del_server_route() {
|
|||
remove_route() {
|
||||
local serverip="$1"
|
||||
[ -n "$serverip" ] && serverip="$(resolveip -4 -t 5 $serverip | head -n 1 | tr -d '\n')"
|
||||
[ -n "$serverip" ] && _log "Delete default route to $serverip via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE"
|
||||
[ -n "$serverip" ] && _log "Delete default route to $serverip dev $OMR_TRACKER_DEVICE"
|
||||
local metric
|
||||
if [ -z "$OMR_TRACKER_INTERFACE" ]; then
|
||||
metric=0
|
||||
|
|
|
@ -81,11 +81,15 @@ if [ "$(pgrep uhttpd)" = "" ] && [ -f /etc/init.d/uhttpd ]; then
|
|||
sleep 5
|
||||
fi
|
||||
|
||||
#if [ "$(pgrep ModemManager)" = "" ] && [ -f /etc/init.d/modemmanager ] && [ -n "$(uci -q show network | grep modemmanager)" ] && [ "$(uci -q get openmptcprouter.settings.modemmanager)" != "0" ]; then
|
||||
# _log "Can't find ModemManager, restart it..."
|
||||
# /etc/init.d/modemmanager restart 2>&1 >/dev/null
|
||||
# sleep 5
|
||||
#fi
|
||||
if [ -z "$(pgrep ModemManager)" ] && [ -f /etc/init.d/modemmanager ] && [ -n "$(uci -q show network | grep modemmanager)" ]; then
|
||||
_log "Can't find ModemManager, restart it..."
|
||||
/etc/init.d/modemmanager restart 2>&1 >/dev/null
|
||||
sleep 5
|
||||
elif [ -n "$(pgrep ModemManager)" ] && [ -f /etc/init.d/modemmanager ] && [ -z "$(uci -q show network | grep modemmanager)" ]; then
|
||||
_log "ModemManager not used, stop it..."
|
||||
/etc/init.d/modemmanager stop 2>&1 >/dev/null
|
||||
sleep 5
|
||||
fi
|
||||
|
||||
if [ "$(uci -q get v2ray.main.enabled)" = "1" ] && [ -f /etc/init.d/v2ray ] && [ "$(pgrep -f omr-tracker-v2ray)" = "" ] && [ "$(pgrep -f '/etc/init.d/omr-tracker')" = "" ]; then
|
||||
_log "Can't find omr-tracker-v2ray, restart omr-tracker..."
|
||||
|
|
|
@ -65,7 +65,7 @@ proxy=${OMR_TRACKER_PROXY:-127.0.0.1:1111}
|
|||
hosts=${OMR_TRACKER_HOSTS:-1.1.1.1 1.0.0.1}
|
||||
wait_test=${OMR_TRACKER_WAIT_TEST:-0}
|
||||
server=${OMR_TRACKER_SERVER:-sss0}
|
||||
|
||||
type=${OMR_TRACKER_SS_TYPE:-libev}
|
||||
nodns=0
|
||||
|
||||
last=0
|
||||
|
@ -103,10 +103,16 @@ while true; do
|
|||
script_alert_up="$(uci -q get omr-tracker.proxy.script_alert_up)"
|
||||
[ -n "$script_alert_up" ] && eval $script_alert_up
|
||||
}
|
||||
if [ -z "$($IPTABLESSAVE 2>/dev/null | grep :ssr)" ] && [ "$(uci -q get shadowsocks-libev.ss_rules.disabled)" != "1" ]; then
|
||||
_log "Reload Shadowsocks rules"
|
||||
/etc/init.d/shadowsocks-libev rules_up 2> /dev/null
|
||||
_get_ip
|
||||
if [ -z "$($IPTABLESSAVE 2>/dev/null | grep :ssr)" ]; then
|
||||
if [ "$type" = "libev" ] && [ "$(uci -q get shadowsocks-libev.ss_rules.disabled)" != "1" ]; then
|
||||
_log "Reload Shadowsocks rules"
|
||||
/etc/init.d/shadowsocks-libev rules_up 2> /dev/null
|
||||
_get_ip
|
||||
elif [ "$type" = "rust" ] && [ "$(uci -q get shadowsocks-rust.ss_rules.disabled)" != "1" ]; then
|
||||
_log "Reload Shadowsocks Rust rules"
|
||||
/etc/init.d/shadowsocks-rust rules_up 2> /dev/null
|
||||
_get_ip
|
||||
fi
|
||||
fi
|
||||
[ "$(uci -q get openmptcprouter.omr.detected_public_ipv4)" = "" ] || ([ "$(uci -q get openmptcprouter.settings.disable_ipv6)" != "1" ] && [ "$(uci -q get openmptcprouter.omr.detected_public_ipv6)" = "" ]) && _get_ip
|
||||
last=0
|
||||
|
@ -119,11 +125,19 @@ while true; do
|
|||
OMR_TRACKER_STATUS_MSG="Shadowsocks ${server} is down (can't contact via http ${nocontact})"
|
||||
uci -q set openmptcprouter.omr.ss_${server}="down"
|
||||
uci -q commit openmptcprouter.omr
|
||||
[ "$(uci show openmptcprouter.omr | grep ss_ | grep up)" = "" ] && /etc/init.d/shadowsocks-libev rules_down 2> /dev/null
|
||||
if [ "$(uci show openmptcprouter.omr | grep ss_ | grep up)" = "" ]; then
|
||||
[ "$type" = "libev" ] && /etc/init.d/shadowsocks-libev rules_down 2> /dev/null
|
||||
[ "$type" = "rust" ] && /etc/init.d/shadowsocks-rust rules_down 2> /dev/null
|
||||
fi
|
||||
_get_ip
|
||||
server_ping=false
|
||||
serverip="$(uci -q get shadowsocks-libev.${server}.server)"
|
||||
disabled="$(uci -q get shadowsocks-libev.${server}.disabled)"
|
||||
if [ "$type" = "libev" ]; then
|
||||
serverip="$(uci -q get shadowsocks-libev.${server}.server)"
|
||||
disabled="$(uci -q get shadowsocks-libev.${server}.disabled)"
|
||||
elif [ "$type" = "rust" ]; then
|
||||
serverip="$(uci -q get shadowsocks-rust.${server}.server)"
|
||||
disabled="$(uci -q get shadowsocks-rust.${server}.disabled)"
|
||||
fi
|
||||
_ping_server $serverip
|
||||
if [ "$server_ping" = false ]; then
|
||||
_log "Server $server ($serverip) seems down, no answer to ping"
|
||||
|
@ -146,10 +160,17 @@ while true; do
|
|||
script_alert_down="$(uci -q get omr-tracker.proxy.script_alert_down)"
|
||||
[ -n "$script_alert_down" ] && eval $script_alert_down
|
||||
|
||||
if [ "$disabled" != "1" ] && [ "$(pgrep ss-redir)" = "" ] && [ "$(uci -q get shadowsocks-libev.${server}.key)" != "" ]; then
|
||||
_log "Can't find shadowsocks, restart it..."
|
||||
/etc/init.d/shadowsocks-libev restart
|
||||
sleep 5
|
||||
if [ "$disabled" != "1" ]; then
|
||||
if [ "$type" = "libev" ] && [ "$(pgrep ss-redir)" = "" ] && [ "$(uci -q get shadowsocks-libev.${server}.key)" != "" ]; then
|
||||
_log "Can't find shadowsocks, restart it..."
|
||||
/etc/init.d/shadowsocks-libev restart
|
||||
sleep 5
|
||||
fi
|
||||
if [ "$type" = "rust" ] && [ "$(pgrep ss-redir)" = "" ] && [ "$(uci -q get shadowsocks-libev.${server}.key)" != "" ]; then
|
||||
_log "Can't find shadowsocks rust, restart it..."
|
||||
/etc/init.d/shadowsocks-rust restart
|
||||
sleep 5
|
||||
fi
|
||||
fi
|
||||
sleep $wait_test
|
||||
fi
|
||||
|
|
|
@ -100,7 +100,7 @@ while true; do
|
|||
script_alert_up="$(uci -q get omr-tracker.proxy.script_alert_up)"
|
||||
[ -n "$script_alert_up" ] && eval $script_alert_up
|
||||
}
|
||||
if [ -z "$($IPTABLES -w -t nat -L -n 2>/dev/null | grep v2r)" ]; then
|
||||
if [ -z "$($IPTABLES -w -t nat -L -n 2>/dev/null | grep ^v2r)" ]; then
|
||||
_log "Reload V2Ray rules"
|
||||
/etc/init.d/v2ray rules_up 2> /dev/null
|
||||
_get_ip
|
||||
|
@ -111,7 +111,7 @@ while true; do
|
|||
last=$((last + 1 ))
|
||||
[ -z "$nocontact" ] && nocontact="$host" || nocontact="$nocontact, $host"
|
||||
[ "${last}" -ge "${retry}" ] && {
|
||||
if [ -n "$($IPTABLES -w -t nat -L -n 2>/dev/null | grep v2r)" ]; then
|
||||
if [ -n "$($IPTABLES -w -t nat -L -n 2>/dev/null | grep ^v2r)" ]; then
|
||||
_log "V2Ray is down (can't contact via http ${nocontact})"
|
||||
OMR_TRACKER_STATUS_MSG="V2Ray is down (can't contact via http ${nocontact})"
|
||||
uci -q set openmptcprouter.omr.v2ray="down"
|
||||
|
|
150
omr-tracker/files/bin/omr-tracker-xray
Executable file
150
omr-tracker/files/bin/omr-tracker-xray
Executable file
|
@ -0,0 +1,150 @@
|
|||
#!/bin/sh
|
||||
# vim: set noexpandtab tabstop=4 shiftwidth=4 softtabstop=4 :
|
||||
|
||||
name=$0
|
||||
basename="$(basename $0)"
|
||||
|
||||
if [ -f /usr/sbin/iptables-legacy ]; then
|
||||
IPTABLES="/usr/sbin/iptables-legacy"
|
||||
else
|
||||
IPTABLES="/usr/sbin/iptables"
|
||||
fi
|
||||
|
||||
|
||||
_log() {
|
||||
logger -p daemon.info -t "${basename}" "$@"
|
||||
}
|
||||
|
||||
_ping_server() {
|
||||
local host=$1
|
||||
ret=$(ping \
|
||||
-w "$OMR_TRACKER_TIMEOUT" \
|
||||
-c 1 \
|
||||
-q \
|
||||
"${host}"
|
||||
) && echo "$ret" | grep -sq " 0% packet loss" && {
|
||||
server_ping=true
|
||||
}
|
||||
}
|
||||
|
||||
_get_ip() {
|
||||
uci -q set openmptcprouter.omr=router
|
||||
if [ "$(uci -q get openmptcprouter.settings.external_check)" != "0" ]; then
|
||||
check_ipv4_website="$(uci -q get openmptcprouter.settings.check_ipv4_website)"
|
||||
[ -z "$check_ipv4_website" ] && check_ipv4_website="http://ip.openmptcprouter.com"
|
||||
check_ipv6_website="$(uci -q get openmptcprouter.settings.check_ipv6_website)"
|
||||
[ -z "$check_ipv6_website" ] && check_ipv6_website="http://ipv6.openmptcprouter.com"
|
||||
public_ipv4="$(curl -s -4 -m 3 $check_ipv4_website)"
|
||||
uci -q set openmptcprouter.omr.detected_public_ipv4="${public_ipv4}"
|
||||
[ -n "${public_ipv4}" ] && {
|
||||
uci -q set upnpd.config.external_ip="${public_ipv4}"
|
||||
uci -q commit upnpd
|
||||
}
|
||||
if [ "$(uci -q get openmptcprouter.omr.xray)" != "down" ]; then
|
||||
uci -q set openmptcprouter.omr.detected_ss_ipv4="$(curl -s -4 --socks5 "${proxy}" --max-time 3 $check_ipv4_website)"
|
||||
else
|
||||
uci -q del openmptcprouter.omr.detected_ss_ipv4
|
||||
fi
|
||||
if [ "$(uci -q get openmptcprouter.settings.disable_ipv6)" != "1" ]; then
|
||||
uci -q set openmptcprouter.omr.detected_public_ipv6="$(curl -s -6 -m 3 $check_ipv6_website)"
|
||||
else
|
||||
uci -q del openmptcprouter.omr.detected_public_ipv6
|
||||
# uci -q set openmptcprouter.omr.detected_ss_ipv6=$(curl -s -6 --socks5 ":::1111" --max-time 3 http://ip.openmptcprouter.com)
|
||||
fi
|
||||
fi
|
||||
uci -q commit openmptcprouter
|
||||
}
|
||||
|
||||
timeout=${OMR_TRACKER_TIMEOUT:-5}
|
||||
interval=${OMR_TRACKER_INTERVAL:-10}
|
||||
retry=${OMR_TRACKER_TRIES:-4}
|
||||
proxy=${OMR_TRACKER_PROXY:-127.0.0.1:1111}
|
||||
hosts=${OMR_TRACKER_HOSTS:-1.1.1.1 1.0.0.1}
|
||||
wait_test=${OMR_TRACKER_WAIT_TEST:-0}
|
||||
|
||||
nodns=0
|
||||
|
||||
last=0
|
||||
nocontact=""
|
||||
uci -q set openmptcprouter.omr=router
|
||||
uci -q delete openmptcprouter.omr.xray
|
||||
_get_ip
|
||||
|
||||
while true; do
|
||||
host="${hosts%% *}"
|
||||
[ "$host" = "$hosts" ] || {
|
||||
hosts="${hosts#* } $host"
|
||||
}
|
||||
if [ "$(curl -s -I -w %{http_code} --socks5 ${proxy} --max-time ${timeout} $host -o /dev/null)" != "000" ]; then
|
||||
nocontact=""
|
||||
[ "${last}" -ge "${retry}" ] || [ "$(uci -q get openmptcprouter.omr.xray)" = "" ] && {
|
||||
_log "xray is up (can contact via http ${host})"
|
||||
OMR_TRACKER_STATUS_MSG="xray is up (can contact via http ${host})"
|
||||
uci -q set openmptcprouter.omr.xray="up"
|
||||
uci -q commit openmptcprouter.omr
|
||||
/etc/init.d/openmptcprouter-vps set_vps_firewall
|
||||
mail_alert="$(uci -q get omr-tracker.proxy.mail_alert)"
|
||||
#[ -z "$mail_alert" ] && mail_alert="$(uci -q get omr-tracker.defaults.mail_alert)"
|
||||
[ "$mail_alert" = "1" ] && [ -n "$(uci -q get mail.default.to)" ] && {
|
||||
OMR_SYSNAME="$(uci -q get system.@system[0].hostname)"
|
||||
if [ "$(uci -q get omr-tracker.defaults.mail_up_subject)" != "" ] && [ "$(uci -q get omr-tracker.defaults.mail_up_message)" != "" ]; then
|
||||
mail_subject="$(uci -q get omr-tracker.defaults.mail_up_subject)"
|
||||
mail_subject=`echo $mail_subject | sed -e "s/%SYSNAME%/$OMR_SYSNAME/g" -e "s/%INTERFACE%/xray Proxy/g" -e "s/%DEVICE%/Shadowsocks Proxy/g" -e "s/%MESSAGE%/$OMR_TRACKER_STATUS_MSG/g"`
|
||||
mail_message="$(uci -q get omr-tracker.defaults.mail_up_message)"
|
||||
mail_message=`echo $mail_message | sed -e "s/%SYSNAME%/$OMR_SYSNAME/g" -e "s/%INTERFACE%/xray Proxy/g" -e "s/%DEVICE%/Shadowsocks Proxy/g" -e "s/%MESSAGE%/$OMR_TRACKER_STATUS_MSG/g"`
|
||||
echo -e "Subject: ${mail_subject}\n\n${mail_message}" | sendmail $(uci -q get mail.default.to)
|
||||
else
|
||||
echo -e "Subject: $OMR_SYSNAME: xray Proxy is UP." | sendmail $(uci -q get mail.default.to)
|
||||
fi
|
||||
}
|
||||
script_alert_up="$(uci -q get omr-tracker.proxy.script_alert_up)"
|
||||
[ -n "$script_alert_up" ] && eval $script_alert_up
|
||||
}
|
||||
if [ -z "$($IPTABLES -w -t nat -L -n 2>/dev/null | grep ^xr)" ]; then
|
||||
_log "Reload xray rules"
|
||||
/etc/init.d/xray rules_up 2> /dev/null
|
||||
_get_ip
|
||||
fi
|
||||
[ "$(uci -q get openmptcprouter.omr.detected_public_ipv4)" = "" ] || ([ "$(uci -q get openmptcprouter.settings.disable_ipv6)" != "1" ] && [ "$(uci -q get openmptcprouter.omr.detected_public_ipv6)" = "" ]) && _get_ip
|
||||
last=0
|
||||
else
|
||||
last=$((last + 1 ))
|
||||
[ -z "$nocontact" ] && nocontact="$host" || nocontact="$nocontact, $host"
|
||||
[ "${last}" -ge "${retry}" ] && {
|
||||
if [ -n "$($IPTABLES -w -t nat -L -n 2>/dev/null | grep ^xr)" ]; then
|
||||
_log "xray is down (can't contact via http ${nocontact})"
|
||||
OMR_TRACKER_STATUS_MSG="xray is down (can't contact via http ${nocontact})"
|
||||
uci -q set openmptcprouter.omr.xray="down"
|
||||
uci -q commit openmptcprouter.omr
|
||||
/etc/init.d/openmptcprouter-vps set_vps_firewall
|
||||
/etc/init.d/xray rules_down 2> /dev/null
|
||||
_get_ip
|
||||
server_ping=false
|
||||
server="$(uci -q get xray.omrout.s_vless_address)"
|
||||
_ping_server $server
|
||||
if [ "$server_ping" = false ]; then
|
||||
_log "Server ($server) seems down, no answer to ping"
|
||||
OMR_TRACKER_STATUS_MSG="${OMR_TRACKER_STATUS_MSG} - Server ($server) seems down, no answer to ping"
|
||||
fi
|
||||
mail_alert="$(uci -q get omr-tracker.proxy.mail_alert)"
|
||||
#[ -z "$mail_alert" ] && mail_alert="$(uci -q get omr-tracker.defaults.mail_alert)"
|
||||
[ "$mail_alert" = "1" ] && [ -n "$(uci -q get mail.default.to)" ] && {
|
||||
OMR_SYSNAME="$(uci -q get system.@system[0].hostname)"
|
||||
if [ "$(uci -q get omr-tracker.defaults.mail_down_subject)" != "" ] && [ "$(uci -q get omr-tracker.defaults.mail_down_message)" != "" ]; then
|
||||
mail_subject="$(uci -q get omr-tracker.defaults.mail_down_subject)"
|
||||
mail_subject=`echo $mail_subject | sed -e "s/%SYSNAME%/$OMR_SYSNAME/g" -e "s/%INTERFACE%/xray Proxy/g" -e "s/%DEVICE%/xray Proxy/g" -e "s/%MESSAGE%/$OMR_TRACKER_STATUS_MSG/g"`
|
||||
mail_message="$(uci -q get omr-tracker.defaults.mail_down_message)"
|
||||
mail_message=`echo $mail_message | sed -e "s/%SYSNAME%/$OMR_SYSNAME/g" -e "s/%INTERFACE%/xray Proxy/g" -e "s/%DEVICE%/xray Proxy/g" -e "s/%MESSAGE%/$OMR_TRACKER_STATUS_MSG/g"`
|
||||
echo -e "Subject: ${mail_subject}\n\n${mail_message}" | sendmail $(uci -q get mail.default.to)
|
||||
else
|
||||
echo -e "Subject: $OMR_SYSNAME: xray Proxy is down\n\nConnection failure of xray proxy detected. The reason is \"$OMR_TRACKER_STATUS_MSG\"." | sendmail $(uci -q get mail.default.to)
|
||||
fi
|
||||
}
|
||||
script_alert_down="$(uci -q get omr-tracker.proxy.script_alert_down)"
|
||||
[ -n "$script_alert_down" ] && eval $script_alert_down
|
||||
sleep $wait_test
|
||||
fi
|
||||
}
|
||||
fi
|
||||
sleep "${interval}"
|
||||
done
|
|
@ -187,6 +187,38 @@ _initialize_shadowsocks_tracker() {
|
|||
# }
|
||||
}
|
||||
|
||||
_initialize_shadowsocks_rust_tracker() {
|
||||
local redir_tcp server tracker_server
|
||||
server=$1
|
||||
|
||||
[ -n "$(echo $server | grep sss)" ] || return
|
||||
[ -z "$server" ] && return
|
||||
|
||||
#redir_tcp=$(uci -q get shadowsocks-libev.ss_rules.redir_tcp)
|
||||
#config_get tracker_server ss_rules server
|
||||
config_get ss_rust_disabled $server disabled 0
|
||||
[ "$ss_rust_disabled" = "0" ] && ss_rust_enable="1"
|
||||
[ -z "$(uci -q get shadowsocks-rust.tracker_${server})" ] && [ "$ss_rust_disabled" != "1" ] && {
|
||||
logger -t "omr-tracker" "Create ShadowSock tracker ss_local..."
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set shadowsocks-rust.tracker_${server}=ss_local
|
||||
set shadowsocks-rust.tracker_${server}.server=$server
|
||||
set shadowsocks-rust.tracker_${server}.local_address="127.0.0.1"
|
||||
set shadowsocks-rust.tracker_${server}.local_port=1111
|
||||
set shadowsocks-rust.tracker_${server}.mode=tcp_and_udp
|
||||
set shadowsocks-rust.tracker_${server}.timeout=600
|
||||
set shadowsocks-rust.tracker_${server}.fast_open=0
|
||||
set shadowsocks-rust.tracker_${server}.syslog=0
|
||||
set shadowsocks-rust.tracker_${server}.reuse_port=1
|
||||
set shadowsocks-rust.tracker_${server}.mptcp=1
|
||||
set shadowsocks-rust.tracker_${server}.verbose=0
|
||||
commit shadowsocks-rust
|
||||
EOF
|
||||
logger -t "omr-tracker" "Restart ShadowSocks"
|
||||
/etc/init.d/shadowsocks-rust restart
|
||||
}
|
||||
}
|
||||
|
||||
_launch_shadowsocks_tracker() {
|
||||
local hosts timeout tries interval local_port enabled server wait_test
|
||||
|
||||
|
@ -201,7 +233,7 @@ _launch_shadowsocks_tracker() {
|
|||
|
||||
[ "$enabled" = "0" ] || [ "$disabled" = "1" ] || [ -z "$hosts" ] && return
|
||||
[ -z "$server" ] && return
|
||||
[ "$(uci -q get shadowsocks-libev.$server.server)" = "192.168.1.3" ] || [ "$(uci -q get shadowsocks-libev.$server.server)" = "" ] && return
|
||||
[ "$server" = "192.168.1.3" ] || [ "$server" = "" ] && return
|
||||
|
||||
procd_open_instance
|
||||
# shellcheck disable=SC2086
|
||||
|
@ -211,8 +243,43 @@ _launch_shadowsocks_tracker() {
|
|||
procd_append_param env "OMR_TRACKER_TRIES=$tries"
|
||||
procd_append_param env "OMR_TRACKER_INTERVAL=$interval"
|
||||
procd_append_param env "OMR_TRACKER_PROXY=127.0.0.1:$local_port"
|
||||
procd_append_param env "OMR_TRACKER_WAIT_TEST=$wait_test"
|
||||
procd_append_param env "OMR_TRACKER_WAIT_TEST=$type"
|
||||
procd_append_param env "OMR_TRACKER_SERVER=$server"
|
||||
procd_append_param env "OMR_TRACKER_SS_TYPE=libev"
|
||||
procd_set_param limits nofile="51200 51200"
|
||||
procd_set_param respawn 0 10 0
|
||||
procd_set_param stderr 1
|
||||
procd_close_instance
|
||||
sleep 1
|
||||
}
|
||||
|
||||
_launch_shadowsocks_rust_tracker() {
|
||||
local hosts timeout tries interval local_port enabled server wait_test
|
||||
|
||||
[ "$(echo $1 | grep tracker)" != "" ] || return
|
||||
|
||||
_validate_section "proxy" "proxy"
|
||||
|
||||
config_get local_port "$1" local_port
|
||||
local disabled
|
||||
config_get disabled "$1" disabled 0
|
||||
config_get server "$1" server
|
||||
|
||||
[ "$enabled" = "0" ] || [ "$disabled" = "1" ] || [ -z "$hosts" ] && return
|
||||
[ -z "$server" ] && return
|
||||
[ "$server" = "192.168.1.3" ] || [ "$server" = "" ] && return
|
||||
|
||||
procd_open_instance
|
||||
# shellcheck disable=SC2086
|
||||
procd_set_param command /bin/omr-tracker-ss "$1"
|
||||
procd_append_param env "OMR_TRACKER_HOSTS=$hosts"
|
||||
procd_append_param env "OMR_TRACKER_TIMEOUT=$timeout"
|
||||
procd_append_param env "OMR_TRACKER_TRIES=$tries"
|
||||
procd_append_param env "OMR_TRACKER_INTERVAL=$interval"
|
||||
procd_append_param env "OMR_TRACKER_PROXY=127.0.0.1:$local_port"
|
||||
procd_append_param env "OMR_TRACKER_WAIT_TEST=$type"
|
||||
procd_append_param env "OMR_TRACKER_SERVER=$server"
|
||||
procd_append_param env "OMR_TRACKER_SS_TYPE=rust"
|
||||
procd_set_param limits nofile="51200 51200"
|
||||
procd_set_param respawn 0 10 0
|
||||
procd_set_param stderr 1
|
||||
|
@ -242,6 +309,28 @@ _launch_v2ray_tracker() {
|
|||
sleep 1
|
||||
}
|
||||
|
||||
_launch_xray_tracker() {
|
||||
local hosts timeout tries interval local_port enabled server wait_test
|
||||
|
||||
_validate_section "proxy" "proxy"
|
||||
[ "$enabled" = "0" ] || [ -z "$hosts" ] && return
|
||||
|
||||
procd_open_instance
|
||||
# shellcheck disable=SC2086
|
||||
procd_set_param command /bin/omr-tracker-xray "$1"
|
||||
procd_append_param env "OMR_TRACKER_HOSTS=$hosts"
|
||||
procd_append_param env "OMR_TRACKER_TIMEOUT=$timeout"
|
||||
procd_append_param env "OMR_TRACKER_TRIES=$tries"
|
||||
procd_append_param env "OMR_TRACKER_INTERVAL=$interval"
|
||||
procd_append_param env "OMR_TRACKER_PROXY=127.0.0.1:1111"
|
||||
procd_append_param env "OMR_TRACKER_WAIT_TEST=$wait_test"
|
||||
procd_set_param limits nofile="51200 51200"
|
||||
procd_set_param respawn 0 10 0
|
||||
procd_set_param stderr 1
|
||||
procd_close_instance
|
||||
sleep 1
|
||||
}
|
||||
|
||||
_multi_server() {
|
||||
config_get backup $1 backup
|
||||
[ "$backup" = "1" ] && multiserver=true
|
||||
|
@ -254,10 +343,14 @@ _gre_tunnel() {
|
|||
|
||||
start_service() {
|
||||
local ss_enable=0
|
||||
local ss_rust_enable=0
|
||||
logger -t "omr-tracker" "Launching..."
|
||||
config_load shadowsocks-libev
|
||||
config_foreach _initialize_shadowsocks_tracker server
|
||||
|
||||
config_load shadowsocks-rust
|
||||
config_foreach _initialize_shadowsocks_rust_tracker server
|
||||
|
||||
config_load network
|
||||
config_foreach _launch_tracker interface
|
||||
|
||||
|
@ -267,11 +360,21 @@ start_service() {
|
|||
#elif [ "$(uci -q get shadowsocks-libev.sss0.disabled)" != "1" ]; then
|
||||
# /etc/init.d/shadowsocks-libev rules_down
|
||||
fi
|
||||
if [ "$ss_rust_enable" = "1" ]; then
|
||||
config_load shadowsocks-rust
|
||||
config_foreach _launch_shadowsocks_rust_tracker ss_local
|
||||
fi
|
||||
config_load v2ray
|
||||
config_get v2rayenabled main enabled
|
||||
if [ "$v2rayenabled" = "1" ]; then
|
||||
_launch_v2ray_tracker
|
||||
fi
|
||||
|
||||
config_load xray
|
||||
config_get xrayenabled main enabled
|
||||
if [ "$xrayenabled" = "1" ]; then
|
||||
_launch_xray_tracker
|
||||
fi
|
||||
|
||||
multiserver=false
|
||||
config_load openmptcprouter
|
||||
|
@ -285,7 +388,7 @@ start_service() {
|
|||
}
|
||||
|
||||
service_triggers() {
|
||||
procd_add_reload_trigger omr-tracker network shadowsocks-libev v2ray
|
||||
procd_add_reload_trigger omr-tracker network shadowsocks-libev v2ray xray
|
||||
}
|
||||
|
||||
reload_service() {
|
||||
|
|
|
@ -73,17 +73,20 @@ MY_DEPENDS := \
|
|||
(TARGET_x86||TARGET_x86_64):kmod-iwlwifi (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl1000 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl100 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl105 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl135 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl2000 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl2030 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl3160 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl3168 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl5000 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl5150 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl6000g2 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl6000g2a (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl6000g2b (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl6050 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl7260 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl7265 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl7265d (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl8260c (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl8265 \
|
||||
(TARGET_x86||TARGET_x86_64):kmod-e1000 (TARGET_x86||TARGET_x86_64):kmod-e1000e (TARGET_x86||TARGET_x86_64):kmod-igb (TARGET_x86||TARGET_x86_64):kmod-ne2k-pci (TARGET_x86||TARGET_x86_64):kmod-r8169 (TARGET_x86||TARGET_x86_64):kmod-8139too (TARGET_x86||TARGET_x86_64):kmod-bnx2 \
|
||||
TARGET_mvebu:kmod-mwlwifi TARGET_mvebu:mwlwifi-firmware-88w8864 TARGET_mvebu:mwlwifi-firmware-88w8897 TARGET_mvebu:mwlwifi-firmware-88w8964 TARGET_mvebu:mwlwifi-firmware-88w8997 \
|
||||
!TARGET_mvebu:kmod-usb-serial !TARGET_mvebu:kmod-usb-serial-option !TARGET_mvebu:kmod-usb-serial-wwan !TARGET_mvebu:usb-modeswitch !TARGET_mvebu:uqmi \
|
||||
!(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-serial !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-serial-option !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-serial-wwan !(TARGET_mvebu||TARGET_ipq40xx):usb-modeswitch !TARGET_mvebu:uqmi \
|
||||
!TARGET_mvebu:umbim !TARGET_mvebu:kmod-mii !TARGET_mvebu:kmod-usb-net !TARGET_mvebu:kmod-usb-wdm !TARGET_mvebu:kmod-usb-net-qmi-wwan !TARGET_mvebu:kmod-usb-net-cdc-mbim !TARGET_mvebu:umbim \
|
||||
!TARGET_mvebu:kmod-usb-net-huawei-cdc-ncm !TARGET_mvebu:kmod-usb-net-rndis !TARGET_mvebu:kmod-usb-net-cdc-ether !TARGET_mvebu:kmod-usb-net-ipheth !TARGET_mvebu:usbmuxd !TARGET_mvebu:libusbmuxd \
|
||||
kmod-rt2800-usb kmod-rtl8xxxu kmod-rtl8192cu kmod-net-rtl8192su !LINUX_6_1:kmod-rtl8812au-ct \
|
||||
!TARGET_mvebu:luci-proto-qmi wpad-basic kmod-mt7601u kmod-rtl8187 TARGET_r4s:kmod-r8168 (TARGET_x86||TARGET_x86_64):kmod-usb-net-rtl8152 \
|
||||
!TARGET_mvebu:luci-app-mlvpn !TARGET_mvebu:mlvpn 464xlat kmod-zram kmod-swconfig swconfig kmod-ipt-nat kmod-ipt-nat6 luci-app-https-dns-proxy kmod-tcp-nanqinlang (TARGET_x86_64||aarch64):kmod-tcp-bbr2 iptables-mod-ipopt igmpproxy ss iptraf-ng \
|
||||
!(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-net-huawei-cdc-ncm !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-net-rndis !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-net-cdc-ether !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-net-ipheth !(TARGET_mvebu||TARGET_ipq40xx):usbmuxd !(TARGET_mvebu||TARGET_ipq40xx):libusbmuxd \
|
||||
!TARGET_ipq40xx:kmod-rt2800-usb !TARGET_ipq40xx:kmod-rtl8xxxu !TARGET_ipq40xx:kmod-rtl8192cu !TARGET_ipq40xx:kmod-net-rtl8192su !LINUX_6_1:kmod-rtl8812au-ct \
|
||||
!TARGET_mvebu:luci-proto-qmi wpad-basic !TARGET_ipq40xx:kmod-mt7601u !TARGET_ipq40xx:kmod-rtl8187 TARGET_r4s:kmod-r8168 (TARGET_x86||TARGET_x86_64):kmod-usb-net-rtl8152 \
|
||||
!TARGET_mvebu:luci-app-mlvpn !TARGET_mvebu:mlvpn 464xlat kmod-zram kmod-swconfig swconfig kmod-ipt-nat kmod-ipt-nat6 luci-app-https-dns-proxy kmod-tcp-nanqinlang iptables-mod-ipopt igmpproxy ss iptraf-ng \
|
||||
luci-app-acl block-mount blockd fstools luci-app-shutdown libwebp luci-proto-gre tcptraceroute luci-proto-mbim kmod-rtl8xxxu kmod-ath9k-htc luci-app-ttyd luci-mod-dashboard (TARGET_x86||TARGET_x86_64):rtl8192eu-firmware kmod-usb2 libustream-openssl (TARGET_x86||TARGET_x86_64):kmod-ixgbevf (TARGET_x86||TARGET_x86_64):kmod-igbvf \
|
||||
hwinfo (TARGET_x86||TARGET_x86_64):dmidecode luci-app-packet-capture kmod-bonding luci-proto-bonding luci-app-sysupgrade \
|
||||
luci-theme-openwrt-2020 luci-proto-wireguard luci-app-wireguard kmod-crypto-lib-blake2s (TARGET_x86||TARGET_x86_64):kmod-r8125 \
|
||||
(LINUX_5_15||LINUX_6_1):mptcpd (TARGET_x86||TARGET_x86_64):kmod-igc !TARGET_mvebu:kmod-mmc-spi kmod-macsec usbutils v2ray-core syslogd \
|
||||
(TARGET_x86||TARGET_x86_64):kmod-mlx4-core
|
||||
(TARGET_x86||TARGET_x86_64):kmod-mlx4-core \
|
||||
!(TARGET_ips40xx||TARGET_ramips):iptables-mod-ndpi !(TARGET_ips40xx||TARGET_ramips):kmod-ipt-ndpi libip4tc libip6tc \
|
||||
xray-core shadowsocks-rust-sslocal shadowsocks-rust-ssservice shadowsocks-rust-config luci-app-shadowsocks-rust
|
||||
# (TARGET_x86_64||aarch64):kmod-tcp-bbr2
|
||||
# !TARGET_mvebu:kmod-usb-net-smsc75xx
|
||||
# libnetfilter-conntrack ebtables ebtables-utils ip-full nstat \
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#!/bin/sh
|
||||
. /usr/lib/unbound/iptools.sh
|
||||
SERVER=$1
|
||||
INTERFACE=$2
|
||||
[ "$3" = "upload" ] && UPLOAD=$3
|
||||
|
@ -6,12 +7,31 @@ INTERFACE=$2
|
|||
[ "$4" = "upload" ] && UPLOAD=$4
|
||||
[ "$4" = "fasttest" ] && FASTTEST=$4
|
||||
[ -z "$SERVER" ] && SERVER="vps"
|
||||
KEY=$(uci -q get openmptcprouter.$SERVER.token)
|
||||
#KEY=$(uci -q get openmptcprouter.$SERVER.token)
|
||||
HOST=$(uci -q get openmptcprouter.$SERVER.ip | awk '{print $1}')
|
||||
PORT=$(uci -q get openmptcprouter.$SERVER.port)
|
||||
USERNAME=$(uci -q get openmptcprouter.$SERVER.username)
|
||||
PASSWORD=$(uci -q get openmptcprouter.$SERVER.password)
|
||||
MP=false
|
||||
if [ -n "$KEY" ] && [ -n "$HOST" ] && [ -n "$PORT" ]; then
|
||||
if [ -n "$HOST" ] && [ -n "$PORT" ] && [ -n "$USERNAME" ] && [ -n "$PASSWORD" ]; then
|
||||
trap : HUP INT TERM
|
||||
[ -z "$FASTTEST" ] && echo "Get API token on $SERVER"
|
||||
resolve="$(resolveip ${HOST})"
|
||||
valid_ip6=$(valid_subnet6 ${HOST})
|
||||
if [ "$resolve" != "${HOST}" ] || [ "$valid_ip6" != "ok" ]; then
|
||||
auth=`curl --max-time 10 -s -k -H "accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" -X POST -d 'username='${USERNAME}'&password='${PASSWORD} https://${HOST}:${PORT}/token`
|
||||
else
|
||||
auth=`curl --max-time 10 -s -k -H "accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" -X POST -d 'username='${USERNAME}'&password='${PASSWORD} https://[${HOST}]:${PORT}/token`
|
||||
fi
|
||||
[ -z "$auth" ] && {
|
||||
[ -z "$FASTTEST" ] && echo "No answer to API request..."
|
||||
exit 1
|
||||
}
|
||||
KEY="$(echo '$auth' | jsonfilter -q -e '@.access_token')"
|
||||
[ -n "$KEY" ] && {
|
||||
[ -z "$FASTTEST" ] && echo "No token..."
|
||||
exit 1
|
||||
}
|
||||
[ -z "$FASTTEST" ] && echo "Disable SQM bandwidth limit on $INTERFACE"
|
||||
[ -z "$FASTTEST" ] && echo "Download test via server ${SERVER}:"
|
||||
if [ -n "$INTERFACE" ]; then
|
||||
|
|
|
@ -293,6 +293,44 @@ _set_ss_server_vps() {
|
|||
fi
|
||||
}
|
||||
|
||||
_set_ssgo_server_vps() {
|
||||
local disabled port key method
|
||||
config_load shadowsocks-rust
|
||||
config_get disabled sss0 disabled
|
||||
[ "$disabled" = "1" ] && return
|
||||
config_get port sss0 server_port
|
||||
#config_get server $1 server
|
||||
config_get key sss0 key
|
||||
key="$(echo $key | sed 's/+/-/g; s/\//_/g;')"
|
||||
[ -z "$key" ] && return
|
||||
config_get method sss0 method
|
||||
local current_port current_key current_method
|
||||
[ -z "$vps_config" ] && vps_config=$(_get_json "config")
|
||||
[ -z "$vps_config" ] && return
|
||||
current_port="$(echo "$vps_config" | jsonfilter -q -e '@.shadowsocks-go.port')"
|
||||
current_key="$(echo "$vps_config" | jsonfilter -q -e '@.shadowsocks-go.key')"
|
||||
current_method="$(echo "$vps_config" | jsonfilter -q -e '@.shadowsocks-go.method')"
|
||||
current_fast_open="$(echo "$vps_config" | jsonfilter -q -e '@.shadowsocks-go.fast_open')"
|
||||
current_mptcp="$(echo "$vps_config" | jsonfilter -q -e '@.shadowsocks-go.mptcp')"
|
||||
|
||||
ebpf="false"
|
||||
fast_open="false"
|
||||
no_delay="false"
|
||||
mptcp="false"
|
||||
obfs="false"
|
||||
obfs_plugin="v2ray"
|
||||
obfs_type="http"
|
||||
config_load shadowsocks-rust
|
||||
config_foreach _get_ss_redir ss_redir
|
||||
config_foreach _get_ss_server server
|
||||
|
||||
if [ "$current_mptcp" != "$mptcp" ] || [ "$current_port" != "$port" ] || [ "$current_method" != "$method" ] || [ "$current_fast_open" != "$fast_open" ]; then
|
||||
local settings
|
||||
settings='{"port": '$port',"method":"'$method'","fast_open":'$fast_open',"reuse_port":true,"mptcp":'$mptcp'}'
|
||||
result=$(_set_json "shadowsocks-go" "$settings")
|
||||
fi
|
||||
}
|
||||
|
||||
_set_v2ray_server_vps() {
|
||||
enabled=$(uci -q get v2ray.main.enabled)
|
||||
[ "$enabled" != "1" ] && return
|
||||
|
@ -309,6 +347,22 @@ _set_v2ray_server_vps() {
|
|||
fi
|
||||
}
|
||||
|
||||
_set_xray_server_vps() {
|
||||
enabled=$(uci -q get xray.main.enabled)
|
||||
[ "$enabled" != "1" ] && return
|
||||
userid=$(uci -q get xray.omrout.s_vless_user_id)
|
||||
[ -z "$userid" ] && return
|
||||
[ -z "$vps_config" ] && vps_config=$(_get_json "config")
|
||||
[ -z "$vps_config" ] && return
|
||||
current_userid="$(echo "$vps_config" | jsonfilter -q -e '@.xray.config.key')"
|
||||
|
||||
if [ "$current_userid" != "$userid" ]; then
|
||||
local settings
|
||||
settings='{"userid": "'$userid'"}'
|
||||
echo $(_set_json "xray" "$settings")
|
||||
fi
|
||||
}
|
||||
|
||||
_get_vps_config() {
|
||||
[ -z "$vps_config" ] && vps_config=$(_get_json "config")
|
||||
[ -z "$vps_config" ] && return
|
||||
|
@ -450,6 +504,17 @@ _get_vps_config() {
|
|||
/etc/init.d/shadowsocks-libev restart
|
||||
fi
|
||||
fi
|
||||
if [ "$(uci -q get shadowsocks-rust.sss0.server)" != "127.0.0.1" ] && [ "$(uci -q get shadowsocks-rust.sss0.server)" != "$vpsip" ] && [ "$(uci -q get openmptcprouter.settings.ha)" != "1" ]; then
|
||||
config_foreach _set_ssrust_server server "server" $vpsip
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set shadowsocks-rust.sss0.server="$vpsip"
|
||||
commit shadowsocks-rust
|
||||
EOF
|
||||
if [ "$(uci -q get shadowsocks-rust.sss0.disabled)" = "0" ]; then
|
||||
logger -t "OMR-VPS" "Restart shadowsocks Rust..."
|
||||
/etc/init.d/shadowsocks-rust restart
|
||||
fi
|
||||
fi
|
||||
if [ "$(uci -q get v2ray.omrout.s_vmess_address)" != "127.0.0.1" ] && [ "$(uci -q get v2ray.omrout.s_vmess_address)" != "$vpsip" ] && [ "$(uci -q get openmptcprouter.settings.ha)" != "1" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set v2ray.omrout.s_vmess_address="$vpsip"
|
||||
|
@ -461,6 +526,17 @@ _get_vps_config() {
|
|||
/etc/init.d/v2ray restart
|
||||
fi
|
||||
fi
|
||||
if [ "$(uci -q get xray.omrout.s_vmess_address)" != "127.0.0.1" ] && [ "$(uci -q get xray.omrout.s_vmess_address)" != "$vpsip" ] && [ "$(uci -q get openmptcprouter.settings.ha)" != "1" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set xray.omrout.s_vmess_address="$vpsip"
|
||||
set xray.omrout.s_vless_address="$vpsip"
|
||||
commit xray
|
||||
EOF
|
||||
if [ "$(uci -q get xray.main.enabled)" = "1" ]; then
|
||||
logger -t "OMR-VPS" "Restart XRay..."
|
||||
/etc/init.d/xray restart
|
||||
fi
|
||||
fi
|
||||
if [ "$(uci -q get openvpn.omr.remote)" != "127.0.0.1" ] && [ "$(uci -q get openvpn.omr.remote)" != "$vpsip" ] && [ "$(uci -q get openmptcprouter.settings.ha)" != "1" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set openvpn.omr.remote="$vpsip"
|
||||
|
@ -942,12 +1018,14 @@ _vps_firewall_redirect_port() {
|
|||
#uci -q delete firewall.$1
|
||||
#return
|
||||
fi
|
||||
xray="$v2ray"
|
||||
[ "$(uci -q get v2ray.main.enabled)" = "0" ] && [ "$(uci -q get openmptcprouter.omr.v2ray)" != "down" ] && v2ray="0"
|
||||
[ "$(uci -q get xray.main.enabled)" = "0" ] && [ "$(uci -q get openmptcprouter.omr.xray)" != "down" ] && xray="0"
|
||||
[ "$proto" = "all" ] && proto="tcp udp"
|
||||
[ "$proto" = "" ] && proto="tcp udp"
|
||||
[ "$src" = "vpn" ] && [ -n "$proto" ] && [ -n "$src_dport" ] && [ "$enabled" != "0" ] && [ "$name" != "Allow-DHCP-Request-VPN" ] && {
|
||||
for protoi in $proto; do
|
||||
if [ "$v2ray" = "0" ]; then
|
||||
if [ "$v2ray" = "0" ] && [ "$xray" = "0" ]; then
|
||||
checkfw=""
|
||||
if [ "$family" = "ipv4" ]; then
|
||||
if [ "$src_dip" = "" ] && [ "$src_ip" = "" ]; then
|
||||
|
@ -1045,7 +1123,8 @@ _vps_firewall_redirect_port() {
|
|||
checkfw=""
|
||||
if [ "$family" = "ipv4" ]; then
|
||||
if [ "$src_dip" = "" ] && [ "$src_ip" = "" ]; then
|
||||
checkfw=$(echo "$vpsfwlist" | grep "$src_dport # OMR $username open router $src_dport port $protoi --- V2Ray to ${dest_ip}:${dest_port}")
|
||||
[ "$v2ray" == "1" ] && checkfw=$(echo "$vpsfwlist" | grep "$src_dport # OMR $username open router $src_dport port $protoi --- V2Ray to ${dest_ip}:${dest_port}")
|
||||
[ "$xray" == "1" ] && checkfw=$(echo "$vpsfwlist" | grep "$src_dport # OMR $username open router $src_dport port $protoi --- XRay to ${dest_ip}:${dest_port}")
|
||||
else
|
||||
comment=""
|
||||
[ -n "$src_dip" ] && {
|
||||
|
@ -1065,45 +1144,58 @@ _vps_firewall_redirect_port() {
|
|||
}
|
||||
}
|
||||
[ -n "$src_ip" ] && comment=" from $src_ip"
|
||||
checkfw=$(echo "$vpsfwlist" | grep "# OMR $username open router $src_dport port ${protoi}${comment} --- V2Ray to ${dest_ip}:${dest_port}")
|
||||
[ "$v2ray" == "1" ] && checkfw=$(echo "$vpsfwlist" | grep "# OMR $username open router $src_dport port ${protoi}${comment} --- V2Ray to ${dest_ip}:${dest_port}")
|
||||
[ "$xray" == "1" ] && checkfw=$(echo "$vpsfwlist" | grep "# OMR $username open router $src_dport port ${protoi}${comment} --- XRay to ${dest_ip}:${dest_port}")
|
||||
fi
|
||||
else
|
||||
if [ "$src_dip" = "" ] && [ "$src_ip" = "" ]; then
|
||||
checkfw=$(echo "$vpsfw6list" | grep "$src_dport # OMR $username open router $src_dport port ${protoi} --- V2Ray to ${dest_ip}:${dest_port}")
|
||||
[ "$v2ray" == "1" ] && checkfw=$(echo "$vpsfw6list" | grep "$src_dport # OMR $username open router $src_dport port ${protoi} --- V2Ray to ${dest_ip}:${dest_port}")
|
||||
[ "$xray" == "1" ] && checkfw=$(echo "$vpsfw6list" | grep "$src_dport # OMR $username open router $src_dport port ${protoi} --- XRay to ${dest_ip}:${dest_port}")
|
||||
else
|
||||
comment=""
|
||||
[ -n "$src_dip" ] && comment=" to $src_dip"
|
||||
[ -n "$src_ip" ] && comment=" from $src_ip"
|
||||
checkfw=$(echo "$vpsfw6list" | grep "# OMR $username open router $src_dport port ${protoi}${comment} --- V2Ray to ${dest_ip}:${dest_port}")
|
||||
[ "$v2ray" == "1" ] && checkfw=$(echo "$vpsfw6list" | grep "# OMR $username open router $src_dport port ${protoi}${comment} --- V2Ray to ${dest_ip}:${dest_port}")
|
||||
[ "$xray" == "1" ] && checkfw=$(echo "$vpsfw6list" | grep "# OMR $username open router $src_dport port ${protoi}${comment} --- XRay to ${dest_ip}:${dest_port}")
|
||||
fi
|
||||
fi
|
||||
if [ "$checkfw" = "" ]; then
|
||||
settings='{"name" : "router '$src_dport'","port" : "'$src_dport'","source_dip" : "'$src_dip'","source_ip" : "'$src_ip'","proto" : "'${protoi}'","fwtype" : "ACCEPT","ipproto" : "'$family'","comment" : "V2Ray to '${dest_ip}':'${dest_port}'"}'
|
||||
[ "$v2ray" == "1" ] && settings='{"name" : "router '$src_dport'","port" : "'$src_dport'","source_dip" : "'$src_dip'","source_ip" : "'$src_ip'","proto" : "'${protoi}'","fwtype" : "ACCEPT","ipproto" : "'$family'","comment" : "V2Ray to '${dest_ip}':'${dest_port}'"}'
|
||||
[ "$xray" == "1" ] && settings='{"name" : "router '$src_dport'","port" : "'$src_dport'","source_dip" : "'$src_dip'","source_ip" : "'$src_ip'","proto" : "'${protoi}'","fwtype" : "ACCEPT","ipproto" : "'$family'","comment" : "XRay to '${dest_ip}':'${dest_port}'"}'
|
||||
result=$(_set_json "shorewallopen" "$settings")
|
||||
[ -z "$dest_port" ] && dest_port="$src_dport"
|
||||
settings='{"name" : "router '$src_dport'","port" : "'$src_dport'","destip" : "'$dest_ip'","destport" : "'$dest_port'","proto" : "'${protoi}'"}'
|
||||
result=$(_set_json "v2rayredirect" "$settings")
|
||||
[ "$v2ray" == "1" ] && result=$(_set_json "v2rayredirect" "$settings")
|
||||
[ "$xray" == "1" ] && result=$(_set_json "xrayredirect" "$settings")
|
||||
fi
|
||||
if [ "$family" = "ipv4" ]; then
|
||||
if [ "$src_dip" = "" ] && [ "$src_ip" = "" ]; then
|
||||
vpsfwlist=$(echo "$vpsfwlist" | grep -v "$src_dport # OMR $username open router $src_dport port ${protoi} --- V2Ray to ${dest_ip}:${dest_port}$")
|
||||
[ "$username" = "openmptcprouter" ] && vpsfwlist=$(echo "$vpsfwlist" | grep -v "$src_dport # OMR open router $src_dport port ${protoi} --- V2Ray to ${dest_ip}:${dest_port}$")
|
||||
[ "$v2ray" == "1"] && vpsfwlist=$(echo "$vpsfwlist" | grep -v "$src_dport # OMR $username open router $src_dport port ${protoi} --- V2Ray to ${dest_ip}:${dest_port}$")
|
||||
[ "$xray" == "1" ] && vpsfwlist=$(echo "$vpsfwlist" | grep -v "$src_dport # OMR $username open router $src_dport port ${protoi} --- XRay to ${dest_ip}:${dest_port}$")
|
||||
[ "$v2ray" == "1" ] && [ "$username" = "openmptcprouter" ] && vpsfwlist=$(echo "$vpsfwlist" | grep -v "$src_dport # OMR open router $src_dport port ${protoi} --- V2Ray to ${dest_ip}:${dest_port}$")
|
||||
[ "$xray" == "1" ] && [ "$username" = "openmptcprouter" ] && vpsfwlist=$(echo "$vpsfwlist" | grep -v "$src_dport # OMR open router $src_dport port ${protoi} --- XRay to ${dest_ip}:${dest_port}$")
|
||||
else
|
||||
comment=""
|
||||
[ -n "$src_dip" ] && comment=" to $src_dip"
|
||||
[ -n "$src_ip" ] && comment=" from $src_ip"
|
||||
vpsfwlist=$(echo "$vpsfwlist" | grep -v "# OMR $username open router $src_dport port ${protoi}${comment} --- V2Ray to ${dest_ip}:${dest_port}$")
|
||||
[ "$username" = "openmptcprouter" ] && vpsfwlist=$(echo "$vpsfwlist" | grep -v "# OMR open router $src_dport port ${protoi}${comment} --- V2Ray to ${dest_ip}:${dest_port}$")
|
||||
[ "$v2ray" == "1" ] && vpsfwlist=$(echo "$vpsfwlist" | grep -v "# OMR $username open router $src_dport port ${protoi}${comment} --- V2Ray to ${dest_ip}:${dest_port}$")
|
||||
[ "$xray" == "1" ] && vpsfwlist=$(echo "$vpsfwlist" | grep -v "# OMR $username open router $src_dport port ${protoi}${comment} --- XRay to ${dest_ip}:${dest_port}$")
|
||||
[ "$v2ray" == "1" ] && [ "$username" = "openmptcprouter" ] && vpsfwlist=$(echo "$vpsfwlist" | grep -v "# OMR open router $src_dport port ${protoi}${comment} --- V2Ray to ${dest_ip}:${dest_port}$")
|
||||
[ "$xray" == "1" ] && [ "$username" = "openmptcprouter" ] && vpsfwlist=$(echo "$vpsfwlist" | grep -v "# OMR open router $src_dport port ${protoi}${comment} --- XRay to ${dest_ip}:${dest_port}$")
|
||||
fi
|
||||
else
|
||||
if [ "$src_dip" = "" ] && [ "$src_ip" = "" ]; then
|
||||
vpsfw6list=$(echo "$vpsfw6list" | grep -v "$src_dport # OMR $username open router $src_dport port ${protoi} --- V2Ray to ${dest_ip}:${dest_port}$")
|
||||
[ "$username" = "openmptcprouter" ] && vpsfw6list=$(echo "$vpsfw6list" | grep -v "$src_dport # OMR open router $src_dport port ${protoi} --- V2Ray to ${dest_ip}:${dest_port}$")
|
||||
[ "$v2ray" == "1" ] && vpsfw6list=$(echo "$vpsfw6list" | grep -v "$src_dport # OMR $username open router $src_dport port ${protoi} --- V2Ray to ${dest_ip}:${dest_port}$")
|
||||
[ "$xray" == "1" ] && vpsfw6list=$(echo "$vpsfw6list" | grep -v "$src_dport # OMR $username open router $src_dport port ${protoi} --- XRay to ${dest_ip}:${dest_port}$")
|
||||
[ "$v2ray" == "1" ] && [ "$username" = "openmptcprouter" ] && vpsfw6list=$(echo "$vpsfw6list" | grep -v "$src_dport # OMR open router $src_dport port ${protoi} --- V2Ray to ${dest_ip}:${dest_port}$")
|
||||
[ "$xray" == "1" ] && [ "$username" = "openmptcprouter" ] && vpsfw6list=$(echo "$vpsfw6list" | grep -v "$src_dport # OMR open router $src_dport port ${protoi} --- XRay to ${dest_ip}:${dest_port}$")
|
||||
else
|
||||
[ -n "$src_dip" ] && comment=" to $src_dip"
|
||||
[ -n "$src_ip" ] && comment=" from $src_ip"
|
||||
vpsfw6list=$(echo "$vpsfw6list" | grep -v "# OMR $username open router $src_dport port ${protoi}${comment} --- V2Ray to ${dest_ip}:${dest_port}$")
|
||||
[ "$username" = "openmptcprouter" ] && vpsfw6list=$(echo "$vpsfw6list" | grep -v "# OMR open router $src_dport port ${protoi}${comment} --- V2Ray to ${dest_ip}:${dest_port}$")
|
||||
[ "$v2ray" == "1" ] && vpsfw6list=$(echo "$vpsfw6list" | grep -v "# OMR $username open router $src_dport port ${protoi}${comment} --- V2Ray to ${dest_ip}:${dest_port}$")
|
||||
[ "$xray" == "1" ] && vpsfw6list=$(echo "$vpsfw6list" | grep -v "# OMR $username open router $src_dport port ${protoi}${comment} --- XRay to ${dest_ip}:${dest_port}$")
|
||||
[ "$v2ray" == "1" ] && [ "$username" = "openmptcprouter" ] && vpsfw6list=$(echo "$vpsfw6list" | grep -v "# OMR open router $src_dport port ${protoi}${comment} --- V2Ray to ${dest_ip}:${dest_port}$")
|
||||
[ "$xray" == "1" ] && [ "$username" = "openmptcprouter" ] && vpsfw6list=$(echo "$vpsfw6list" | grep -v "# OMR open router $src_dport port ${protoi}${comment} --- XRay to ${dest_ip}:${dest_port}$")
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
@ -1136,6 +1228,7 @@ _vps_firewall_close_port() {
|
|||
destport=$(echo $comment | awk '{print $3}' | awk -F: '{print $2}')
|
||||
settings='{"name" : "router '$src_dport'","port" : "'$src_dport'","proto" : "'$proto'","destip" : "'$destip'","destport": "'$destport'"}'
|
||||
result=$(_set_json "v2rayunredirect" "$settings")
|
||||
result=$(_set_json "xrayunredirect" "$settings")
|
||||
}
|
||||
}
|
||||
done
|
||||
|
@ -1162,6 +1255,7 @@ _vps_firewall_close_port() {
|
|||
[ "$type" = "ACCEPT" ] && {
|
||||
settings='{"name" : "router '$src_dport'","port" : "'$src_dport'","proto" : "'$proto'","comment" : "'$comment'"}'
|
||||
result=$(_set_json "v2rayunredirect" "$settings")
|
||||
result=$(_set_json "xrayunredirect" "$settings")
|
||||
}
|
||||
}
|
||||
done
|
||||
|
@ -1276,6 +1370,30 @@ _set_ss_server() {
|
|||
fi
|
||||
}
|
||||
|
||||
_set_ssrust_redir() {
|
||||
local option=$2
|
||||
local value=$3
|
||||
if [ "$value" = "true" ]; then
|
||||
value=1
|
||||
elif [ "$value" = "false" ]; then
|
||||
value=0
|
||||
fi
|
||||
uci -q set shadowsocks-rust.$1.$option=$value
|
||||
}
|
||||
|
||||
_set_ssrust_server() {
|
||||
local option=$2
|
||||
local value=$3
|
||||
if [ "$value" = "true" ]; then
|
||||
value=1
|
||||
elif [ "$value" = "false" ]; then
|
||||
value=0
|
||||
fi
|
||||
if [ "$(echo $1 | grep omr)" != "" ] || [ "$(echo $1 | grep sss)" ]; then
|
||||
uci -q set shadowsocks-rust.$1.$option=$value
|
||||
fi
|
||||
}
|
||||
|
||||
_set_config_from_vps() {
|
||||
local shadowsocks_disabled vpn glorytun_state redirect shorewall_redirect mlvpn_key openvpn_key dsvpn_key
|
||||
[ -z "$vps_config" ] && vps_config=$(_get_json "config")
|
||||
|
@ -1331,28 +1449,66 @@ _set_config_from_vps() {
|
|||
EOF
|
||||
if [ "$current_proxy" = "shadowsocks" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set shadowsocks-rust.sss0.disabled=1
|
||||
commit shadowsocks-rust
|
||||
set shadowsocks-libev.sss0.disabled=0
|
||||
commit shadowsocks-libev
|
||||
set v2ray.main.enabled=0
|
||||
commit v2ray
|
||||
set xray.main.enabled=0
|
||||
commit xray
|
||||
set openmptcprouter.settings.shadowsocks_disable=0
|
||||
commit openmptcprouter
|
||||
EOF
|
||||
elif [ "$current_proxy" = "shadowsocks-rust" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set shadowsocks-rust.sss0.disabled=0
|
||||
commit shadowsocks-rust
|
||||
set shadowsocks-libev.sss0.disabled=1
|
||||
commit shadowsocks-libev
|
||||
set v2ray.main.enabled=0
|
||||
commit v2ray
|
||||
set xray.main.enabled=0
|
||||
commit xray
|
||||
set openmptcprouter.settings.shadowsocks_disable=0
|
||||
commit openmptcprouter
|
||||
EOF
|
||||
elif [ "$current_proxy" = "v2ray" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set shadowsocks-rust.sss0.disabled=1
|
||||
commit shadowsocks-rust
|
||||
set shadowsocks-libev.sss0.disabled=1
|
||||
commit shadowsocks-libev
|
||||
set v2ray.main.enabled=1
|
||||
commit v2ray
|
||||
set xray.main.enabled=0
|
||||
commit xray
|
||||
set openmptcprouter.settings.shadowsocks_disable=1
|
||||
commit openmptcprouter
|
||||
EOF
|
||||
elif [ "$current_proxy" = "xray" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set shadowsocks-rust.sss0.disabled=1
|
||||
commit shadowsocks-rust
|
||||
set shadowsocks-libev.sss0.disabled=1
|
||||
commit shadowsocks-libev
|
||||
set v2ray.main.enabled=0
|
||||
commit v2ray
|
||||
set xray.main.enabled=1
|
||||
commit xray
|
||||
set openmptcprouter.settings.shadowsocks_disable=1
|
||||
commit openmptcprouter
|
||||
EOF
|
||||
elif [ "$current_proxy" = "none" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set shadowsocks-rust.sss0.disabled=1
|
||||
commit shadowsocks-rust
|
||||
set shadowsocks-libev.sss0.disabled=1
|
||||
commit shadowsocks-libev
|
||||
set v2ray.main.enabled=0
|
||||
commit v2ray
|
||||
set xray.main.enabled=0
|
||||
commit xray
|
||||
set openmptcprouter.settings.shadowsocks_disable=1
|
||||
commit openmptcprouter
|
||||
EOF
|
||||
|
@ -1419,6 +1575,34 @@ _set_config_from_vps() {
|
|||
fi
|
||||
fi
|
||||
|
||||
# Shadowsocks Rust settings
|
||||
#shadowsocks_disabled="$(uci -q get openmptcprouter.settings.shadowsocks_disable)"
|
||||
#[ -z "$shadowsocks_disabled" ] && shadowsocks_disabled=0
|
||||
ssgo_sskey="$(echo "$vps_config" | jsonfilter -q -e '@.shadowsocks_go.config.password')"
|
||||
if [ -n "$ssgo_sskey" ] && [ "$ssgo_sskey" != "$(uci -q get shadowsocks-rust.sss0.password)" ]; then
|
||||
ss_method="$(echo "$vps_config" | jsonfilter -q -e '@.shadowsocks_go.config.protocol')"
|
||||
ss_port="65280"
|
||||
#ss_fast_open="$(echo "$vps_config" | jsonfilter -q -e '@.shadowsocks-rust.fast_open')"
|
||||
config_load shadowsocks-rust
|
||||
#config_foreach _set_ss_redir ss_redir "fast_open" $ss_fast_open
|
||||
#config_foreach _set_ss_redir ss_local "fast_open" $ss_fast_open
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set shadowsocks-rust.sss0.password=$ssgo_sskey
|
||||
set shadowsocks-rust.sss0.server_port=$ss_port
|
||||
set shadowsocks-rust.sss0.method=$ss_method
|
||||
EOF
|
||||
config_foreach _set_ss_server server "key" $ssgo_sskey
|
||||
config_foreach _set_ss_server server "method" $ss_method
|
||||
if [ "$(uci -q get shadowsocks-rust.sss0.server)" != "127.0.0.1" ]; then
|
||||
config_foreach _set_ss_server server "server" $vpsip
|
||||
fi
|
||||
uci -q commit shadowsocks-rust
|
||||
if [ "$(uci -q get shadowsocks-rust.sss0.disabled)" != "1" ]; then
|
||||
logger -t "OMR-VPS" "Shadowsocks Rust restart..."
|
||||
/etc/init.d/shadowsocks-rust restart >/dev/null 2>&1
|
||||
fi
|
||||
fi
|
||||
|
||||
# V2Ray settings
|
||||
v2ray_key="$(echo "$vps_config" | jsonfilter -q -e '@.v2ray.config.key')"
|
||||
#v2ray_port="$(echo "$vps_config" | jsonfilter -q -e '@.v2ray.config.port')"
|
||||
|
@ -1445,6 +1629,37 @@ _set_config_from_vps() {
|
|||
/etc/init.d/v2ray restart >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
# XRay settings
|
||||
xray_key="$(echo "$vps_config" | jsonfilter -q -e '@.xray.config.key')"
|
||||
xray_sskey="$(echo "$vps_config" | jsonfilter -q -e '@.xray.config.sskey')"
|
||||
#v2ray_port="$(echo "$vps_config" | jsonfilter -q -e '@.v2ray.config.port')"
|
||||
xray_port="65248"
|
||||
if ([ -n "$xray_key" ] && [ "$xray_key" != "$(uci -q get xray.omrout.s_vmess_user_id)" ]) || ([ -n "$xray_port" ] && [ "$xray_port" != "$(uci -q get xray.omrout.s_vmess.port)" ]); then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set xray.omrout.s_shadowsocks_port="$((xray_port+4))"
|
||||
set xray.omrout.s_shadowsocks_password="$xray_sskey"
|
||||
set xray.omrout.s_socks_user_id="$xray_key"
|
||||
set xray.omrout.s_socks_port="$((xray_port+3))"
|
||||
set xray.omrout.s_trojan_user_id="$xray_key"
|
||||
set xray.omrout.s_trojan_port="$((xray_port+1))"
|
||||
set xray.omrout.s_vmess_user_id="$xray_key"
|
||||
set xray.omrout.s_vmess_port="$((xray_port+2))"
|
||||
set xray.omrout.s_vless_user_id="$xray_key"
|
||||
set xray.omrout.s_vless_port="$xray_port"
|
||||
EOF
|
||||
uci -q set xray.omrout.s_shadowsocks_password=$ss_key
|
||||
if [ "$(uci -q get xray.omrout.s_vmess_address)" != "127.0.0.1" ]; then
|
||||
uci -q set xray.omrout.s_vmess_address="$vpsip"
|
||||
uci -q set xray.omrout.s_vless_address="$vpsip"
|
||||
uci -q set xray.omrout.s_trojan_address="$vpsip"
|
||||
uci -q set xray.omrout.s_socks_address="$vpsip"
|
||||
uci -q set xray.omrout.s_shadowsocks_address="$vpsip"
|
||||
fi
|
||||
uci -q commit v2ray
|
||||
logger -t "OMR-VPS" "Xray restart..."
|
||||
/etc/init.d/xray restart >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
# Glorytun settings
|
||||
glorytun_key="$(echo "$vps_config" | jsonfilter -q -e '@.glorytun.key')"
|
||||
glorytun_port="$(echo "$vps_config" | jsonfilter -q -e '@.glorytun.port')"
|
||||
|
@ -1951,9 +2166,12 @@ _config_service() {
|
|||
EOF
|
||||
config_foreach _set_ss_server server "method" "aes-256-gcm"
|
||||
uci -q commit shadowsocks-libev
|
||||
config_foreach _set_ssrust_server server "method" "2022-blake3-aes-256-gcm"
|
||||
uci -q commit shadowsocks-rust
|
||||
[ "$method" != "aes-256-gcm" ] && {
|
||||
logger -t "OMR-VPS" "Shadowsocks restart"
|
||||
/etc/init.d/shadowsocks-libev restart
|
||||
/etc/init.d/shadowsocks-rust restart
|
||||
}
|
||||
fi
|
||||
}
|
||||
|
@ -1967,7 +2185,9 @@ _config_service() {
|
|||
#config_load shadowsocks-libev
|
||||
#config_foreach _set_ss_server_vps server
|
||||
_set_ss_server_vps
|
||||
_set_ssgo_server_vps
|
||||
_set_v2ray_server_vps
|
||||
_set_xray_server_vps
|
||||
[ -z "$(_set_glorytun_vps)" ] && error=1
|
||||
[ -z "$(_set_openvpn_vps)" ] && error=1
|
||||
[ -z "$(_set_mlvpn_vps)" ] && error=1
|
||||
|
@ -2063,7 +2283,7 @@ start_service() {
|
|||
|
||||
service_triggers() {
|
||||
#procd_add_reload_trigger openmptcprouter network shadowsocks-libev v2ray glorytun glorytun-udp mlvpn openvpn dsvpn
|
||||
procd_add_reload_trigger shadowsocks-libev v2ray glorytun glorytun-udp mlvpn dsvpn
|
||||
procd_add_reload_trigger shadowsocks-libev shadowsocks-rust v2ray xray glorytun glorytun-udp mlvpn dsvpn
|
||||
procd_add_config_trigger "config.change" "firewall" /etc/init.d/openmptcprouter-vps set_vps_firewall
|
||||
#procd_add_config_trigger "config.change" "network" /etc/init.d/openmptcprouter-vps set_gre_tunnel
|
||||
#procd_add_reload_trigger openmptcprouter shadowsocks-libev network upnpd
|
||||
|
|
104
rust/Makefile
Normal file
104
rust/Makefile
Normal file
|
@ -0,0 +1,104 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
#
|
||||
# Copyright (C) 2023 Luca Barbato and Donald Hoskins
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
include ./rust-values.mk
|
||||
|
||||
PKG_NAME:=rust
|
||||
PKG_VERSION:=1.71.1
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=rustc-$(PKG_VERSION)-src.tar.gz
|
||||
PKG_SOURCE_URL:=https://static.rust-lang.org/dist/
|
||||
PKG_HASH:=6fa90d50d1d529a75f6cc349784de57d7ec0ba2419b09bde7d335c25bd4e472e
|
||||
HOST_BUILD_DIR:=$(BUILD_DIR)/host/rust-$(RUSTC_TARGET_ARCH)/rustc-$(PKG_VERSION)-src
|
||||
|
||||
PKG_MAINTAINER:=Luca Barbato <lu_zero@luminem.org>
|
||||
PKG_LICENSE:=Apache-2.0 MIT
|
||||
PKG_LICENSE_FILES:=LICENSE-APACHE LICENSE-MIT
|
||||
|
||||
HOST_BUILD_DEPENDS:=python3/host
|
||||
PKG_HOST_ONLY:=1
|
||||
|
||||
include $(INCLUDE_DIR)/host-build.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/rust
|
||||
SECTION:=lang
|
||||
CATEGORY:=Languages
|
||||
SUBMENU:=Rust
|
||||
TITLE:=Rust Programming Language Compiler
|
||||
URL:=https://www.rust-lang.org/
|
||||
DEPENDS:=$(RUST_ARCH_DEPENDS)
|
||||
endef
|
||||
|
||||
define Package/rust/description
|
||||
Rust is a multi-paradigm, general-purpose programming language designed for performance
|
||||
and safety, especially safe concurrency. Rust is syntactically similar to C++, but can
|
||||
guarantee memory safety by using a borrow checker to validate references.
|
||||
endef
|
||||
|
||||
# Rust-lang has an uninstall script
|
||||
RUST_UNINSTALL:=$(CARGO_HOME)/lib/rustlib/uninstall.sh
|
||||
|
||||
# Target Flags
|
||||
TARGET_CONFIGURE_ARGS = \
|
||||
--set=target.$(RUSTC_TARGET_ARCH).ar=$(TARGET_AR) \
|
||||
--set=target.$(RUSTC_TARGET_ARCH).cc=$(TARGET_CC_NOCACHE) \
|
||||
--set=target.$(RUSTC_TARGET_ARCH).cxx=$(TARGET_CXX_NOCACHE) \
|
||||
--set=target.$(RUSTC_TARGET_ARCH).linker=$(TARGET_CC_NOCACHE) \
|
||||
--set=target.$(RUSTC_TARGET_ARCH).ranlib=$(TARGET_RANLIB) \
|
||||
$(if $(CONFIG_USE_MUSL),--set=target.$(RUSTC_TARGET_ARCH).musl-root=$(TOOLCHAIN_DIR))
|
||||
|
||||
# CARGO_HOME is an environmental
|
||||
HOST_CONFIGURE_OPTS += CARGO_HOME="$(CARGO_HOME)"
|
||||
|
||||
# Rust Configuration Arguments
|
||||
HOST_CONFIGURE_ARGS = \
|
||||
--build=$(RUSTC_HOST_ARCH) \
|
||||
--target=$(RUSTC_TARGET_ARCH),$(RUSTC_HOST_ARCH) \
|
||||
--host=$(RUSTC_HOST_ARCH) \
|
||||
--prefix=$(CARGO_HOME) \
|
||||
--bindir=$(CARGO_HOME)/bin \
|
||||
--libdir=$(CARGO_HOME)/lib \
|
||||
--sysconfdir=$(CARGO_HOME)/etc \
|
||||
--datadir=$(CARGO_HOME)/share \
|
||||
--mandir=$(CARGO_HOME)/man \
|
||||
--dist-compression-formats=xz \
|
||||
--enable-missing-tools \
|
||||
--disable-sanitizers \
|
||||
--release-channel=stable \
|
||||
--enable-cargo-native-static \
|
||||
--set=llvm.download-ci-llvm=true \
|
||||
$(TARGET_CONFIGURE_ARGS)
|
||||
|
||||
define Host/Uninstall
|
||||
# Call the Uninstall script
|
||||
[ -f $(RUST_UNINSTALL) ] && \
|
||||
$(BASH) $(RUST_UNINSTALL) || echo No Uninstall
|
||||
endef
|
||||
|
||||
define Host/Compile
|
||||
( \
|
||||
cd $(HOST_BUILD_DIR) ; \
|
||||
$(PYTHON) x.py --config ./config.toml dist build-manifest cargo llvm-tools \
|
||||
rustc rust-std rust-src ; \
|
||||
)
|
||||
endef
|
||||
|
||||
define Host/Install
|
||||
( \
|
||||
cd $(HOST_BUILD_DIR)/build/dist ; \
|
||||
find -iname "*.xz" -exec tar -xJf {} \; ; \
|
||||
find ./* -type f -name install.sh -execdir sh {} --prefix=$(CARGO_HOME) --disable-ldconfig \; ; \
|
||||
\
|
||||
sed -e 's|@RUSTC_TARGET_ARCH@|$(RUSTC_TARGET_ARCH)|g' \
|
||||
-e 's|@TARGET_CC_NOCACHE@|$(TARGET_CC_NOCACHE)|g' \
|
||||
-e 's|@RUSTC_LDFLAGS@|$(RUSTC_LDFLAGS)|g' \
|
||||
$(CURDIR)/files/cargo-config > $(CARGO_HOME)/config ; \
|
||||
)
|
||||
endef
|
||||
|
||||
$(eval $(call HostBuild))
|
||||
$(eval $(call BuildPackage,rust))
|
8
rust/files/cargo-config
Normal file
8
rust/files/cargo-config
Normal file
|
@ -0,0 +1,8 @@
|
|||
[target.@RUSTC_TARGET_ARCH@]
|
||||
linker = "@TARGET_CC_NOCACHE@"
|
||||
rustflags = ["-Ctarget-feature=-crt-static", "-Clink-args=@RUSTC_LDFLAGS@"]
|
||||
|
||||
[profile.stripped]
|
||||
inherits = "release"
|
||||
opt-level = "s"
|
||||
strip = true
|
48
rust/patches/0001-Update-xz2-and-use-it-static.patch
Normal file
48
rust/patches/0001-Update-xz2-and-use-it-static.patch
Normal file
|
@ -0,0 +1,48 @@
|
|||
From d3000458501d339ea2043006924d431ead18769e Mon Sep 17 00:00:00 2001
|
||||
From: Luca Barbato <lu_zero@gentoo.org>
|
||||
Date: Sun, 4 Jun 2023 19:32:28 +0000
|
||||
Subject: [PATCH] Update xz2 and use it static
|
||||
|
||||
---
|
||||
Cargo.lock | 8 ++++----
|
||||
src/bootstrap/Cargo.lock | 8 ++++----
|
||||
src/bootstrap/Cargo.toml | 2 +-
|
||||
3 files changed, 9 insertions(+), 9 deletions(-)
|
||||
|
||||
--- a/src/bootstrap/Cargo.lock
|
||||
+++ b/src/bootstrap/Cargo.lock
|
||||
@@ -443,9 +443,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "lzma-sys"
|
||||
-version = "0.1.17"
|
||||
+version = "0.1.20"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "bdb4b7c3eddad11d3af9e86c487607d2d2442d185d848575365c4856ba96d619"
|
||||
+checksum = "5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"libc",
|
||||
@@ -912,9 +912,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "xz2"
|
||||
-version = "0.1.6"
|
||||
+version = "0.1.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "c179869f34fc7c01830d3ce7ea2086bc3a07e0d35289b667d0a8bf910258926c"
|
||||
+checksum = "388c44dc09d76f1536602ead6d325eb532f5c122f17782bd57fb47baeeb767e2"
|
||||
dependencies = [
|
||||
"lzma-sys",
|
||||
]
|
||||
--- a/src/bootstrap/Cargo.toml
|
||||
+++ b/src/bootstrap/Cargo.toml
|
||||
@@ -50,7 +50,7 @@ toml = "0.5"
|
||||
ignore = "0.4.10"
|
||||
opener = "0.5"
|
||||
once_cell = "1.7.2"
|
||||
-xz2 = "0.1"
|
||||
+xz2 = { version = "0.1", features = ["static"] }
|
||||
walkdir = "2"
|
||||
|
||||
# Dependencies needed by the build-metrics feature
|
35
rust/patches/0002-Bumped-libc-version.patch
Normal file
35
rust/patches/0002-Bumped-libc-version.patch
Normal file
|
@ -0,0 +1,35 @@
|
|||
From 032857e7e403f654129c45dc7e6718a9ad49e377 Mon Sep 17 00:00:00 2001
|
||||
From: Nikolay Arhipov <n@arhipov.net>
|
||||
Date: Tue, 6 Jun 2023 16:09:05 +0300
|
||||
Subject: [PATCH] Bumped libc version
|
||||
|
||||
---
|
||||
Cargo.lock | 4 ++--
|
||||
library/std/Cargo.toml | 2 +-
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/Cargo.lock
|
||||
+++ b/Cargo.lock
|
||||
@@ -1988,9 +1988,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0e
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
-version = "0.2.143"
|
||||
+version = "0.2.146"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "edc207893e85c5d6be840e969b496b53d94cec8be2d501b214f50daa97fa8024"
|
||||
+checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
|
||||
dependencies = [
|
||||
"rustc-std-workspace-core",
|
||||
]
|
||||
--- a/library/std/Cargo.toml
|
||||
+++ b/library/std/Cargo.toml
|
||||
@@ -15,7 +15,7 @@ cfg-if = { version = "1.0", features = [
|
||||
panic_unwind = { path = "../panic_unwind", optional = true }
|
||||
panic_abort = { path = "../panic_abort" }
|
||||
core = { path = "../core" }
|
||||
-libc = { version = "0.2.143", default-features = false, features = ['rustc-dep-of-std'] }
|
||||
+libc = { version = "0.2.146", default-features = false, features = ['rustc-dep-of-std'] }
|
||||
compiler_builtins = { version = "0.1.92" }
|
||||
profiler_builtins = { path = "../profiler_builtins", optional = true }
|
||||
unwind = { path = "../unwind" }
|
45
rust/rust-host-build.mk
Normal file
45
rust/rust-host-build.mk
Normal file
|
@ -0,0 +1,45 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
#
|
||||
# Copyright (C) 2023 Luca Barbato and Donald Hoskins
|
||||
|
||||
ifeq ($(origin RUST_INCLUDE_DIR),undefined)
|
||||
RUST_INCLUDE_DIR:=$(dir $(lastword $(MAKEFILE_LIST)))
|
||||
endif
|
||||
include $(RUST_INCLUDE_DIR)/rust-values.mk
|
||||
|
||||
# $(1) path to the package (optional)
|
||||
# $(2) additional arguments to cargo (optional)
|
||||
define Host/Compile/Cargo
|
||||
( \
|
||||
cd $(HOST_BUILD_DIR) ; \
|
||||
export PATH="$(CARGO_HOME)/bin:$(PATH)" ; \
|
||||
CARGO_HOME=$(CARGO_HOME) \
|
||||
CC=$(HOSTCC_NOCACHE) \
|
||||
cargo install -v \
|
||||
--profile stripped \
|
||||
$(if $(RUST_PKG_FEATURES),--features "$(RUST_PKG_FEATURES)") \
|
||||
--root $(HOST_INSTALL_DIR) \
|
||||
--path "$(if $(strip $(1)),$(strip $(1)),.)" $(2) ; \
|
||||
)
|
||||
endef
|
||||
|
||||
define Host/Uninstall/Cargo
|
||||
( \
|
||||
cd $(HOST_BUILD_DIR) ; \
|
||||
export PATH="$(CARGO_HOME)/bin:$(PATH)" ; \
|
||||
CARGO_HOME=$(CARGO_HOME) \
|
||||
CC=$(HOSTCC_NOCACHE) \
|
||||
cargo uninstall -v \
|
||||
--root $(HOST_INSTALL_DIR) || true ; \
|
||||
)
|
||||
endef
|
||||
|
||||
define RustBinHostBuild
|
||||
define Host/Install
|
||||
$(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/bin
|
||||
$(INSTALL_BIN) $(HOST_INSTALL_DIR)/bin/* $(STAGING_DIR_HOSTPKG)/bin/
|
||||
endef
|
||||
endef
|
||||
|
||||
Host/Compile=$(call Host/Compile/Cargo)
|
||||
Host/Uninstall=$(call Host/Uninstall/Cargo)
|
51
rust/rust-package.mk
Normal file
51
rust/rust-package.mk
Normal file
|
@ -0,0 +1,51 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
#
|
||||
# Copyright (C) 2023 Luca Barbato and Donald Hoskins
|
||||
|
||||
# Variables (all optional) to be set in package Makefiles:
|
||||
#
|
||||
# RUST_PKG_FEATURES - list of options, default empty
|
||||
#
|
||||
# Space or comma separated list of features to activate
|
||||
#
|
||||
# e.g. RUST_PKG_FEATURES:=enable-foo,with-bar
|
||||
|
||||
ifeq ($(origin RUST_INCLUDE_DIR),undefined)
|
||||
RUST_INCLUDE_DIR:=$(dir $(lastword $(MAKEFILE_LIST)))
|
||||
endif
|
||||
include $(RUST_INCLUDE_DIR)/rust-values.mk
|
||||
|
||||
# Support only a subset for now.
|
||||
RUST_ARCH_DEPENDS:=@(aarch64||arm||i386||i686||mips||mipsel||mips64||mips64el||mipsel||powerpc64||riscv64||x86_64)
|
||||
|
||||
# $(1) path to the package (optional)
|
||||
# $(2) additional arguments to cargo (optional)
|
||||
define Build/Compile/Cargo
|
||||
( \
|
||||
cd $(PKG_BUILD_DIR) ; \
|
||||
export PATH="$(CARGO_HOME)/bin:$(PATH)" ; \
|
||||
CARGO_HOME=$(CARGO_HOME) \
|
||||
TARGET_CFLAGS="$(TARGET_CFLAGS) $(RUST_CFLAGS)" \
|
||||
TARGET_CC=$(TARGET_CC_NOCACHE) \
|
||||
CC=$(HOSTCC_NOCACHE) \
|
||||
$(CARGO_VARS) \
|
||||
cargo install -v \
|
||||
--profile stripped \
|
||||
--target $(RUSTC_TARGET_ARCH) \
|
||||
$(if $(strip $(RUST_PKG_FEATURES)),--features "$(strip $(RUST_PKG_FEATURES))") \
|
||||
--root $(PKG_INSTALL_DIR) \
|
||||
--path "$(if $(strip $(1)),$(strip $(1)),.)" \
|
||||
$(2) ; \
|
||||
)
|
||||
endef
|
||||
|
||||
define RustBinPackage
|
||||
ifndef Package/$(1)/install
|
||||
define Package/$(1)/install
|
||||
$$(INSTALL_DIR) $$(1)/usr/bin/
|
||||
$$(INSTALL_BIN) $$(PKG_INSTALL_DIR)/bin/* $$(1)/usr/bin/
|
||||
endef
|
||||
endif
|
||||
endef
|
||||
|
||||
Build/Compile=$(call Build/Compile/Cargo)
|
59
rust/rust-values.mk
Normal file
59
rust/rust-values.mk
Normal file
|
@ -0,0 +1,59 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
#
|
||||
# Copyright (C) 2023 Luca Barbato and Donald Hoskins
|
||||
|
||||
# Rust Environmental Vars
|
||||
CONFIG_HOST_SUFFIX:=$(word 4, $(subst -, ,$(GNU_HOST_NAME)))
|
||||
RUSTC_HOST_ARCH:=$(HOST_ARCH)-unknown-linux-$(CONFIG_HOST_SUFFIX)
|
||||
CARGO_HOME:=$(STAGING_DIR)/host/cargo
|
||||
CARGO_VARS:=
|
||||
|
||||
ifeq ($(CONFIG_USE_MUSL),y)
|
||||
# Force linking of the SSP library for musl
|
||||
ifdef CONFIG_PKG_CC_STACKPROTECTOR_REGULAR
|
||||
ifeq ($(strip $(PKG_SSP)),1)
|
||||
RUSTC_LDFLAGS += -lssp_nonshared
|
||||
endif
|
||||
endif
|
||||
ifdef CONFIG_PKG_CC_STACKPROTECTOR_STRONG
|
||||
ifeq ($(strip $(PKG_SSP)),1)
|
||||
TARGET_CFLAGS += -lssp_nonshared
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(HOST_OS),Darwin)
|
||||
ifeq ($(HOST_ARCH),arm64)
|
||||
RUSTC_HOST_ARCH:=aarch64-apple-darwin
|
||||
endif
|
||||
endif
|
||||
|
||||
# mips64 openwrt has a specific targed in rustc
|
||||
ifeq ($(ARCH),mips64)
|
||||
RUSTC_TARGET_ARCH:=$(REAL_GNU_TARGET_NAME)
|
||||
else
|
||||
RUSTC_TARGET_ARCH:=$(subst openwrt,unknown,$(REAL_GNU_TARGET_NAME))
|
||||
endif
|
||||
|
||||
RUSTC_TARGET_ARCH:=$(subst muslgnueabi,musleabi,$(RUSTC_TARGET_ARCH))
|
||||
|
||||
ifeq ($(ARCH),i386)
|
||||
RUSTC_TARGET_ARCH:=$(subst i486,i586,$(RUSTC_TARGET_ARCH))
|
||||
else ifeq ($(ARCH),riscv64)
|
||||
RUSTC_TARGET_ARCH:=$(subst riscv64,riscv64gc,$(RUSTC_TARGET_ARCH))
|
||||
endif
|
||||
|
||||
# ARM Logic
|
||||
ifeq ($(ARCH),arm)
|
||||
ifeq ($(CONFIG_arm_v7),y)
|
||||
RUSTC_TARGET_ARCH:=$(subst arm,armv7,$(RUSTC_TARGET_ARCH))
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_HAS_FPU),y)
|
||||
RUSTC_TARGET_ARCH:=$(subst musleabi,musleabihf,$(RUSTC_TARGET_ARCH))
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH),aarch64)
|
||||
RUST_CFLAGS:=-mno-outline-atomics
|
||||
endif
|
78
shadowsocks-rust/Makefile
Normal file
78
shadowsocks-rust/Makefile
Normal file
|
@ -0,0 +1,78 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
#
|
||||
# Copyright (C) 2017-2020 Yousong Zhou <yszhou4tech@gmail.com>
|
||||
# Copyright (C) 2021-2023 ImmortalWrt.org
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=shadowsocks-rust
|
||||
PKG_VERSION:=1.16.1
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/shadowsocks/shadowsocks-rust/tar.gz/v$(PKG_VERSION)?
|
||||
PKG_HASH:=da4c6256247207b2579721046292bab1a2ac62301878c73ff778c168caa8a990
|
||||
|
||||
PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org>
|
||||
PKG_LICENSE:=MIT
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
||||
PKG_BUILD_DEPENDS:=rust/host
|
||||
|
||||
RUST_PKG_FEATURES:=local-redir
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
#include $(TOPDIR)/feeds/packages/lang/rust/rust-package.mk
|
||||
include $(TOPDIR)/feeds/openmptcprouter/rust/rust-package.mk
|
||||
|
||||
define Package/shadowsocks-rust/Default
|
||||
define Package/shadowsocks-rust-$(1)
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
SUBMENU:=Web Servers/Proxies
|
||||
TITLE:=shadowsocks-rust $(1)
|
||||
URL:=https://github.com/shadowsocks/shadowsocks-rust
|
||||
DEPENDS:=$$(RUST_ARCH_DEPENDS)
|
||||
endef
|
||||
|
||||
define Package/shadowsocks-rust-$(1)/install
|
||||
$$(INSTALL_DIR) $$(1)/usr/bin
|
||||
$$(INSTALL_BIN) $$(PKG_INSTALL_DIR)/bin/$(1) $$(1)/usr/bin/
|
||||
endef
|
||||
endef
|
||||
|
||||
define Package/shadowsocks-rust-config
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
SUBMENU:=Web Servers/Proxies
|
||||
TITLE:=shadowsocks-rust config
|
||||
URL:=https://github.com/shadowsocks/shadowsocks-rust
|
||||
DEPENDS:=$$(RUST_ARCH_DEPENDS)
|
||||
endef
|
||||
|
||||
|
||||
define Package/shadowsocks-rust-config/install
|
||||
$(INSTALL_DIR) $(1)/usr/bin
|
||||
$(INSTALL_BIN) ./files/ssr-rules $(1)/usr/bin
|
||||
$(INSTALL_BIN) ./files/ssr-rules6 $(1)/usr/bin
|
||||
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
||||
$(INSTALL_DATA) ./files/firewall.ssr-rules $(1)/etc
|
||||
$(INSTALL_BIN) ./files/ssr-rules.defaults $(1)/etc/uci-defaults
|
||||
$(INSTALL_DIR) $(1)/etc/config
|
||||
$(INSTALL_DATA) ./files/shadowsocks-rust.config $(1)/etc/config/shadowsocks-rust
|
||||
$(INSTALL_DIR) $(1)/etc/init.d
|
||||
$(INSTALL_BIN) ./files/shadowsocks-rust.init $(1)/etc/init.d/shadowsocks-rust
|
||||
endef
|
||||
|
||||
SHADOWSOCKS_COMPONENTS:=sslocal ssmanager ssserver ssurl ssservice
|
||||
define shadowsocks-rust/templates
|
||||
$(foreach component,$(SHADOWSOCKS_COMPONENTS),
|
||||
$(call Package/shadowsocks-rust/Default,$(component))
|
||||
)
|
||||
endef
|
||||
$(eval $(call shadowsocks-rust/templates))
|
||||
|
||||
$(eval $(call BuildPackage,shadowsocks-rust-config))
|
||||
$(foreach component,$(SHADOWSOCKS_COMPONENTS), \
|
||||
$(eval $(call BuildPackage,shadowsocks-rust-$(component))) \
|
||||
)
|
2
shadowsocks-rust/files/firewall.ssr-rules
Normal file
2
shadowsocks-rust/files/firewall.ssr-rules
Normal file
|
@ -0,0 +1,2 @@
|
|||
#!/bin/sh
|
||||
/etc/init.d/shadowsocks-rust rules_up
|
51
shadowsocks-rust/files/shadowsocks-rust.config
Normal file
51
shadowsocks-rust/files/shadowsocks-rust.config
Normal file
|
@ -0,0 +1,51 @@
|
|||
config ss_redir hi1
|
||||
option server 'sss0'
|
||||
option local_address '::'
|
||||
option local_port '1100'
|
||||
option mode 'tcp_and_udp'
|
||||
option timeout '1000'
|
||||
option fast_open 0
|
||||
option verbose 0
|
||||
option syslog 1
|
||||
option reuse_port 1
|
||||
option mptcp 1
|
||||
option ipv6_first 1
|
||||
option no_delay 1
|
||||
|
||||
config ss_redir hi2
|
||||
option server 'sss0'
|
||||
option local_address '0.0.0.0'
|
||||
option local_port '1100'
|
||||
option mode 'tcp_and_udp'
|
||||
option timeout '1000'
|
||||
option fast_open 1
|
||||
option verbose 0
|
||||
option syslog 1
|
||||
option reuse_port 1
|
||||
option mptcp 1
|
||||
option ipv6_first 1
|
||||
option no_delay 1
|
||||
option disabled 1
|
||||
|
||||
config ss_rules 'ss_rules'
|
||||
option disabled 0
|
||||
option redir_tcp 'hi1'
|
||||
option src_default 'forward'
|
||||
option dst_default 'forward'
|
||||
option local_default 'forward'
|
||||
option server 'sss0'
|
||||
|
||||
config server 'sss0'
|
||||
option disabled 1
|
||||
option server '192.168.1.3'
|
||||
option server_port '65280'
|
||||
option key ''
|
||||
option method '2022-blake3-aes-256-gcm'
|
||||
option obfs 0
|
||||
|
||||
config ss_tunnel 'dns'
|
||||
option disabled 1
|
||||
option mode 'tcp_and_udp'
|
||||
option server 'sss0'
|
||||
option local_port '5353'
|
||||
option tunnel_address '8.8.8.8:53'
|
494
shadowsocks-rust/files/shadowsocks-rust.init
Normal file
494
shadowsocks-rust/files/shadowsocks-rust.init
Normal file
|
@ -0,0 +1,494 @@
|
|||
#!/bin/sh /etc/rc.common
|
||||
#
|
||||
# Copyright (C) 2017-2019 Yousong Zhou <yszhou4tech@gmail.com>
|
||||
# Copyright (C) 2019-2021 Ycarus (Yannick Chabanois) <ycarus@zugaina.org> for OpenMPTCProuter
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v3.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
USE_PROCD=1
|
||||
EXTRA_COMMANDS="rules_up rules_down rules_exist"
|
||||
START=91
|
||||
|
||||
ss_confdir=/var/etc/shadowsocks-rust
|
||||
ss_bindir=/usr/bin
|
||||
|
||||
ss_mkjson_server_conf() {
|
||||
local cfgserver
|
||||
|
||||
config_get cfgserver "$cfg" server
|
||||
[ -n "$cfgserver" ] || return 1
|
||||
eval "$(validate_server_section "$cfg" ss_validate_mklocal)"
|
||||
validate_server_section "$cfgserver" || return 1
|
||||
[ "$disabled" = 0 ] || return 1
|
||||
ss_mkjson_server_conf_ "$cfgserver"
|
||||
}
|
||||
|
||||
ss_mkjson_server_conf_() {
|
||||
[ -n "$server_port" ] || return 1
|
||||
[ -z "$method" ] || json_add_string method "$method"
|
||||
[ -z "$server" ] || json_add_string server "$server"
|
||||
json_add_int server_port "$server_port"
|
||||
[ -z "$password" ] || {
|
||||
#password="$(echo $password | sed 's/+/-/g; s/\//_/g;')"
|
||||
json_add_string password "$password"
|
||||
}
|
||||
[ -z "$password" ] && return 1
|
||||
[ -z "$plugin" ] || json_add_string plugin "$plugin"
|
||||
[ -z "$plugin_opts" ] || json_add_string plugin_opts "$plugin_opts"
|
||||
if [ "$obfs" = 1 ]; then
|
||||
if [ "$obfs_plugin" = "obfs" ]; then
|
||||
obfs_options="obfs=$obfs_type"
|
||||
[ -z "$obfs_host" ] || obfs_options="$obfs_options;obfs-host=$obfs_host"
|
||||
[ -z "$obfs_uri" ] || obfs_options="$obfs_options;obfs-uri=$obfs_uri"
|
||||
[ "$fast_open" = 1 ] && obfs_options="$obfs_options;fast-open"
|
||||
[ "$mptcp" = 1 ] && obfs_options="$obfs_options;mptcp"
|
||||
[ -z "$timeout" ] || obfs_options="$obfs_options;t=$timeout"
|
||||
json_add_string plugin "/usr/bin/obfs-local"
|
||||
json_add_string plugin_opts "$obfs_options"
|
||||
fi
|
||||
if [ "$obfs_plugin" = "v2ray" ]; then
|
||||
obfs_options="loglevel=default"
|
||||
[ "$obfs_type" = "tls" ] && obfs_options="tls"
|
||||
[ -z "$obfs_host" ] || obfs_options="$obfs_options;host=$obfs_host"
|
||||
[ -z "$obfs_uri" ] || obfs_options="$obfs_options;path=$obfs_uri"
|
||||
[ "$fast_open" = 1 ] && obfs_options="$obfs_options;fast-open"
|
||||
json_add_string plugin "/usr/bin/v2ray-plugin"
|
||||
json_add_string plugin_opts "$obfs_options"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
ss_mkjson_ss_local_conf() {
|
||||
ss_mkjson_server_conf
|
||||
}
|
||||
|
||||
ss_mkjson_ss_redir_conf() {
|
||||
ss_mkjson_server_conf
|
||||
}
|
||||
|
||||
ss_mkjson_ss_server_conf() {
|
||||
ss_mkjson_server_conf_
|
||||
}
|
||||
|
||||
ss_mkjson_ss_tunnel_conf() {
|
||||
ss_mkjson_server_conf || return 1
|
||||
[ -n "$tunnel_address" ] || return 1
|
||||
json_add_string tunnel_address "$tunnel_address"
|
||||
}
|
||||
|
||||
ss_xxx() {
|
||||
local cfg="$1"
|
||||
local cfgtype="$2"
|
||||
local bin="$ss_bindir/sslocal"
|
||||
local confjson="$ss_confdir/$cfgtype.$cfg.json"
|
||||
|
||||
[ -x "$bin" ] || return
|
||||
eval "$("validate_${cfgtype}_section" "$cfg" ss_validate_mklocal)"
|
||||
"validate_${cfgtype}_section" "$cfg" || return
|
||||
[ "$disabled" = 0 ] || return
|
||||
|
||||
json_init
|
||||
ss_mkjson_${cfgtype}_conf || return
|
||||
json_add_boolean use_syslog 1
|
||||
json_add_boolean ipv6_first "$ipv6_first"
|
||||
json_add_boolean fast_open "$fast_open"
|
||||
json_add_boolean reuse_port "$reuse_port"
|
||||
json_add_boolean no_delay "$no_delay"
|
||||
json_add_boolean mptcp "$mptcp"
|
||||
[ "$cfgtype" != "ss_local" ] && json_add_string protocol "${cfgtype/ss_/}"
|
||||
[ -z "$local_address" ] || json_add_string local_address "$local_address"
|
||||
[ -z "$local_port" ] || json_add_int local_port "$local_port"
|
||||
[ -z "$mode" ] || json_add_string mode "$mode"
|
||||
[ -z "$mtu" ] || json_add_int mtu "$mtu"
|
||||
[ -z "$timeout" ] || json_add_int timeout "$timeout"
|
||||
[ -z "$user" ] || json_add_string user "$user"
|
||||
json_dump -i >"$confjson"
|
||||
|
||||
procd_open_instance "$cfgtype.$cfg"
|
||||
procd_set_param command "$bin" -c "$confjson"
|
||||
[ "$verbose" = 0 ] || procd_append_param command -v
|
||||
[ -z "$bind_address" ] || procd_append_param command -b "$bind_address"
|
||||
procd_set_param file "$confjson"
|
||||
procd_set_param limits nofile="512000 512000"
|
||||
procd_set_param respawn
|
||||
procd_close_instance
|
||||
ss_rules_cb
|
||||
}
|
||||
|
||||
ss_rules_restart() {
|
||||
local cfg="$1"
|
||||
local cfgtype="$2"
|
||||
|
||||
eval "$("validate_${cfgtype}_section" "$cfg" ss_validate_mklocal)"
|
||||
"validate_${cfgtype}_section" "$cfg" || return 1
|
||||
ss_rules_cb
|
||||
}
|
||||
|
||||
ss_rules_cb() {
|
||||
local cfgserver server
|
||||
|
||||
if [ "$cfgtype" = ss_redir ]; then
|
||||
config_get cfgserver "$cfg" server
|
||||
config_get server "$cfgserver" server
|
||||
ss_redir_servers="$ss_redir_servers $server"
|
||||
if [ "$mode" = "tcp_only" -o "$mode" = "tcp_and_udp" ]; then
|
||||
eval "ss_rules_redir_tcp_$cfg=$local_port"
|
||||
eval "ss_rules6_redir_tcp_$cfg=$local_port"
|
||||
fi
|
||||
if [ "$mode" = "udp_only" -o "$mode" = "tcp_and_udp" ]; then
|
||||
eval "ss_rules_redir_udp_$cfg=$local_port"
|
||||
eval "ss_rules6_redir_udp_$cfg=$local_port"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
ss_redir_ports() {
|
||||
port=$(uci -q get shadowsocks-rust.$1.local_port)
|
||||
server=$(uci -q get shadowsocks-rust.$1.server)
|
||||
disabled=$(uci -q get shadowsocks-rust.$1.disabled)
|
||||
if [ "$disabled" != "1" ] && ([ "$server" = "$2" ] || [ "$2" = "" ]); then
|
||||
if [ "$port" -lt "$min_ss_redir_ports" ]; then
|
||||
min_ss_redir_ports=$port
|
||||
fi
|
||||
if [ "$port" -gt "$max_ss_redir_ports" ]; then
|
||||
max_ss_redir_ports=$port
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
ss_rules() {
|
||||
local cfg="$1"
|
||||
local bin="$ss_bindir/ssr-rules"
|
||||
local bin6="$ss_bindir/ssr-rules6"
|
||||
local cfgtype
|
||||
local cfgrulesserver
|
||||
local local_port_tcp local_port_udp
|
||||
local local_port_tcp6 local_port_udp6
|
||||
local args
|
||||
local rule_name
|
||||
if [ "$cfg" = "ss_rules" ]; then
|
||||
rule_name="def"
|
||||
else
|
||||
rule_name="$(echo $cfg | sed 's/_rule//' | cut -c -7)"
|
||||
fi
|
||||
|
||||
[ -x "$bin" ] || return 1
|
||||
#"$bin" -f
|
||||
[ -x "$bin6" ] || return 1
|
||||
#"$bin6" -f
|
||||
|
||||
config_get cfgtype "$cfg" TYPE
|
||||
[ "$cfgtype" = ss_rules ] || return 1
|
||||
|
||||
config_get cfgrulesserver "$cfg" server
|
||||
|
||||
eval "$(validate_ss_rules_section "$cfg" ss_validate_mklocal)"
|
||||
validate_ss_rules_section "$cfg" || return 1
|
||||
[ "$disabled" != "1" ] || return 0
|
||||
[ "$(uci -q get shadowsocks-rust.${cfgrulesserver}.disabled)" != "1" ] || return 0
|
||||
if [ "$ss_rules_redir_tcp_$redir_tcp" = "all" ]; then
|
||||
min_ss_redir_ports="65535"
|
||||
max_ss_redir_ports="0"
|
||||
config_load shadowsocks-rust
|
||||
config_foreach ss_redir_ports ss_redir $cfgrulesserver
|
||||
if [ "$min_ss_redir_ports" != "$max_ss_redir_ports" ]; then
|
||||
all_ss_redir_ports=$min_ss_redir_ports-$max_ss_redir_ports
|
||||
else
|
||||
all_ss_redir_ports=$min_ss_redir_ports
|
||||
fi
|
||||
local_port_tcp="$all_ss_redir_ports"
|
||||
if [ "$ss_rules_redir_udp_$redir_udp" = "all" ] || [ "$ss_rules_redir_udp_$redir_udp" = "hi1" ]; then
|
||||
local_port_udp="$min_ss_redir_ports"
|
||||
fi
|
||||
#eval local_port_udp="\$ss_rules_redir_udp_$redir_udp"
|
||||
local_port_tcp6="$all_ss_redir_ports"
|
||||
if [ "$ss_rules_redir_udp_$redir_udp" = "all" ] || [ "$ss_rules_redir_udp_$redir_udp" = "hi1" ]; then
|
||||
local_port_udp6="$min_ss_redir_ports"
|
||||
fi
|
||||
#eval local_port_udp6="\$ss_rules6_redir_udp_$redir_udp"
|
||||
else
|
||||
eval local_port_tcp="\$ss_rules_redir_tcp_$redir_tcp"
|
||||
eval local_port_udp="\$ss_rules_redir_udp_$redir_udp"
|
||||
eval local_port_tcp6="\$ss_rules6_redir_tcp_$redir_tcp"
|
||||
eval local_port_udp6="\$ss_rules6_redir_udp_$redir_udp"
|
||||
fi
|
||||
[ -n "$local_port_tcp" -o -n "$local_port_udp" ] || return 1
|
||||
ss_redir_servers4="$(echo "$ss_redir_servers" | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | sort -u)"
|
||||
ss_redir_servers6="$(echo "$ss_redir_servers" | grep -o '\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}' | sort -u)"
|
||||
[ -z "$ss_redir_servers4" ] && [ -z "$ss_redir_servers6" ] && {
|
||||
ss_redir_servers4="$ss_redir_servers"
|
||||
ss_redir_servers6="$ss_redir_servers"
|
||||
}
|
||||
#ss_redir_servers="$(echo "$ss_redir_servers" | tr ' ' '\n' | sort -u)"
|
||||
dst_ips_bypass4="$(echo "$dst_ips_bypass" | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | sort -u)"
|
||||
dst_ips_forward4="$(echo "$dst_ips_forward" | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | sort -u)"
|
||||
src_ips_bypass4="$(echo "$src_ips_bypass" | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | sort -u)"
|
||||
src_ips_forward4="$(echo "$src_ips_forward" | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | sort -u)"
|
||||
src_ips_checkdst4="$(echo "$src_ips_checkdst" | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | sort -u)"
|
||||
dst_ips_bypass6="$(echo "$dst_ips_bypass" | grep -o '\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}' | sort -u)"
|
||||
dst_ips_forward6="$(echo "$dst_ips_forward" | grep -o '\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}' | sort -u)"
|
||||
src_ips_bypass6="$(echo "$src_ips_bypass" | grep -o '\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}' | sort -u)"
|
||||
src_ips_forward6="$(echo "$src_ips_forward" | grep -o '\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}' | sort -u)"
|
||||
src_ips_checkdst6="$(echo "$src_ips_checkdst" | grep -o '\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}' | sort -u)"
|
||||
[ -z "$dst_ips_bypass4" ] && [ -z "$dst_ips_bypass6" ] && {
|
||||
dst_ips_bypass4="$dst_ips_bypass"
|
||||
dst_ips_bypass6="$dst_ips_bypass"
|
||||
}
|
||||
[ -z "$dst_ips_forward4" ] && [ -z "$dst_ips_forward6" ] && {
|
||||
dst_ips_forward4="$dst_ips_forward"
|
||||
dst_ips_forward6="$dst_ips_forward"
|
||||
}
|
||||
[ -z "$src_ips_bypass4" ] && [ -z "$src_ips_bypass6" ] && {
|
||||
src_ips_bypass4="$src_ips_bypass"
|
||||
src_ips_bypass6="$src_ips_bypass"
|
||||
}
|
||||
[ -z "$src_ips_forward4" ] && [ -z "$src_ips_forward6" ] && {
|
||||
src_ips_forward4="$src_ips_forward"
|
||||
src_ips_forward6="$src_ips_forward"
|
||||
}
|
||||
[ -z "$src_ips_checkdst4" ] && [ -z "$src_ips_checkdst6" ] && {
|
||||
src_ips_checkdst4="$src_ips_checkdst"
|
||||
src_ips_checkdst6="$src_ips_checkdst"
|
||||
}
|
||||
[ "$dst_forward_recentrst" = 0 ] || args="$args --dst-forward-recentrst"
|
||||
|
||||
ss_rules_call
|
||||
ss_rules_call6
|
||||
}
|
||||
|
||||
ss_rules_call() {
|
||||
"$bin" "$@" \
|
||||
-s "$ss_redir_servers4" \
|
||||
${local_port_tcp:+-l "$local_port_tcp"} \
|
||||
${local_port_udp:+-L "$local_port_udp"} \
|
||||
${src_default:+--src-default "$src_default"} \
|
||||
${dst_default:+--dst-default "$dst_default"} \
|
||||
${local_default:+--local-default "$local_default"} \
|
||||
${dst_ips_bypass_file:+--dst-bypass-file "$dst_ips_bypass_file"} \
|
||||
${dst_ips_forward_file:+--dst-forward-file "$dst_ips_forward_file"} \
|
||||
${dst_ips_bypass4:+--dst-bypass "$dst_ips_bypass4"} \
|
||||
${dst_ips_forward4:+--dst-forward "$dst_ips_forward4"} \
|
||||
${src_ips_bypass4:+--src-bypass "$src_ips_bypass4"} \
|
||||
${src_ips_forward4:+--src-forward "$src_ips_forward4"} \
|
||||
${src_ips_checkdst4:+--src-checkdst "$src_ips_checkdst4"} \
|
||||
${ifnames:+--ifnames "$ifnames"} \
|
||||
${ipt_args:+--ipt-extra "$ipt_args"} \
|
||||
${cfg:+--rule-name "$rule_name"} \
|
||||
$args \
|
||||
|| "$bin" "$@" -f
|
||||
}
|
||||
|
||||
ss_rules_call6() {
|
||||
"$bin6" "$@" \
|
||||
-s "$ss_redir_servers6" \
|
||||
${local_port_tcp:+-l "$local_port_tcp6"} \
|
||||
${local_port_udp:+-L "$local_port_udp6"} \
|
||||
${src_default:+--src-default "$src_default"} \
|
||||
${dst_default:+--dst-default "$dst_default"} \
|
||||
${local_default:+--local-default "$local_default"} \
|
||||
${dst_ips_bypass_file:+--dst-bypass-file "$dst_ips_bypass_file"} \
|
||||
${dst_ips_forward_file:+--dst-forward-file "$dst_ips_forward_file"} \
|
||||
${dst_ips_bypass6:+--dst-bypass "$dst_ips_bypass6"} \
|
||||
${dst_ips_forward6:+--dst-forward "$dst_ips_forward6"} \
|
||||
${src_ips_bypass6:+--src-bypass "$src_ips_bypass6"} \
|
||||
${src_ips_forward6:+--src-forward "$src_ips_forward6"} \
|
||||
${src_ips_checkdst6:+--src-checkdst "$src_ips_checkdst6"} \
|
||||
${ifnames:+--ifnames "$ifnames"} \
|
||||
${ipt_args:+--ipt-extra "$ipt_args"} \
|
||||
${cfg:+--rule-name "$rule_name"} \
|
||||
$args \
|
||||
|| "$bin6" "$@" -f
|
||||
}
|
||||
|
||||
start_service() {
|
||||
local cfgtype
|
||||
|
||||
mkdir -p "$ss_confdir"
|
||||
config_load shadowsocks-rust
|
||||
for cfgtype in ss_local ss_redir ss_server ss_tunnel; do
|
||||
config_foreach ss_xxx "$cfgtype" "$cfgtype"
|
||||
done
|
||||
# Add rule to match traffic marked by firewall for bypass
|
||||
ip rule add prio 1 fwmark 0x539 lookup 991337 > /dev/null 2>&1
|
||||
rules_up
|
||||
[ -f /etc/firewall.gre-tunnel ] && sh /etc/firewall.gre-tunnel > /dev/null 2>&1
|
||||
}
|
||||
|
||||
stop_service() {
|
||||
rules_down
|
||||
rm -rf "$ss_confdir"
|
||||
}
|
||||
|
||||
reload_service() {
|
||||
restart "$@"
|
||||
}
|
||||
|
||||
rules_exist() {
|
||||
[ -n "$(iptables-save 2>/dev/null | grep 'A ssr')" ] && return 0
|
||||
return 1
|
||||
}
|
||||
|
||||
server_state() {
|
||||
config_get disabled "$1" disabled "0"
|
||||
[ "$disabled" = "0" ] && enabled="1"
|
||||
config_get password "$1" password
|
||||
[ -n "$password" ] && passkey=$password
|
||||
}
|
||||
|
||||
rules_up() {
|
||||
rules_exist && {
|
||||
[ -f /bin/blocklanfw ] && /bin/blocklanfw 2>&1 >/dev/null
|
||||
return 0
|
||||
}
|
||||
[ "$(uci -q get shadowsocks-rust.ss_rules.disabled)" = "1" ] && return 0
|
||||
enabled="0"
|
||||
passkey=""
|
||||
config_load shadowsocks-rust
|
||||
config_foreach server_state server
|
||||
[ "$enabled" = "0" ] && return
|
||||
[ -z "$passkey" ] && return
|
||||
logger -t "Shadowsocks-rust" "Rules UP"
|
||||
for cfgtype in ss_redir; do
|
||||
config_foreach ss_rules_restart "$cfgtype" "$cfgtype"
|
||||
done
|
||||
config_foreach ss_rules ss_rules
|
||||
[ -z "$(iptables-save 2>/dev/null | grep :ssr)" ] && logger -t "Shadowsocks-rust" "Rules not applied"
|
||||
[ -f /etc/init.d/omr-bypass ] && [ -z "$(pgrep -f omr-bypass)" ] && {
|
||||
logger -t "Shadowsocks-rust" "Reload omr-bypass rules"
|
||||
/etc/init.d/omr-bypass reload_rules
|
||||
}
|
||||
[ -f /bin/blocklanfw ] && /bin/blocklanfw 2>&1 >/dev/null
|
||||
}
|
||||
|
||||
rules_down() {
|
||||
rules_exist || return 0
|
||||
logger -t "Shadowsocks-rust" "Rules DOWN"
|
||||
local bin="$ss_bindir/ssr-rules"
|
||||
[ -x "$bin" ] && {
|
||||
"$bin" -f >/dev/null 2>&1
|
||||
}
|
||||
local bin6="$ss_bindir/ssr-rules6"
|
||||
[ -x "$bin6" ] && {
|
||||
"$bin6" -f >/dev/null 2>&1
|
||||
}
|
||||
}
|
||||
|
||||
service_triggers() {
|
||||
procd_add_reload_interface_trigger wan*
|
||||
procd_add_reload_trigger shadowsocks-rust
|
||||
procd_open_validate
|
||||
validate_server_section
|
||||
validate_ss_local_section
|
||||
validate_ss_redir_section
|
||||
validate_ss_rules_section
|
||||
validate_ss_server_section
|
||||
validate_ss_tunnel_section
|
||||
procd_close_validate
|
||||
}
|
||||
|
||||
ss_validate_mklocal() {
|
||||
local tuple opts
|
||||
|
||||
shift 2
|
||||
for tuple in "$@"; do
|
||||
opts="${tuple%%:*} $opts"
|
||||
done
|
||||
[ -z "$opts" ] || echo "local $opts"
|
||||
}
|
||||
|
||||
ss_validate() {
|
||||
uci_validate_section shadowsocks-rust "$@"
|
||||
}
|
||||
|
||||
validate_common_server_options_() {
|
||||
local cfgtype="$1"; shift
|
||||
local cfg="$1"; shift
|
||||
local func="$1"; shift
|
||||
local stream_methods='"none", "plain", "chacha20-ietf-poly1305"'
|
||||
local aead_methods='"aes-128-gcm", "aes-256-gcm","2022-blake3-aes-128-gcm", "2022-blake3-aes-256-gcm", "chacha20-ietf-poly1305", "2022-blake3-chacha20-poly1305","2022-blake3-chacha8-poly1305"'
|
||||
|
||||
"${func:-ss_validate}" "$cfgtype" "$cfg" "$@" \
|
||||
'disabled:bool:0' \
|
||||
'server:host' \
|
||||
'server_port:port' \
|
||||
'password:string' \
|
||||
"method:or($stream_methods, $aead_methods)" \
|
||||
'plugin:string' \
|
||||
'plugin_opts:string' \
|
||||
'obfs:bool:0' \
|
||||
'obfs_plugin:or("v2ray","obfs"):v2ray' \
|
||||
'obfs_type:or("http","tls"):http'
|
||||
}
|
||||
|
||||
validate_common_client_options_() {
|
||||
validate_common_options_ "$@" \
|
||||
'server:uci("shadowsocks-rust", "@server")' \
|
||||
'local_address:host:0.0.0.0' \
|
||||
'local_port:port'
|
||||
}
|
||||
|
||||
validate_common_options_() {
|
||||
local cfgtype="$1"; shift
|
||||
local cfg="$1"; shift
|
||||
local func="$1"; shift
|
||||
|
||||
"${func:-ss_validate}" "$cfgtype" "$cfg" "$@" \
|
||||
'disabled:bool:0' \
|
||||
'fast_open:bool:0' \
|
||||
'ipv6_first:bool:0' \
|
||||
'no_delay:bool:0' \
|
||||
'mptcp:bool:0' \
|
||||
'reuse_port:bool:0' \
|
||||
'verbose:bool:0' \
|
||||
'mode:or("tcp_only", "udp_only", "tcp_and_udp"):tcp_only' \
|
||||
'mtu:uinteger' \
|
||||
'timeout:uinteger' \
|
||||
'user:string'
|
||||
}
|
||||
|
||||
validate_server_section() {
|
||||
validate_common_server_options_ server "$1" "$2"
|
||||
}
|
||||
|
||||
validate_ss_local_section() {
|
||||
validate_common_client_options_ ss_local "$1" "$2"
|
||||
}
|
||||
|
||||
validate_ss_redir_section() {
|
||||
validate_common_client_options_ ss_redir "$1" "$2"
|
||||
}
|
||||
|
||||
validate_ss_rules_section() {
|
||||
"${2:-ss_validate}" ss_rules "$1" \
|
||||
'disabled:bool:0' \
|
||||
'redir_tcp:or(uci("shadowsocks-rust", "@ss_redir"),"all")' \
|
||||
'redir_udp:or(uci("shadowsocks-rust", "@ss_redir"),"all")' \
|
||||
'src_ips_bypass:or(ipaddr,cidr)' \
|
||||
'src_ips_forward:or(ipaddr,cidr)' \
|
||||
'src_ips_checkdst:or(ipaddr,cidr)' \
|
||||
'dst_ips_bypass_file:file' \
|
||||
'dst_ips_bypass:or(ipaddr,cidr)' \
|
||||
'dst_ips_forward_file:file' \
|
||||
'dst_ips_forward:or(ipaddr,cidr)' \
|
||||
'src_default:or("bypass", "forward", "checkdst"):checkdst' \
|
||||
'dst_default:or("bypass", "forward"):bypass' \
|
||||
'local_default:or("bypass", "forward", "checkdst"):bypass' \
|
||||
'dst_forward_recentrst:bool:0' \
|
||||
'ifnames:maxlength(15)' \
|
||||
'ipt_args:string'
|
||||
}
|
||||
|
||||
validate_ss_server_section() {
|
||||
validate_common_server_options_ ss_server "$1" \
|
||||
validate_common_options_ \
|
||||
"$2" \
|
||||
'bind_address:ipaddr'
|
||||
}
|
||||
|
||||
validate_ss_tunnel_section() {
|
||||
validate_common_client_options_ ss_tunnel "$1" \
|
||||
"$2" \
|
||||
'tunnel_address:regex(".+\:[0-9]+")'
|
||||
}
|
301
shadowsocks-rust/files/ssr-rules
Executable file
301
shadowsocks-rust/files/ssr-rules
Executable file
|
@ -0,0 +1,301 @@
|
|||
#!/bin/sh -e
|
||||
#
|
||||
# Copyright (C) 2017 Yousong Zhou <yszhou4tech@gmail.com>
|
||||
# Copyright (C) 2018-2021 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
|
||||
#
|
||||
# The design idea was derived from ss-rules by Jian Chang <aa65535@live.com>
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v3.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
if [ -f /usr/sbin/iptables-legacy ]; then
|
||||
IPTABLES="/usr/sbin/iptables-legacy"
|
||||
IPTABLESRESTORE="/usr/sbin/iptables-legacy-restore"
|
||||
IPTABLESSAVE="/usr/sbin/iptables-legacy-save"
|
||||
else
|
||||
IPTABLES="/usr/sbin/iptables"
|
||||
IPTABLESRESTORE="/usr/sbin/iptables-restore"
|
||||
IPTABLESSAVE="/usr/sbin/iptables-save"
|
||||
fi
|
||||
|
||||
|
||||
ss_rules_usage() {
|
||||
cat >&2 <<EOF
|
||||
Usage: ss-rules [options]
|
||||
|
||||
-h, --help Show this help message then exit
|
||||
-f, --flush Flush rules, ipset then exit
|
||||
-l <port> Local port number of ss-redir with TCP mode
|
||||
-L <port> Local port number of ss-redir with UDP mode
|
||||
-s <ips> List of ip addresses of remote shadowsocks server
|
||||
--ifnames Only apply rules on packets from these ifnames
|
||||
--src-bypass <ips|cidr>
|
||||
--src-forward <ips|cidr>
|
||||
--src-checkdst <ips|cidr>
|
||||
--src-default <bypass|forward|checkdst>
|
||||
Packets will have their src ip checked in order against
|
||||
bypass, forward, checkdst list and will bypass, forward
|
||||
through, or continue to have their dst ip checked
|
||||
respectively on the first match. Otherwise, --src-default
|
||||
decide the default action
|
||||
--dst-bypass <ips|cidr>
|
||||
--dst-forward <ips|cidr>
|
||||
--dst-bypass-file <file>
|
||||
--dst-forward-file <file>
|
||||
--dst-default <bypass|forward>
|
||||
Same as with their --src-xx equivalent
|
||||
--dst-forward-recentrst
|
||||
Forward those packets whose destinations have recently
|
||||
sent to us multiple tcp-rst packets
|
||||
--local-default <bypass|forward|checkdst>
|
||||
Default action for local out TCP traffic
|
||||
|
||||
The following ipsets will be created by ss-rules. They are also intended to be
|
||||
populated by other programs like dnsmasq with ipset support
|
||||
|
||||
ss_rules_src_bypass
|
||||
ss_rules_src_forward
|
||||
ss_rules_src_checkdst
|
||||
ss_rules_dst_bypass
|
||||
ss_rules_dst_bypass_all
|
||||
ss_rules_dst_forward
|
||||
EOF
|
||||
}
|
||||
|
||||
o_dst_bypass_="
|
||||
0.0.0.0/8
|
||||
10.0.0.0/8
|
||||
100.64.0.0/10
|
||||
127.0.0.0/8
|
||||
169.254.0.0/16
|
||||
172.16.0.0/12
|
||||
192.0.0.0/24
|
||||
192.0.2.0/24
|
||||
192.31.196.0/24
|
||||
192.52.193.0/24
|
||||
192.88.99.0/24
|
||||
192.168.0.0/16
|
||||
192.175.48.0/24
|
||||
198.18.0.0/15
|
||||
198.51.100.0/24
|
||||
203.0.113.0/24
|
||||
224.0.0.0/4
|
||||
240.0.0.0/4
|
||||
255.255.255.255
|
||||
"
|
||||
o_src_default=bypass
|
||||
o_dst_default=bypass
|
||||
o_local_default=bypass
|
||||
|
||||
__errmsg() {
|
||||
echo "ss-rules: $*" >&2
|
||||
}
|
||||
|
||||
ss_rules_parse_args() {
|
||||
while [ "$#" -gt 0 ]; do
|
||||
case "$1" in
|
||||
-h|--help) ss_rules_usage; exit 0;;
|
||||
-f|--flush) ss_rules_flush; exit 0;;
|
||||
-l) o_redir_tcp_port="$2"; shift 2;;
|
||||
-L) o_redir_udp_port="$2"; shift 2;;
|
||||
-s) o_remote_servers="$2"; shift 2;;
|
||||
--ifnames) o_ifnames="$2"; shift 2;;
|
||||
--ipt-extra) o_ipt_extra="$2"; shift 2;;
|
||||
--src-default) o_src_default="$2"; shift 2;;
|
||||
--dst-default) o_dst_default="$2"; shift 2;;
|
||||
--local-default) o_local_default="$2"; shift 2;;
|
||||
--src-bypass) o_src_bypass="$2"; shift 2;;
|
||||
--src-forward) o_src_forward="$2"; shift 2;;
|
||||
--src-checkdst) o_src_checkdst="$2"; shift 2;;
|
||||
--dst-bypass) o_dst_bypass="$2"; shift 2;;
|
||||
--dst-bypass_all) o_dst_bypass_all="$2"; shift 2;;
|
||||
--dst-forward) o_dst_forward="$2"; shift 2;;
|
||||
--dst-forward-recentrst) o_dst_forward_recentrst=1; shift 1;;
|
||||
--dst-bypass-file) o_dst_bypass_file="$2"; shift 2;;
|
||||
--dst-forward-file) o_dst_forward_file="$2"; shift 2;;
|
||||
--rule-name) rule="$2"; shift 2;;
|
||||
*) __errmsg "unknown option $1"; return 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "$o_redir_tcp_port" -a -z "$o_redir_udp_port" ]; then
|
||||
__errmsg "Requires at least -l or -L option"
|
||||
return 1
|
||||
fi
|
||||
if [ -n "$o_dst_forward_recentrst" ] && ! $IPTABLES -w -m recent -h >/dev/null; then
|
||||
__errmsg "Please install iptables-mod-conntrack-extra with opkg"
|
||||
return 1
|
||||
fi
|
||||
o_remote_servers="$(for s in $o_remote_servers; do resolveip -4 "$s"; done)"
|
||||
}
|
||||
|
||||
ss_rules_flush() {
|
||||
local setname
|
||||
|
||||
$IPTABLESSAVE --counters 2>/dev/null | grep -v ssr_ | $IPTABLESRESTORE --counters
|
||||
while ip rule del fwmark 1 lookup 100 2>/dev/null; do true; done
|
||||
ip route flush table 100 || true
|
||||
for setname in $(ipset -n list | grep "ssr_${rule}"); do
|
||||
ipset destroy "$setname" 2>/dev/null || true
|
||||
done
|
||||
}
|
||||
|
||||
ss_rules_ipset_init() {
|
||||
ipset --exist restore <<-EOF
|
||||
create ssr_${rule}_src_bypass hash:net hashsize 64
|
||||
create ssr_${rule}_src_forward hash:net hashsize 64
|
||||
create ssr_${rule}_src_checkdst hash:net hashsize 64
|
||||
create ss_rules_dst_bypass_all hash:net hashsize 64
|
||||
create ssr_${rule}_dst_bypass hash:net hashsize 64
|
||||
create ssr_${rule}_dst_bypass_ hash:net hashsize 64
|
||||
create ssr_${rule}_dst_forward hash:net hashsize 64
|
||||
create ss_rules_dst_forward_recentrst_ hash:ip hashsize 64 timeout 3600
|
||||
$(ss_rules_ipset_mkadd ssr_${rule}_dst_bypass_ "$o_dst_bypass_ $o_remote_servers")
|
||||
$(ss_rules_ipset_mkadd ss_rules_dst_bypass_all "$o_dst_bypass_all")
|
||||
$(ss_rules_ipset_mkadd ssr_${rule}_dst_bypass "$o_dst_bypass $(cat "$o_dst_bypass_file" 2>/dev/null | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}')")
|
||||
$(ss_rules_ipset_mkadd ssr_${rule}_src_bypass "$o_src_bypass")
|
||||
$(ss_rules_ipset_mkadd ssr_${rule}_src_forward "$o_src_forward")
|
||||
$(ss_rules_ipset_mkadd ssr_${rule}_src_checkdst "$o_src_checkdst")
|
||||
$(ss_rules_ipset_mkadd ssr_${rule}_dst_forward "$o_dst_forward $(cat "$o_dst_forward_file" 2>/dev/null | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}')")
|
||||
EOF
|
||||
}
|
||||
|
||||
ss_rules_ipset_mkadd() {
|
||||
local setname="$1"; shift
|
||||
local i
|
||||
|
||||
for i in $*; do
|
||||
echo "add $setname $i"
|
||||
done
|
||||
}
|
||||
|
||||
ss_rules_iptchains_init() {
|
||||
ss_rules_iptchains_init_mark
|
||||
ss_rules_iptchains_init_tcp
|
||||
ss_rules_iptchains_init_udp
|
||||
}
|
||||
|
||||
ss_rules_iptchains_init_mark() {
|
||||
if [ "$($IPTABLES -w -t mangle -L PREROUTING | grep ss_rules_dst_bypass_all)" = "" ]; then
|
||||
$IPTABLESRESTORE --noflush <<-EOF
|
||||
*mangle
|
||||
-A PREROUTING -m set --match-set ss_rules_dst_bypass_all dst -j MARK --set-mark 0x539
|
||||
COMMIT
|
||||
EOF
|
||||
fi
|
||||
}
|
||||
|
||||
ss_rules_iptchains_init_tcp() {
|
||||
local local_target
|
||||
|
||||
[ -n "$o_redir_tcp_port" ] || return 0
|
||||
|
||||
ss_rules_iptchains_init_ nat tcp
|
||||
|
||||
case "$o_local_default" in
|
||||
checkdst) local_target=ssr_${rule}_dst ;;
|
||||
forward) local_target=ssr_${rule}_forward ;;
|
||||
bypass|*) return 0;;
|
||||
esac
|
||||
if [ "$($IPTABLESSAVE 2>/dev/null | grep ssr_${rule}_local_out | grep ssr_${rule}_dst_bypass)" = "" ]; then
|
||||
$IPTABLESRESTORE --noflush <<-EOF
|
||||
*nat
|
||||
:ssr_${rule}_local_out -
|
||||
-I OUTPUT 1 -p tcp -j ssr_${rule}_local_out
|
||||
-A ssr_${rule}_local_out -m set --match-set ssr_${rule}_dst_bypass dst -j RETURN
|
||||
-A ssr_${rule}_local_out -m set --match-set ss_rules_dst_bypass_all dst -j RETURN
|
||||
-A ssr_${rule}_local_out -m set --match-set ssr_${rule}_dst_bypass_ dst -j RETURN
|
||||
-A ssr_${rule}_local_out -m mark --mark 0x539 -j RETURN
|
||||
-A ssr_${rule}_local_out -p tcp $o_ipt_extra -j $local_target -m comment --comment "local_default: $o_local_default"
|
||||
COMMIT
|
||||
EOF
|
||||
fi
|
||||
}
|
||||
|
||||
ss_rules_iptchains_init_udp() {
|
||||
[ -n "$o_redir_udp_port" ] || return 0
|
||||
ss_rules_iptchains_init_ mangle udp
|
||||
}
|
||||
|
||||
ss_rules_iptchains_init_() {
|
||||
local table="$1"
|
||||
local proto="$2"
|
||||
local forward_rules
|
||||
local src_default_target dst_default_target
|
||||
local recentrst_mangle_rules recentrst_addset_rules
|
||||
|
||||
case "$proto" in
|
||||
tcp)
|
||||
forward_rules="-A ssr_${rule}_forward -p tcp -j REDIRECT --to-ports $o_redir_tcp_port"
|
||||
if [ -n "$o_dst_forward_recentrst" ]; then
|
||||
recentrst_mangle_rules="
|
||||
*mangle
|
||||
-I PREROUTING 1 -p tcp -m tcp --tcp-flags RST RST -m recent --name ss_rules_recentrst --set --rsource
|
||||
COMMIT
|
||||
"
|
||||
recentrst_addset_rules="
|
||||
-A ssr_${rule}_dst -m recent --name ss_rules_recentrst --rcheck --rdest --seconds 3 --hitcount 3 -j SET --add-set ss_rules_dst_forward_recentrst_ dst --exist
|
||||
-A ssr_${rule}_dst -m set --match-set ss_rules_dst_forward_recentrst_ dst -j ssr_${rule}_forward
|
||||
"
|
||||
fi
|
||||
;;
|
||||
udp)
|
||||
ip rule add fwmark 1 lookup 100 || true
|
||||
ip route add local default dev lo table 100 || true
|
||||
forward_rules="-A ssr_${rule}_forward -p udp -j TPROXY --on-port "$o_redir_udp_port" --tproxy-mark 0x01/0x01"
|
||||
;;
|
||||
esac
|
||||
case "$o_src_default" in
|
||||
forward) src_default_target=ssr_${rule}_forward ;;
|
||||
checkdst) src_default_target=ssr_${rule}_dst ;;
|
||||
bypass|*) src_default_target=RETURN ;;
|
||||
esac
|
||||
case "$o_dst_default" in
|
||||
forward) dst_default_target=ssr_${rule}_forward ;;
|
||||
bypass|*) dst_default_target=RETURN ;;
|
||||
esac
|
||||
sed -e '/^\s*$/d' -e 's/^\s\+//' <<-EOF | $IPTABLESRESTORE --noflush
|
||||
*$table
|
||||
:ssr_${rule}_pre_src -
|
||||
:ssr_${rule}_src -
|
||||
:ssr_${rule}_dst -
|
||||
:ssr_${rule}_forward -
|
||||
$(ss_rules_iptchains_mkprerules "$proto")
|
||||
-A ssr_${rule}_pre_src -m set --match-set ssr_${rule}_dst_bypass_ dst -j RETURN
|
||||
-A ssr_${rule}_pre_src -m set --match-set ss_rules_dst_bypass_all dst -j MARK --set-mark 0x539
|
||||
-A ssr_${rule}_pre_src -m set --match-set ss_rules_dst_bypass_all dst -j RETURN
|
||||
-A ssr_${rule}_pre_src -m set --match-set ssr_${rule}_dst_bypass dst -j RETURN
|
||||
-A ssr_${rule}_pre_src -m mark --mark 0x539 -j RETURN
|
||||
-A ssr_${rule}_dst -m set --match-set ss_rules_dst_bypass_all dst -j RETURN
|
||||
-A ssr_${rule}_dst -m set --match-set ssr_${rule}_dst_bypass dst -j RETURN
|
||||
-A ssr_${rule}_pre_src -p $proto $o_ipt_extra -j ssr_${rule}_src
|
||||
-A ssr_${rule}_src -m set --match-set ssr_${rule}_src_bypass src -j RETURN
|
||||
-A ssr_${rule}_src -m set --match-set ssr_${rule}_src_forward src -j ssr_${rule}_forward
|
||||
-A ssr_${rule}_src -m set --match-set ssr_${rule}_src_checkdst src -j ssr_${rule}_dst
|
||||
-A ssr_${rule}_src -j $src_default_target -m comment --comment "src_default: $o_src_default"
|
||||
-A ssr_${rule}_dst -m set --match-set ssr_${rule}_dst_forward dst -j ssr_${rule}_forward
|
||||
$recentrst_addset_rules
|
||||
-A ssr_${rule}_dst -j $dst_default_target -m comment --comment "dst_default: $o_dst_default"
|
||||
$forward_rules
|
||||
COMMIT
|
||||
$recentrst_mangle_rules
|
||||
EOF
|
||||
}
|
||||
|
||||
ss_rules_iptchains_mkprerules() {
|
||||
local proto="$1"
|
||||
|
||||
if [ -z "$o_ifnames" ]; then
|
||||
echo "-A PREROUTING -p $proto -j ssr_${rule}_pre_src"
|
||||
else
|
||||
echo $o_ifnames \
|
||||
| tr ' ' '\n' \
|
||||
| sed "s/.*/-I PREROUTING 1 -i \\0 -p $proto -j ssr_${rule}_pre_src/"
|
||||
fi
|
||||
}
|
||||
|
||||
ss_rules_parse_args "$@"
|
||||
#ss_rules_flush
|
||||
ss_rules_ipset_init
|
||||
ss_rules_iptchains_init
|
12
shadowsocks-rust/files/ssr-rules.defaults
Executable file
12
shadowsocks-rust/files/ssr-rules.defaults
Executable file
|
@ -0,0 +1,12 @@
|
|||
#!/bin/sh
|
||||
|
||||
s=firewall.ssr_rules
|
||||
uci get "$s" >/dev/null || {
|
||||
uci batch <<-EOF
|
||||
set $s=include
|
||||
set $s.path=/etc/firewall.ssr-rules
|
||||
set $s.reload=1
|
||||
commit firewall
|
||||
EOF
|
||||
}
|
||||
exit 0
|
285
shadowsocks-rust/files/ssr-rules6
Executable file
285
shadowsocks-rust/files/ssr-rules6
Executable file
|
@ -0,0 +1,285 @@
|
|||
#!/bin/sh -e
|
||||
#
|
||||
# Copyright (C) 2017 Yousong Zhou <yszhou4tech@gmail.com>
|
||||
# Copyright (C) 2018-2021 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
|
||||
#
|
||||
# The design idea was derived from ss-rules by Jian Chang <aa65535@live.com>
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v3.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
if [ -f /usr/sbin/iptables-legacy ]; then
|
||||
IP6TABLES="/usr/sbin/ip6tables-legacy"
|
||||
IP6TABLESRESTORE="/usr/sbin/ip6tables-legacy-restore"
|
||||
IP6TABLESSAVE="/usr/sbin/ip6tables-legacy-save"
|
||||
else
|
||||
IP6TABLES="/usr/sbin/ip6tables"
|
||||
IP6TABLESRESTORE="/usr/sbin/ip6tables-restore"
|
||||
IP6TABLESSAVE="/usr/sbin/ip6tables-save"
|
||||
fi
|
||||
|
||||
|
||||
|
||||
ss_rules6_usage() {
|
||||
cat >&2 <<EOF
|
||||
Usage: ss-rules [options]
|
||||
|
||||
-h, --help Show this help message then exit
|
||||
-f, --flush Flush rules, ipset then exit
|
||||
-l <port> Local port number of ss-redir with TCP mode
|
||||
-L <port> Local port number of ss-redir with UDP mode
|
||||
-s <ips> List of ip addresses of remote shadowsocks server
|
||||
--ifnames Only apply rules on packets from these ifnames
|
||||
--src-bypass <ips|cidr>
|
||||
--src-forward <ips|cidr>
|
||||
--src-checkdst <ips|cidr>
|
||||
--src-default <bypass|forward|checkdst>
|
||||
Packets will have their src ip checked in order against
|
||||
bypass, forward, checkdst list and will bypass, forward
|
||||
through, or continue to have their dst ip checked
|
||||
respectively on the first match. Otherwise, --src-default
|
||||
decide the default action
|
||||
--dst-bypass <ips|cidr>
|
||||
--dst-forward <ips|cidr>
|
||||
--dst-bypass-file <file>
|
||||
--dst-forward-file <file>
|
||||
--dst-default <bypass|forward>
|
||||
Same as with their --src-xx equivalent
|
||||
--dst-forward-recentrst
|
||||
Forward those packets whose destinations have recently
|
||||
sent to us multiple tcp-rst packets
|
||||
--local-default <bypass|forward|checkdst>
|
||||
Default action for local out TCP traffic
|
||||
|
||||
The following ipsets will be created by ss-rules. They are also intended to be
|
||||
populated by other programs like dnsmasq with ipset support
|
||||
|
||||
ss_rules6_src_bypass
|
||||
ss_rules6_src_forward
|
||||
ss_rules6_src_checkdst
|
||||
ss_rules6_dst_bypass
|
||||
ss_rules6_dst_forward
|
||||
EOF
|
||||
}
|
||||
|
||||
o_dst_bypass_="
|
||||
fe80::/10
|
||||
fd00::/8
|
||||
::1
|
||||
"
|
||||
o_src_default=bypass
|
||||
o_dst_default=bypass
|
||||
o_local_default=bypass
|
||||
|
||||
__errmsg() {
|
||||
echo "ss-rules6: $*" >&2
|
||||
}
|
||||
|
||||
ss_rules6_parse_args() {
|
||||
while [ "$#" -gt 0 ]; do
|
||||
case "$1" in
|
||||
-h|--help) ss_rules6_usage; exit 0;;
|
||||
-f|--flush) ss_rules6_flush; exit 0;;
|
||||
-l) o_redir_tcp_port="$2"; shift 2;;
|
||||
-L) o_redir_udp_port="$2"; shift 2;;
|
||||
-s) o_remote_servers="$2"; shift 2;;
|
||||
--ifnames) o_ifnames="$2"; shift 2;;
|
||||
--ipt-extra) o_ipt_extra="$2"; shift 2;;
|
||||
--src-default) o_src_default="$2"; shift 2;;
|
||||
--dst-default) o_dst_default="$2"; shift 2;;
|
||||
--local-default) o_local_default="$2"; shift 2;;
|
||||
--src-bypass) o_src_bypass="$2"; shift 2;;
|
||||
--src-forward) o_src_forward="$2"; shift 2;;
|
||||
--src-checkdst) o_src_checkdst="$2"; shift 2;;
|
||||
--dst-bypass) o_dst_bypass="$2"; shift 2;;
|
||||
--dst-bypass_all) o_dst_bypass_all="$2"; shift 2;;
|
||||
--dst-forward) o_dst_forward="$2"; shift 2;;
|
||||
--dst-forward-recentrst) o_dst_forward_recentrst=1; shift 1;;
|
||||
--dst-bypass-file) o_dst_bypass_file="$2"; shift 2;;
|
||||
--dst-forward-file) o_dst_forward_file="$2"; shift 2;;
|
||||
--rule-name) rule="$2"; shift 2;;
|
||||
*) __errmsg "unknown option $1"; return 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "$o_redir_tcp_port" -a -z "$o_redir_udp_port" ]; then
|
||||
__errmsg "Requires at least -l or -L option"
|
||||
return 1
|
||||
fi
|
||||
if [ -n "$o_dst_forward_recentrst" ] && ! $IP6TABLES -w -m recent -h >/dev/null; then
|
||||
__errmsg "Please install ip6tables-mod-conntrack-extra with opkg"
|
||||
return 1
|
||||
fi
|
||||
o_remote_servers="$(for s in $o_remote_servers; do resolveip -6 "$s"; done)"
|
||||
}
|
||||
|
||||
ss_rules6_flush() {
|
||||
local setname
|
||||
|
||||
$IP6TABLESSAVE --counters 2>/dev/null | grep -v ssr6_ | $IP6TABLESRESTORE --counters
|
||||
while ip -f inet6 rule del fwmark 1 lookup 100 2>/dev/null; do true; done
|
||||
ip -f inet6 route flush table 100 || true
|
||||
for setname in $(ipset -n list | grep "ssr6_${rule}"); do
|
||||
ipset destroy "$setname" 2>/dev/null || true
|
||||
done
|
||||
}
|
||||
|
||||
ss_rules6_ipset_init() {
|
||||
ipset --exist restore <<-EOF
|
||||
create ssr6_${rule}_src_bypass hash:net family inet6 hashsize 64
|
||||
create ssr6_${rule}_src_forward hash:net family inet6 hashsize 64
|
||||
create ssr6_${rule}_src_checkdst hash:net family inet6 hashsize 64
|
||||
create ssr6_${rule}_dst_bypass hash:net family inet6 hashsize 64
|
||||
create ss_rules6_dst_bypass_all hash:net family inet6 hashsize 64
|
||||
create ssr6_${rule}_dst_bypass_ hash:net family inet6 hashsize 64
|
||||
create ssr6_${rule}_dst_forward hash:net family inet6 hashsize 64
|
||||
create ssr6_${rule}_dst_forward_recrst_ hash:ip family inet6 hashsize 64 timeout 3600
|
||||
$(ss_rules6_ipset_mkadd ssr6_${rule}_dst_bypass_ "$o_dst_bypass_ $o_remote_servers")
|
||||
$(ss_rules6_ipset_mkadd ss_rules6_dst_bypass_all "$o_dst_bypass $(cat "$o_dst_bypass_file" 2>/dev/null | grep -o '\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}')")
|
||||
$(ss_rules6_ipset_mkadd ssr6_${rule}_dst_bypass "$o_dst_bypass $(cat "$o_dst_bypass_file" 2>/dev/null | grep -o '\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}')")
|
||||
$(ss_rules6_ipset_mkadd ssr6_${rule}_src_bypass "$o_src_bypass")
|
||||
$(ss_rules6_ipset_mkadd ssr6_${rule}_src_forward "$o_src_forward")
|
||||
$(ss_rules6_ipset_mkadd ssr6_${rule}_src_checkdst "$o_src_checkdst")
|
||||
$(ss_rules6_ipset_mkadd ssr6_${rule}_dst_forward "$o_dst_forward $(cat "$o_dst_forward_file" 2>/dev/null | grep -o '\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}')")
|
||||
EOF
|
||||
}
|
||||
|
||||
ss_rules6_ipset_mkadd() {
|
||||
local setname="$1"; shift
|
||||
local i
|
||||
|
||||
for i in $*; do
|
||||
echo "add $setname $i"
|
||||
done
|
||||
}
|
||||
|
||||
ss_rules6_iptchains_init() {
|
||||
ss_rules6_iptchains_init_mark
|
||||
ss_rules6_iptchains_init_tcp
|
||||
ss_rules6_iptchains_init_udp
|
||||
}
|
||||
|
||||
ss_rules6_iptchains_init_mark() {
|
||||
if [ "$($IP6TABLES -w -t mangle -L PREROUTING | grep ss_rules6_dst_bypass_all)" = "" ]; then
|
||||
$IP6TABLESRESTORE --noflush <<-EOF
|
||||
*mangle
|
||||
-A PREROUTING -m set --match-set ss_rules6_dst_bypass_all dst -j MARK --set-mark 0x6539
|
||||
COMMIT
|
||||
EOF
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
ss_rules6_iptchains_init_tcp() {
|
||||
local local_target
|
||||
|
||||
[ -n "$o_redir_tcp_port" ] || return 0
|
||||
|
||||
ss_rules6_iptchains_init_ nat tcp
|
||||
|
||||
case "$o_local_default" in
|
||||
checkdst) local_target=ssr6_${rule}_dst ;;
|
||||
forward) local_target=ssr6_${rule}_forward ;;
|
||||
bypass|*) return 0;;
|
||||
esac
|
||||
|
||||
$IP6TABLESRESTORE --noflush <<-EOF
|
||||
*nat
|
||||
:ssr6_${rule}_local_out -
|
||||
-I OUTPUT 1 -p tcp -j ssr6_${rule}_local_out
|
||||
-A ssr6_${rule}_local_out -m set --match-set ssr6_${rule}_dst_bypass dst -j RETURN
|
||||
-A ssr6_${rule}_local_out -m set --match-set ss_rules6_dst_bypass_all dst -j RETURN
|
||||
-A ssr6_${rule}_local_out -m set --match-set ssr6_${rule}_dst_bypass_ dst -j RETURN
|
||||
-A ssr6_${rule}_local_out -m mark --mark 0x6539 -j RETURN
|
||||
-A ssr6_${rule}_local_out -p tcp $o_ipt_extra -j $local_target -m comment --comment "local_default: $o_local_default"
|
||||
COMMIT
|
||||
EOF
|
||||
}
|
||||
|
||||
ss_rules6_iptchains_init_udp() {
|
||||
[ -n "$o_redir_udp_port" ] || return 0
|
||||
ss_rules6_iptchains_init_ mangle udp
|
||||
}
|
||||
|
||||
ss_rules6_iptchains_init_() {
|
||||
local table="$1"
|
||||
local proto="$2"
|
||||
local forward_rules
|
||||
local src_default_target dst_default_target
|
||||
local recentrst_mangle_rules recentrst_addset_rules
|
||||
|
||||
case "$proto" in
|
||||
tcp)
|
||||
forward_rules="-A ssr6_${rule}_forward -p tcp -j REDIRECT --to-ports $o_redir_tcp_port"
|
||||
if [ -n "$o_dst_forward_recentrst" ]; then
|
||||
recentrst_mangle_rules="
|
||||
*mangle
|
||||
-I PREROUTING 1 -p tcp -m tcp --tcp-flags RST RST -m recent --name ss_rules6_recentrst --set --rsource
|
||||
COMMIT
|
||||
"
|
||||
recentrst_addset_rules="
|
||||
-A ssr6_${rule}_dst -m recent --name ss_rules6_recentrst --rcheck --rdest --seconds 3 --hitcount 3 -j SET --add-set ss_rules6_dst_forward_recrst_ dst --exist
|
||||
-A ssr6_${rule}_dst -m set --match-set ss_rules6_dst_forward_recrst_ dst -j ssr6_${rule}_forward
|
||||
"
|
||||
fi
|
||||
;;
|
||||
udp)
|
||||
ip -f inet6 rule add fwmark 1 lookup 100 || true
|
||||
ip -f inet6 route add local default dev lo table 100 || true
|
||||
forward_rules="-A ssr6_${rule}_forward -p udp -j TPROXY --on-port "$o_redir_udp_port" --tproxy-mark 0x01/0x01"
|
||||
;;
|
||||
esac
|
||||
case "$o_src_default" in
|
||||
forward) src_default_target=ssr6_${rule}_forward ;;
|
||||
checkdst) src_default_target=ssr6_${rule}_dst ;;
|
||||
bypass|*) src_default_target=RETURN ;;
|
||||
esac
|
||||
case "$o_dst_default" in
|
||||
forward) dst_default_target=ssr6_${rule}_forward ;;
|
||||
bypass|*) dst_default_target=RETURN ;;
|
||||
esac
|
||||
sed -e '/^\s*$/d' -e 's/^\s\+//' <<-EOF | $IP6TABLESRESTORE --noflush
|
||||
*$table
|
||||
:ssr6_${rule}_pre_src -
|
||||
:ssr6_${rule}_src -
|
||||
:ssr6_${rule}_dst -
|
||||
:ssr6_${rule}_forward -
|
||||
$(ss_rules6_iptchains_mkprerules "$proto")
|
||||
-A ssr6_${rule}_pre_src -m set --match-set ssr6_${rule}_dst_bypass_ dst -j RETURN
|
||||
-A ssr6_${rule}_pre_src -m set --match-set ss_rules6_dst_bypass_all dst -j MARK --set-mark 0x6539
|
||||
-A ssr6_${rule}_pre_src -m set --match-set ss_rules6_dst_bypass_all dst -j RETURN
|
||||
-A ssr6_${rule}_pre_src -m set --match-set ssr6_${rule}_dst_bypass dst -j RETURN
|
||||
-A ssr6_${rule}_pre_src -m mark --mark 0x6539 -j RETURN
|
||||
-A ssr6_${rule}_dst -m set --match-set ss_rules6_dst_bypass_all dst -j RETURN
|
||||
-A ssr6_${rule}_dst -m set --match-set ssr6_${rule}_dst_bypass dst -j RETURN
|
||||
-A ssr6_${rule}_pre_src -p $proto $o_ipt_extra -j ssr6_${rule}_src
|
||||
-A ssr6_${rule}_src -m set --match-set ssr6_${rule}_src_bypass src -j RETURN
|
||||
-A ssr6_${rule}_src -m set --match-set ssr6_${rule}_src_forward src -j ssr6_${rule}_forward
|
||||
-A ssr6_${rule}_src -m set --match-set ssr6_${rule}_src_checkdst src -j ssr6_${rule}_dst
|
||||
-A ssr6_${rule}_src -j $src_default_target -m comment --comment "src_default: $o_src_default"
|
||||
-A ssr6_${rule}_dst -m set --match-set ssr6_${rule}_dst_forward dst -j ssr6_${rule}_forward
|
||||
$recentrst_addset_rules
|
||||
-A ssr6_${rule}_dst -j $dst_default_target -m comment --comment "dst_default: $o_dst_default"
|
||||
$forward_rules
|
||||
COMMIT
|
||||
$recentrst_mangle_rules
|
||||
EOF
|
||||
}
|
||||
|
||||
ss_rules6_iptchains_mkprerules() {
|
||||
local proto="$1"
|
||||
|
||||
if [ -z "$o_ifnames" ]; then
|
||||
echo "-A PREROUTING -p $proto -j ssr6_${rule}_pre_src"
|
||||
else
|
||||
echo $o_ifnames \
|
||||
| tr ' ' '\n' \
|
||||
| sed "s/.*/-I PREROUTING 1 -i \\0 -p $proto -j ssr6_${rule}_pre_src/"
|
||||
fi
|
||||
}
|
||||
|
||||
ss_rules6_parse_args "$@"
|
||||
ss_rules6_flush
|
||||
ss_rules6_ipset_init
|
||||
ss_rules6_iptchains_init
|
|
@ -13,7 +13,7 @@ PKG_RELEASE:=1
|
|||
#PKG_HASH:=599fcd264537e39178b6008a11af68816dfd1609e19a9cf8adc8b2a4240ee370
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/v2fly/v2ray-core.git
|
||||
PKG_SOURCE_VERSION:=d58649764e3afa52234ada9a28b7ae79577a23a9
|
||||
PKG_SOURCE_VERSION:=8de2f27043b00612986d96f37975cd4aa98b49c3
|
||||
|
||||
PKG_LICENSE:=MIT
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
|
|
@ -328,6 +328,7 @@ inbound_section_validate() {
|
|||
'ss_quic_key:string' \
|
||||
'ss_quic_header_type:or("none", "srtp", "utp", "wechat-video", "dtls", "wireguard")' \
|
||||
'ss_sockopt_tcp_fast_open:or("0", "1")' \
|
||||
'ss_sockopt_mptcp:or("0", "1")' \
|
||||
'ss_sockopt_tproxy:or("redirect", "tproxy", "off")' \
|
||||
'tag:string' \
|
||||
'sniffing_enabled:bool:0' \
|
||||
|
@ -426,6 +427,7 @@ outbound_section_validate() {
|
|||
'ss_quic_header_type:or("none", "srtp", "utp", "wechat-video", "dtls", "wireguard")' \
|
||||
'ss_sockopt_mark:uinteger' \
|
||||
'ss_sockopt_tcp_fast_open:or("0", "1")' \
|
||||
'ss_sockopt_mptcp:or("0", "1")' \
|
||||
'stream_settings:string' \
|
||||
'proxy_settings_tag:string' \
|
||||
'mux_enabled:bool:0' \
|
||||
|
@ -1371,12 +1373,13 @@ add_inbound_setting() {
|
|||
# else
|
||||
test -n "$ss_sockopt_tcp_fast_open" && \
|
||||
json_add_boolean "tcpFastOpen" "$ss_sockopt_tcp_fast_open"
|
||||
if version_over_5_4; then
|
||||
test -n "$ss_sockopt_mptcp" && \
|
||||
json_add_boolean "mptcp" "$ss_sockopt_mptcp"
|
||||
fi
|
||||
test -n "$ss_sockopt_tproxy" && \
|
||||
json_add_string "tproxy" "$ss_sockopt_tproxy"
|
||||
# fi
|
||||
if version_over_5_4; then
|
||||
json_add_boolean "mptcp" "1"
|
||||
fi
|
||||
|
||||
json_close_object # sockopt
|
||||
|
||||
|
@ -1843,6 +1846,10 @@ add_outbound_setting() {
|
|||
|
||||
test -n "$ss_sockopt_tcp_fast_open" && \
|
||||
json_add_boolean "tcpFastOpen" "$ss_sockopt_tcp_fast_open"
|
||||
if version_over_5_4; then
|
||||
test -n "$ss_sockopt_mptcp" && \
|
||||
json_add_boolean "mptcp" "$ss_sockopt_mptcp"
|
||||
fi
|
||||
|
||||
json_close_object # sockopt
|
||||
|
||||
|
|
|
@ -75,6 +75,7 @@ if [ -z "$(uci -q get v2ray.main)" ]; then
|
|||
add_list v2ray.omr.s_dokodemo_door_network='udp'
|
||||
set v2ray.omr.ss_sockopt_tproxy='redirect'
|
||||
set v2ray.omr.ss_sockopt_tcp_fast_open='1'
|
||||
set v2ray.omr.ss_sockopt_mptcp='1'
|
||||
set v2ray.omr.s_dokodemo_door_follow_redirect='1'
|
||||
set v2ray.omr6=inbound
|
||||
set v2ray.omr6.tag='omrtunnel6'
|
||||
|
@ -196,5 +197,10 @@ if [ "$(uci -q get v2ray.omrout.s_socks_port)" = "" ]; then
|
|||
commit v2ray
|
||||
EOF
|
||||
fi
|
||||
if [ "$(uci -q get v2ray.omrout.ss_sockopt_mptcp)" = "" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set v2ray.omr.ss_sockopt_mptcp='1'
|
||||
EOF
|
||||
fi
|
||||
|
||||
exit 0
|
|
@ -4,50 +4,6 @@ Date: Sat, 29 Jul 2023 14:56:58 +0800
|
|||
Subject: [PATCH] support mptcp
|
||||
|
||||
---
|
||||
diff --git a/go.mod b/go.mod
|
||||
index e3881e5aa..73599d927 100644
|
||||
--- a/go.mod
|
||||
+++ b/go.mod
|
||||
@@ -16,7 +16,7 @@ require (
|
||||
github.com/mustafaturan/bus v1.0.2
|
||||
github.com/pelletier/go-toml v1.9.5
|
||||
github.com/pires/go-proxyproto v0.7.0
|
||||
- github.com/quic-go/quic-go v0.36.2
|
||||
+ github.com/quic-go/quic-go v0.37.0
|
||||
github.com/refraction-networking/utls v1.3.3
|
||||
github.com/seiflotfy/cuckoofilter v0.0.0-20220411075957-e3b120b3f5fb
|
||||
github.com/stretchr/testify v1.8.4
|
||||
@@ -65,8 +65,7 @@ require (
|
||||
github.com/pion/sctp v1.8.7 // indirect
|
||||
github.com/pion/transport/v2 v2.2.1 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
- github.com/quic-go/qtls-go1-19 v0.3.2 // indirect
|
||||
- github.com/quic-go/qtls-go1-20 v0.2.2 // indirect
|
||||
+ github.com/quic-go/qtls-go1-20 v0.3.0 // indirect
|
||||
github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 // indirect
|
||||
github.com/secure-io/siv-go v0.0.0-20180922214919-5ff40651e2c4 // indirect
|
||||
github.com/xtaci/smux v1.5.24 // indirect
|
||||
diff --git a/go.sum b/go.sum
|
||||
index 0ce21101c..63298b0c1 100644
|
||||
--- a/go.sum
|
||||
+++ b/go.sum
|
||||
@@ -260,12 +260,10 @@ github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8
|
||||
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
||||
github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
||||
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
|
||||
-github.com/quic-go/qtls-go1-19 v0.3.2 h1:tFxjCFcTQzK+oMxG6Zcvp4Dq8dx4yD3dDiIiyc86Z5U=
|
||||
-github.com/quic-go/qtls-go1-19 v0.3.2/go.mod h1:ySOI96ew8lnoKPtSqx2BlI5wCpUVPT05RMAlajtnyOI=
|
||||
-github.com/quic-go/qtls-go1-20 v0.2.2 h1:WLOPx6OY/hxtTxKV1Zrq20FtXtDEkeY00CGQm8GEa3E=
|
||||
-github.com/quic-go/qtls-go1-20 v0.2.2/go.mod h1:JKtK6mjbAVcUTN/9jZpvLbGxvdWIKS8uT7EiStoU1SM=
|
||||
-github.com/quic-go/quic-go v0.36.2 h1:ZX/UNQ4gvpCv2RmwdbA6lrRjF6EBm5yZ7TMoT4NQVrA=
|
||||
-github.com/quic-go/quic-go v0.36.2/go.mod h1:zPetvwDlILVxt15n3hr3Gf/I3mDf7LpLKPhR4Ez0AZQ=
|
||||
+github.com/quic-go/qtls-go1-20 v0.3.0 h1:NrCXmDl8BddZwO67vlvEpBTwT89bJfKYygxv4HQvuDk=
|
||||
+github.com/quic-go/qtls-go1-20 v0.3.0/go.mod h1:X9Nh97ZL80Z+bX/gUXMbipO6OxdiDi58b/fMC9mAL+k=
|
||||
+github.com/quic-go/quic-go v0.37.0 h1:wf/Ym2yeWi98oQn4ahiBSqdnaXVxNQGj2oBQFgiVChc=
|
||||
+github.com/quic-go/quic-go v0.37.0/go.mod h1:XtCUOCALTTWbPyd0IxFfHf6h0sEMubRFvEYHl3QxKw8=
|
||||
github.com/refraction-networking/utls v1.3.3 h1:f/TBLX7KBciRyFH3bwupp+CE4fzoYKCirhdRcC490sw=
|
||||
github.com/refraction-networking/utls v1.3.3/go.mod h1:DlecWW1LMlMJu+9qpzzQqdHDT/C2LAe03EdpLUz/RL8=
|
||||
github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 h1:f/FNXud6gA3MNr8meMVVGxhp+QBTqY91tM8HjEuMjGg=
|
||||
diff --git a/transport/internet/system_dialer.go b/transport/internet/system_dialer.go
|
||||
index 314664a78..96bb0eca1 100644
|
||||
--- a/transport/internet/system_dialer.go
|
||||
|
|
68
xray-core/Makefile
Normal file
68
xray-core/Makefile
Normal file
|
@ -0,0 +1,68 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=xray-core
|
||||
PKG_VERSION:=1.8.5
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_LICENSE:=MPLv2
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
PKG_MAINTAINER:=Yannick Chabanois <contact@openmptcprouter.com>
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/XTLS/Xray-core.git
|
||||
PKG_SOURCE_VERSION:=585d5ba7c8b64f6da60837546a70bbcfd2350c64
|
||||
|
||||
PKG_BUILD_DEPENDS:=golang/host
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
|
||||
GO_PKG:=github.com/XTLS/Xray-core
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(TOPDIR)/feeds/openmptcprouter/golang/golang-package.mk
|
||||
|
||||
define Package/$(PKG_NAME)
|
||||
SECTION:=Custom
|
||||
CATEGORY:=Extra packages
|
||||
TITLE:=Xray-core
|
||||
DEPENDS:=$(GO_ARCH_DEPENDS)
|
||||
PROVIDES:=xray-core
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)/description
|
||||
Xray-core bare bones binary (compiled without cgo)
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)/config
|
||||
menu "Xray Configuration"
|
||||
depends on PACKAGE_$(PKG_NAME)
|
||||
|
||||
config PACKAGE_XRAY_ENABLE_GOPROXY_IO
|
||||
bool "Use goproxy.io to speed up module fetching (recommended for some network situations)"
|
||||
default n
|
||||
|
||||
endmenu
|
||||
endef
|
||||
|
||||
USE_GOPROXY:=
|
||||
ifdef CONFIG_PACKAGE_XRAY_ENABLE_GOPROXY_IO
|
||||
USE_GOPROXY:=GOPROXY=https://goproxy.io,direct
|
||||
endif
|
||||
|
||||
MAKE_PATH:=$(GO_PKG_WORK_DIR_NAME)/build/src/$(GO_PKG)
|
||||
MAKE_VARS += $(GO_PKG_VARS)
|
||||
|
||||
#define Build/Patch
|
||||
# $(CP) $(PKG_BUILD_DIR)/../Xray-core-$(PKG_VERSION)/* $(PKG_BUILD_DIR)
|
||||
# $(Build/Patch/Default)
|
||||
#endef
|
||||
|
||||
define Build/Compile
|
||||
cd $(PKG_BUILD_DIR); $(GO_PKG_VARS) $(USE_GOPROXY) CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -o $(PKG_INSTALL_DIR)/bin/xray ./main;
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)/install
|
||||
$(INSTALL_DIR) $(1)/usr/bin
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/bin/xray $(1)/usr/bin/xray
|
||||
$(CP) ./files/* $(1)/
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,$(PKG_NAME)))
|
2
xray-core/files/etc/firewall.xray-rules
Normal file
2
xray-core/files/etc/firewall.xray-rules
Normal file
|
@ -0,0 +1,2 @@
|
|||
#!/bin/sh
|
||||
/etc/init.d/xray rules_up
|
2282
xray-core/files/etc/init.d/xray
Executable file
2282
xray-core/files/etc/init.d/xray
Executable file
File diff suppressed because it is too large
Load diff
202
xray-core/files/etc/uci-defaults/3010-omr-xray
Normal file
202
xray-core/files/etc/uci-defaults/3010-omr-xray
Normal file
|
@ -0,0 +1,202 @@
|
|||
#!/bin/sh
|
||||
|
||||
if [ -z "$(uci -q get xray.main)" ]; then
|
||||
touch /etc/config/xray
|
||||
uci batch <<-EOF
|
||||
set xray.main=xray
|
||||
set xray.main.xray_file='/usr/bin/xray'
|
||||
set xray.main.mem_percentage='0'
|
||||
set xray.main.loglevel='error'
|
||||
set xray.main.access_log='/dev/null'
|
||||
set xray.main.error_log='/dev/null'
|
||||
set xray.main.enabled='0'
|
||||
set xray.main.outbounds='omrout'
|
||||
set xray.main.inbounds='omr'
|
||||
add_list xray.main.inbounds='omrtest'
|
||||
set xray.main_dns=dns
|
||||
set xray.main_dns.hosts='example.com|127.0.0.1'
|
||||
set xray.main_dns.enabled='0'
|
||||
set xray.main_policy=policy
|
||||
set xray.main_policy.enabled='1'
|
||||
set xray.main_policy.levels='policy_level_0'
|
||||
set xray.policy_level_0=policy_level
|
||||
set xray.policy_level_0.level='0'
|
||||
set xray.policy_level_0.handshake='4'
|
||||
set xray.policy_level_0.conn_idle='1200'
|
||||
set xray.policy_level_0.uplink_only='0'
|
||||
set xray.policy_level_0.downlink_only='0'
|
||||
set xray.policy_level_0.buffer_size='512'
|
||||
set xray.main_transparent_proxy=transparent_proxy
|
||||
set xray.main_transparent_proxy.proxy_mode='default'
|
||||
set xray.main_transparent_proxy.apnic_delegated_mirror='apnic'
|
||||
set xray.main_transparent_proxy.gfwlist_mirror='github'
|
||||
set xray.main_transparent_proxy.redirect_udp='0'
|
||||
set xray.main_transparent_proxy.redirect_port='1897'
|
||||
set xray.omrout=outbound
|
||||
set xray.omrout.tag='omrout_tunnel'
|
||||
set xray.omrout.protocol='vless'
|
||||
set xray.omrout.s_vmess_address=''
|
||||
set xray.omrout.s_vmess_port='65230'
|
||||
set xray.omrout.s_vmess_user_id=''
|
||||
set xray.omrout.s_vmess_user_security='none'
|
||||
set xray.omrout.s_vmess_user_alter_id='0'
|
||||
set xray.omrout.s_vless_address=''
|
||||
set xray.omrout.s_vless_port='65228'
|
||||
set xray.omrout.s_vless_user_id=''
|
||||
set xray.omrout.s_vless_user_security='none'
|
||||
set xray.omrout.s_vless_user_encryption='none'
|
||||
set xray.omrout.s_vless_user_alter_id='0'
|
||||
set xray.omrout.s_trojan_address=''
|
||||
set xray.omrout.s_trojan_port='65229'
|
||||
set xray.omrout.s_trojan_user_id=''
|
||||
set xray.omrout.s_trojan_user_security='none'
|
||||
set xray.omrout.s_trojan_user_encryption='none'
|
||||
set xray.omrout.s_trojan_user_alter_id='0'
|
||||
set xray.omrout.s_socks_address=''
|
||||
set xray.omrout.s_socks_port='65231'
|
||||
set xray.omrout.s_socks_user_id=''
|
||||
set xray.omrout.s_socks_user_security='none'
|
||||
set xray.omrout.s_socks_user_encryption='none'
|
||||
set xray.omrout.s_socks_user_alter_id='0'
|
||||
set xray.omrout.ss_network='tcp'
|
||||
set xray.omrout.ss_security='tls'
|
||||
set xray.omrout.ss_tls_allow_insecure='1'
|
||||
set xray.omrout.ss_tls_disable_system_root='1'
|
||||
set xray.omrout.ss_tls_cert_usage='verify'
|
||||
set xray.omrout.ss_tls_cert_file='/etc/luci-uploads/client.crt'
|
||||
set xray.omrout.ss_tls_key_file='/etc/luci-uploads/client.key'
|
||||
set xray.omrout.s_shadowsocks_port='65252'
|
||||
set xray.omrout.mux_concurrency='8'
|
||||
set xray.omr=inbound
|
||||
set xray.omr.tag='omrtunnel'
|
||||
set xray.omr.listen='0.0.0.0'
|
||||
set xray.omr.port='1897'
|
||||
set xray.omr.protocol='dokodemo-door'
|
||||
set xray.omr.s_dokodemo_door_network='tcp'
|
||||
add_list xray.omr.s_dokodemo_door_network='udp'
|
||||
set xray.omr.ss_sockopt_tproxy='redirect'
|
||||
set xray.omr.ss_sockopt_tcp_fast_open='1'
|
||||
set xray.omr.ss_sockopt_mptcp='1'
|
||||
set xray.omr.s_dokodemo_door_follow_redirect='1'
|
||||
set xray.omr6=inbound
|
||||
set xray.omr6.tag='omrtunnel6'
|
||||
set xray.omr6.listen='::'
|
||||
set xray.omr6.port='1898'
|
||||
set xray.omr6.protocol='dokodemo-door'
|
||||
set xray.omr6.s_dokodemo_door_network='tcp'
|
||||
add_list xray.omr6.s_dokodemo_door_network='udp'
|
||||
set xray.omr6.ss_sockopt_tproxy='tproxy'
|
||||
set xray.omr6.ss_sockopt_tcp_fast_open='1'
|
||||
set xray.omr6.s_dokodemo_door_follow_redirect='1'
|
||||
set xray.omrtest=inbound
|
||||
set xray.omrtest.port='1111'
|
||||
set xray.omrtest.protocol='socks'
|
||||
set xray.omrtest.listen='127.0.0.1'
|
||||
set xray.omrtest.s_socks_auth='noauth'
|
||||
set xray.omrtest.s_socks_udp='1'
|
||||
set xray.omrtest.s_socks_ip='127.0.0.1'
|
||||
set xray.omrtest.s_socks_userlevel='0'
|
||||
commit xray
|
||||
EOF
|
||||
fi
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set xray.omr.listen='0.0.0.0'
|
||||
commit xray
|
||||
EOF
|
||||
|
||||
if [ "$(uci -q get firewall.xray)" = "" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set firewall.xray=include
|
||||
set firewall.xray.path=/etc/firewall.xray-rules
|
||||
set firewall.xray.reload=0
|
||||
commit firewall
|
||||
EOF
|
||||
fi
|
||||
if [ "$(uci -q get firewall.xray.path)" != "/etc/firewall.xray-rules" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set firewall.xray.path=/etc/firewall.xray-rules
|
||||
commit firewall
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ "$(uci -q get xray.main_reverse.bridges | grep omrbridge)" = "" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set xray.main_reverse=reverse
|
||||
set xray.main_reverse.enabled=1
|
||||
set xray.main_reverse.bridges='omrbridge|omr.lan'
|
||||
commit xray
|
||||
EOF
|
||||
fi
|
||||
if [ "$(uci -q get xray.omrrouting)" = "" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set xray.omrexit=outbound
|
||||
set xray.omrexit.protocol='freedom'
|
||||
set xray.omrexit.tag='out'
|
||||
add_list xray.main.outbounds=omrexit
|
||||
set xray.omrrouting=routing_rule
|
||||
set xray.omrrouting.type='field'
|
||||
set xray.omrrouting.inbound_tag='omrbridge'
|
||||
set xray.omrrouting.outbound_tag='omrout_tunnel'
|
||||
set xray.omrrouting.domain='full:omr.lan'
|
||||
set xray.omrroutingo=routing_rule
|
||||
set xray.omrroutingo.type='field'
|
||||
set xray.omrroutingo.inbound_tag='omrbridge'
|
||||
set xray.omrroutingo.outbound_tag='out'
|
||||
set xray.main_routing=routing
|
||||
set xray.main_routing.enabled=1
|
||||
set xray.main_routing.rules='omrrouting'
|
||||
add_list xray.main_routing.rules='omrroutingo'
|
||||
commit xray
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ "$(uci -q get xray.main.error_log)" != "/dev/null" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set xray.main.error_log='/dev/null'
|
||||
commit xray
|
||||
EOF
|
||||
fi
|
||||
#if [ "$(uci -q get xray.main.mem_percentage)" = "0" ]; then
|
||||
# uci -q batch <<-EOF >/dev/null
|
||||
# set xray.main.mem_percentage='80'
|
||||
# commit xray
|
||||
# EOF
|
||||
#fi
|
||||
if [ "$(uci -q get xray.policy_level_0.conn_idle)" = "2400" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set xray.policy_level_0.conn_idle='1200'
|
||||
commit xray
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ "$(uci -q get xray.omrout.s_vmess_port)" = "65228" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set xray.omrout.s_vmess_port='65230'
|
||||
commit xray
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ "$(uci -q get xray.omrout.s_trojan_port)" = "" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set xray.omrout.s_trojan_address=''
|
||||
set xray.omrout.s_trojan_port='65229'
|
||||
set xray.omrout.s_trojan_user_id=''
|
||||
set xray.omrout.s_trojan_user_security='none'
|
||||
set xray.omrout.s_trojan_user_encryption='none'
|
||||
set xray.omrout.s_trojan_user_alter_id='0'
|
||||
commit xray
|
||||
EOF
|
||||
fi
|
||||
if [ "$(uci -q get xray.omrout.s_socks_port)" = "" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set xray.omrout.s_socks_address=''
|
||||
set xray.omrout.s_socks_port='65231'
|
||||
set xray.omrout.s_socks_user_id=''
|
||||
set xray.omrout.s_socks_user_security='none'
|
||||
set xray.omrout.s_socks_user_encryption='none'
|
||||
set xray.omrout.s_socks_user_alter_id='0'
|
||||
commit xray
|
||||
EOF
|
||||
fi
|
||||
|
||||
exit 0
|
319
xray-core/files/usr/bin/xray-rules
Executable file
319
xray-core/files/usr/bin/xray-rules
Executable file
|
@ -0,0 +1,319 @@
|
|||
#!/bin/sh -e
|
||||
#
|
||||
# Copyright (C) 2017 Yousong Zhou <yszhou4tech@gmail.com>
|
||||
# Copyright (C) 2018-2021 Ycarus (Yannick Chabanois) <ycarus@zugaina.org> for OpenMPTCProuter
|
||||
#
|
||||
# The design idea was derived from ss-rules by Jian Chang <aa65535@live.com>
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v3.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
if [ -f /usr/sbin/iptables-legacy ]; then
|
||||
IPTABLES="/usr/sbin/iptables-legacy"
|
||||
IPTABLESRESTORE="/usr/sbin/iptables-legacy-restore"
|
||||
IPTABLESSAVE="/usr/sbin/iptables-legacy-save"
|
||||
else
|
||||
IPTABLES="/usr/sbin/iptables"
|
||||
IPTABLESRESTORE="/usr/sbin/iptables-restore"
|
||||
IPTABLESSAVE="/usr/sbin/iptables-save"
|
||||
fi
|
||||
|
||||
|
||||
|
||||
xr_rules_usage() {
|
||||
cat >&2 <<EOF
|
||||
Usage: xray-rules [options]
|
||||
|
||||
-h, --help Show this help message then exit
|
||||
-f, --flush Flush rules, ipset then exit
|
||||
-l <port> Local port number of ss-redir with TCP mode
|
||||
-L <port> Local port number of ss-redir with UDP mode
|
||||
-s <ips> List of ip addresses of remote shadowsocks server
|
||||
--ifnames Only apply rules on packets from these ifnames
|
||||
--src-bypass <ips|cidr>
|
||||
--src-forward <ips|cidr>
|
||||
--src-checkdst <ips|cidr>
|
||||
--src-default <bypass|forward|checkdst>
|
||||
Packets will have their src ip checked in order against
|
||||
bypass, forward, checkdst list and will bypass, forward
|
||||
through, or continue to have their dst ip checked
|
||||
respectively on the first match. Otherwise, --src-default
|
||||
decide the default action
|
||||
--dst-bypass <ips|cidr>
|
||||
--dst-forward <ips|cidr>
|
||||
--dst-bypass-file <file>
|
||||
--dst-forward-file <file>
|
||||
--dst-default <bypass|forward>
|
||||
Same as with their --src-xx equivalent
|
||||
--dst-forward-recentrst
|
||||
Forward those packets whose destinations have recently
|
||||
sent to us multiple tcp-rst packets
|
||||
--local-default <bypass|forward|checkdst>
|
||||
Default action for local out TCP traffic
|
||||
|
||||
The following ipsets will be created by ss-rules. They are also intended to be
|
||||
populated by other programs like dnsmasq with ipset support
|
||||
|
||||
ss_rules_src_bypass
|
||||
ss_rules_src_forward
|
||||
ss_rules_src_checkdst
|
||||
ss_rules_dst_bypass
|
||||
ss_rules_dst_bypass_all
|
||||
ss_rules_dst_forward
|
||||
EOF
|
||||
}
|
||||
|
||||
o_dst_bypass_="
|
||||
0.0.0.0/8
|
||||
10.0.0.0/8
|
||||
100.64.0.0/10
|
||||
127.0.0.0/8
|
||||
169.254.0.0/16
|
||||
172.16.0.0/12
|
||||
192.0.0.0/24
|
||||
192.0.2.0/24
|
||||
192.31.196.0/24
|
||||
192.52.193.0/24
|
||||
192.88.99.0/24
|
||||
192.168.0.0/16
|
||||
192.175.48.0/24
|
||||
198.18.0.0/15
|
||||
198.51.100.0/24
|
||||
203.0.113.0/24
|
||||
224.0.0.0/4
|
||||
240.0.0.0/4
|
||||
255.255.255.255
|
||||
"
|
||||
o_src_default=bypass
|
||||
o_dst_default=bypass
|
||||
o_local_default=bypass
|
||||
|
||||
__errmsg() {
|
||||
echo "xray-rules: $*" >&2
|
||||
}
|
||||
|
||||
xr_rules_parse_args() {
|
||||
while [ "$#" -gt 0 ]; do
|
||||
case "$1" in
|
||||
-h|--help) xr_rules_usage; exit 0;;
|
||||
-f|--flush) xr_rules_flush; exit 0;;
|
||||
-l) o_redir_tcp_port="$2"; shift 2;;
|
||||
-L) o_redir_udp_port="$2"; shift 2;;
|
||||
-s) o_remote_servers="$2"; shift 2;;
|
||||
--ifnames) o_ifnames="$2"; shift 2;;
|
||||
--ipt-extra) o_ipt_extra="$2"; shift 2;;
|
||||
--src-default) o_src_default="$2"; shift 2;;
|
||||
--dst-default) o_dst_default="$2"; shift 2;;
|
||||
--local-default) o_local_default="$2"; shift 2;;
|
||||
--src-bypass) o_src_bypass="$2"; shift 2;;
|
||||
--src-forward) o_src_forward="$2"; shift 2;;
|
||||
--src-checkdst) o_src_checkdst="$2"; shift 2;;
|
||||
--dst-bypass) o_dst_bypass="$2"; shift 2;;
|
||||
--dst-bypass_all) o_dst_bypass_all="$2"; shift 2;;
|
||||
--dst-forward) o_dst_forward="$2"; shift 2;;
|
||||
--dst-forward-recentrst) o_dst_forward_recentrst=1; shift 1;;
|
||||
--dst-bypass-file) o_dst_bypass_file="$2"; shift 2;;
|
||||
--dst-forward-file) o_dst_forward_file="$2"; shift 2;;
|
||||
--rule-name) rule="$2"; shift 2;;
|
||||
*) __errmsg "unknown option $1"; return 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "$o_redir_tcp_port" -a -z "$o_redir_udp_port" ]; then
|
||||
__errmsg "Requires at least -l or -L option"
|
||||
return 1
|
||||
fi
|
||||
if [ -n "$o_dst_forward_recentrst" ] && ! $IPTABLES -w -m recent -h >/dev/null; then
|
||||
__errmsg "Please install iptables-mod-conntrack-extra with opkg"
|
||||
return 1
|
||||
fi
|
||||
o_remote_servers="$(for s in $o_remote_servers; do resolveip -4 "$s"; done)"
|
||||
}
|
||||
|
||||
xr_rules_flush() {
|
||||
local setname
|
||||
|
||||
$IPTABLESSAVE --counters 2>/dev/null | grep -v xr_ | $IPTABLESRESTORE --counters
|
||||
while ip rule del fwmark 1 lookup 100 2>/dev/null; do true; done
|
||||
ip route flush table 100 || true
|
||||
for setname in $(ipset -n list | grep "ssr_${rule}"); do
|
||||
ipset destroy "$setname" 2>/dev/null || true
|
||||
done
|
||||
}
|
||||
|
||||
xr_rules_ipset_init() {
|
||||
ipset --exist restore <<-EOF
|
||||
create ssr_${rule}_src_bypass hash:net hashsize 64
|
||||
create ssr_${rule}_src_forward hash:net hashsize 64
|
||||
create ssr_${rule}_src_checkdst hash:net hashsize 64
|
||||
create ss_rules_dst_bypass_all hash:net hashsize 64
|
||||
create ssr_${rule}_dst_bypass hash:net hashsize 64
|
||||
create ssr_${rule}_dst_bypass_ hash:net hashsize 64
|
||||
create ssr_${rule}_dst_forward hash:net hashsize 64
|
||||
create ss_rules_dst_forward_recentrst_ hash:ip hashsize 64 timeout 3600
|
||||
$(xr_rules_ipset_mkadd ssr_${rule}_dst_bypass_ "$o_dst_bypass_ $o_remote_servers")
|
||||
$(xr_rules_ipset_mkadd ss_rules_dst_bypass_all "$o_dst_bypass_all")
|
||||
$(xr_rules_ipset_mkadd ssr_${rule}_dst_bypass "$o_dst_bypass $(cat "$o_dst_bypass_file" 2>/dev/null | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}')")
|
||||
$(xr_rules_ipset_mkadd ssr_${rule}_src_bypass "$o_src_bypass")
|
||||
$(xr_rules_ipset_mkadd ssr_${rule}_src_forward "$o_src_forward")
|
||||
$(xr_rules_ipset_mkadd ssr_${rule}_src_checkdst "$o_src_checkdst")
|
||||
$(xr_rules_ipset_mkadd ssr_${rule}_dst_forward "$o_dst_forward $(cat "$o_dst_forward_file" 2>/dev/null | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}')")
|
||||
EOF
|
||||
}
|
||||
|
||||
xr_rules_ipset_mkadd() {
|
||||
local setname="$1"; shift
|
||||
local i
|
||||
|
||||
for i in $*; do
|
||||
echo "add $setname $i"
|
||||
done
|
||||
}
|
||||
|
||||
xr_rules_iptchains_init() {
|
||||
xr_rules_iptchains_init_mark
|
||||
xr_rules_iptchains_init_tcp
|
||||
xr_rules_iptchains_init_udp
|
||||
}
|
||||
|
||||
xr_rules_iptchains_init_mark() {
|
||||
if [ "$($IPTABLES -w -t mangle -L PREROUTING | grep ss_rules_dst_bypass_all)" = "" ]; then
|
||||
$IPTABLESRESTORE --noflush <<-EOF
|
||||
*mangle
|
||||
-A PREROUTING -m set --match-set ss_rules_dst_bypass_all dst -j MARK --set-mark 0x539
|
||||
COMMIT
|
||||
EOF
|
||||
fi
|
||||
}
|
||||
|
||||
xr_rules_iptchains_init_tcp() {
|
||||
local local_target
|
||||
|
||||
[ -n "$o_redir_tcp_port" ] || return 0
|
||||
|
||||
xr_rules_iptchains_init_ nat tcp
|
||||
|
||||
case "$o_local_default" in
|
||||
checkdst) local_target=xr_${rule}_dst ;;
|
||||
forward) local_target=xr_${rule}_forward ;;
|
||||
bypass|*) return 0;;
|
||||
esac
|
||||
|
||||
$IPTABLESRESTORE --noflush <<-EOF
|
||||
*nat
|
||||
:xr_${rule}_local_out -
|
||||
-I OUTPUT 1 -p tcp -j xr_${rule}_local_out
|
||||
-A xr_${rule}_local_out -m set --match-set ssr_${rule}_dst_bypass dst -j RETURN
|
||||
-A xr_${rule}_local_out -m set --match-set ss_rules_dst_bypass_all dst -j RETURN
|
||||
-A xr_${rule}_local_out -m set --match-set ssr_${rule}_dst_bypass_ dst -j RETURN
|
||||
-A xr_${rule}_local_out -m mark --mark 0x539 -j RETURN
|
||||
-A xr_${rule}_local_out -p tcp $o_ipt_extra -j $local_target -m comment --comment "local_default: $o_local_default"
|
||||
COMMIT
|
||||
EOF
|
||||
}
|
||||
|
||||
xr_rules_iptchains_init_udp() {
|
||||
[ -n "$o_redir_udp_port" ] || return 0
|
||||
xr_rules_iptchains_init_ mangle udp
|
||||
}
|
||||
|
||||
xr_rules_iptchains_init_() {
|
||||
local table="$1"
|
||||
local proto="$2"
|
||||
local forward_rules
|
||||
local src_default_target dst_default_target
|
||||
local recentrst_mangle_rules recentrst_addset_rules
|
||||
|
||||
case "$proto" in
|
||||
tcp)
|
||||
forward_rules="-A xr_${rule}_forward -p tcp -j REDIRECT --to-ports $o_redir_tcp_port"
|
||||
if [ -n "$o_dst_forward_recentrst" ]; then
|
||||
recentrst_mangle_rules="
|
||||
*mangle
|
||||
-I PREROUTING 1 -p tcp -m tcp --tcp-flags RST RST -m recent --name xr_recentrst --set --rsource
|
||||
COMMIT
|
||||
"
|
||||
recentrst_addset_rules="
|
||||
-A xr_${rule}_dst -m recent --name xr_recentrst --rcheck --rdest --seconds 3 --hitcount 3 -j SET --add-set ss_rules_dst_forward_recentrst_ dst --exist
|
||||
-A xr_${rule}_dst -m set --match-set ss_rules_dst_forward_recentrst_ dst -j xr_${rule}_forward
|
||||
"
|
||||
fi
|
||||
;;
|
||||
udp)
|
||||
ip rule add fwmark 1 lookup 100 || true
|
||||
ip route add local default dev lo table 100 || true
|
||||
forward_rules="-A xr_${rule}_forward -p udp -j TPROXY --on-port "$o_redir_udp_port" --tproxy-mark 0x01/0x01"
|
||||
;;
|
||||
esac
|
||||
case "$o_src_default" in
|
||||
forward) src_default_target=xr_${rule}_forward ;;
|
||||
checkdst) src_default_target=xr_${rule}_dst ;;
|
||||
bypass|*) src_default_target=RETURN ;;
|
||||
esac
|
||||
case "$o_dst_default" in
|
||||
forward) dst_default_target=xr_${rule}_forward ;;
|
||||
bypass|*) dst_default_target=RETURN ;;
|
||||
esac
|
||||
sed -e '/^\s*$/d' -e 's/^\s\+//' <<-EOF | $IPTABLESRESTORE --noflush
|
||||
*$table
|
||||
:xr_${rule}_pre_src -
|
||||
:xr_${rule}_src -
|
||||
:xr_${rule}_dst -
|
||||
:xr_${rule}_forward -
|
||||
$(xr_rules_iptchains_mkprerules "$proto")
|
||||
-A xr_${rule}_pre_src -m set --match-set ssr_${rule}_dst_bypass_ dst -j RETURN
|
||||
-A xr_${rule}_pre_src -m set --match-set ss_rules_dst_bypass_all dst -j MARK --set-mark 0x539
|
||||
-A xr_${rule}_pre_src -m set --match-set ss_rules_dst_bypass_all dst -j RETURN
|
||||
-A xr_${rule}_pre_src -m set --match-set ssr_${rule}_dst_bypass dst -j RETURN
|
||||
-A xr_${rule}_pre_src -m mark --mark 0x539 -j RETURN
|
||||
-A xr_${rule}_dst -m set --match-set ss_rules_dst_bypass_all dst -j RETURN
|
||||
-A xr_${rule}_dst -m set --match-set ssr_${rule}_dst_bypass dst -j RETURN
|
||||
-A xr_${rule}_pre_src -p $proto $o_ipt_extra -j xr_${rule}_src
|
||||
-A xr_${rule}_src -m set --match-set ssr_${rule}_src_bypass src -j RETURN
|
||||
-A xr_${rule}_src -m set --match-set ssr_${rule}_src_forward src -j xr_${rule}_forward
|
||||
-A xr_${rule}_src -m set --match-set ssr_${rule}_src_checkdst src -j xr_${rule}_dst
|
||||
-A xr_${rule}_src -j $src_default_target -m comment --comment "src_default: $o_src_default"
|
||||
-A xr_${rule}_dst -m set --match-set ssr_${rule}_dst_forward dst -j xr_${rule}_forward
|
||||
$recentrst_addset_rules
|
||||
-A xr_${rule}_dst -j $dst_default_target -m comment --comment "dst_default: $o_dst_default"
|
||||
$forward_rules
|
||||
COMMIT
|
||||
$recentrst_mangle_rules
|
||||
EOF
|
||||
}
|
||||
|
||||
xr_rules_iptchains_mkprerules() {
|
||||
local proto="$1"
|
||||
|
||||
if [ -z "$o_ifnames" ]; then
|
||||
echo "-A PREROUTING -p $proto -j xr_${rule}_pre_src"
|
||||
else
|
||||
echo $o_ifnames \
|
||||
| tr ' ' '\n' \
|
||||
| sed "s/.*/-I PREROUTING 1 -i \\0 -p $proto -j xr_${rule}_pre_src/"
|
||||
fi
|
||||
}
|
||||
|
||||
xr_rules_fw_drop() {
|
||||
fw3 -4 print 2>/dev/null | awk '/iptables/&&/zone_lan_forward/&&/tcp/&&/-t filter/&&/-j reject/ {for(i=6; i<=NF; i++) { printf "%s ",$i } print "\n" }' |
|
||||
while IFS=$"\n" read -r c; do
|
||||
fwrule=$(echo "$c" | sed 's/reject/REDIRECT --to-ports 65535/')
|
||||
if [ -n "$fwrule" ] && [ -z "$($IPTABLESSAVE 2>/dev/null | grep zone_lan_prerouting | grep '${fwrule}')" ]; then
|
||||
eval "$IPTABLES -w -t nat -A zone_lan_prerouting ${fwrule} 2>&1 >/dev/null"
|
||||
fi
|
||||
done
|
||||
fw3 -4 print 2>/dev/null | awk '/iptables/&&/zone_lan_forward/&&/tcp/&&/-t filter/&&/-j drop/ {for(i=6; i<=NF; i++) { printf "%s ",$i } print "\n" }' |
|
||||
while IFS=$"\n" read -r c; do
|
||||
fwrule=$(echo "$c" | sed 's/drop/REDIRECT --to-ports 65535/')
|
||||
if [ -n "$fwrule" ] && [ -z "$($IPTABLESSAVE 2>/dev/null | grep zone_lan_prerouting | grep '${fwrule}')" ]; then
|
||||
eval "$IPTABLES -t nat -A zone_lan_prerouting ${fwrule} 2>&1 >/dev/null"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
xr_rules_parse_args "$@"
|
||||
#xr_rules_flush
|
||||
xr_rules_ipset_init
|
||||
xr_rules_iptchains_init
|
||||
xr_rules_fw_drop
|
310
xray-core/files/usr/bin/xray-rules6
Executable file
310
xray-core/files/usr/bin/xray-rules6
Executable file
|
@ -0,0 +1,310 @@
|
|||
#!/bin/sh -e
|
||||
#
|
||||
# Copyright (C) 2017 Yousong Zhou <yszhou4tech@gmail.com>
|
||||
# Copyright (C) 2018-2021 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
|
||||
#
|
||||
# The design idea was derived from ss-rules by Jian Chang <aa65535@live.com>
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v3.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
if [ -f /usr/sbin/iptables-legacy ]; then
|
||||
IP6TABLES="/usr/sbin/ip6tables-legacy"
|
||||
IP6TABLESRESTORE="/usr/sbin/ip6tables-legacy-restore"
|
||||
IP6TABLESSAVE="/usr/sbin/ip6tables-legacy-save"
|
||||
else
|
||||
IP6TABLES="/usr/sbin/ip6tables"
|
||||
IP6TABLESRESTORE="/usr/sbin/ip6tables-restore"
|
||||
IP6TABLESSAVE="/usr/sbin/ip6tables-save"
|
||||
fi
|
||||
|
||||
|
||||
|
||||
xray_rules6_usage() {
|
||||
cat >&2 <<EOF
|
||||
Usage: xray-rules6 [options]
|
||||
|
||||
-h, --help Show this help message then exit
|
||||
-f, --flush Flush rules, ipset then exit
|
||||
-l <port> Local port number of ss-redir with TCP mode
|
||||
-L <port> Local port number of ss-redir with UDP mode
|
||||
-s <ips> List of ip addresses of remote shadowsocks server
|
||||
--ifnames Only apply rules on packets from these ifnames
|
||||
--src-bypass <ips|cidr>
|
||||
--src-forward <ips|cidr>
|
||||
--src-checkdst <ips|cidr>
|
||||
--src-default <bypass|forward|checkdst>
|
||||
Packets will have their src ip checked in order against
|
||||
bypass, forward, checkdst list and will bypass, forward
|
||||
through, or continue to have their dst ip checked
|
||||
respectively on the first match. Otherwise, --src-default
|
||||
decide the default action
|
||||
--dst-bypass <ips|cidr>
|
||||
--dst-forward <ips|cidr>
|
||||
--dst-bypass-file <file>
|
||||
--dst-forward-file <file>
|
||||
--dst-default <bypass|forward>
|
||||
Same as with their --src-xx equivalent
|
||||
--dst-forward-recentrst
|
||||
Forward those packets whose destinations have recently
|
||||
sent to us multiple tcp-rst packets
|
||||
--local-default <bypass|forward|checkdst>
|
||||
Default action for local out TCP traffic
|
||||
|
||||
The following ipsets will be created by xray-rules. They are also intended to be
|
||||
populated by other programs like dnsmasq with ipset support
|
||||
|
||||
xray_rules6_src_bypass
|
||||
xray_rules6_src_forward
|
||||
xray_rules6_src_checkdst
|
||||
xray_rules6_dst_bypass
|
||||
xray_rules6_dst_forward
|
||||
EOF
|
||||
}
|
||||
|
||||
o_dst_bypass_="
|
||||
fe80::/10
|
||||
fd00::/8
|
||||
::1
|
||||
"
|
||||
o_src_default=bypass
|
||||
o_dst_default=bypass
|
||||
o_local_default=bypass
|
||||
|
||||
__errmsg() {
|
||||
echo "xray-rules6: $*" >&2
|
||||
}
|
||||
|
||||
xray_rules6_parse_args() {
|
||||
while [ "$#" -gt 0 ]; do
|
||||
case "$1" in
|
||||
-h|--help) xray_rules6_usage; exit 0;;
|
||||
-f|--flush) xray_rules6_flush; exit 0;;
|
||||
-l) o_redir_tcp_port="$2"; shift 2;;
|
||||
-L) o_redir_udp_port="$2"; shift 2;;
|
||||
-s) o_remote_servers="$2"; shift 2;;
|
||||
--ifnames) o_ifnames="$2"; shift 2;;
|
||||
--ipt-extra) o_ipt_extra="$2"; shift 2;;
|
||||
--src-default) o_src_default="$2"; shift 2;;
|
||||
--dst-default) o_dst_default="$2"; shift 2;;
|
||||
--local-default) o_local_default="$2"; shift 2;;
|
||||
--src-bypass) o_src_bypass="$2"; shift 2;;
|
||||
--src-forward) o_src_forward="$2"; shift 2;;
|
||||
--src-checkdst) o_src_checkdst="$2"; shift 2;;
|
||||
--dst-bypass) o_dst_bypass="$2"; shift 2;;
|
||||
--dst-bypass_all) o_dst_bypass_all="$2"; shift 2;;
|
||||
--dst-forward) o_dst_forward="$2"; shift 2;;
|
||||
--dst-forward-recentrst) o_dst_forward_recentrst=1; shift 1;;
|
||||
--dst-bypass-file) o_dst_bypass_file="$2"; shift 2;;
|
||||
--dst-forward-file) o_dst_forward_file="$2"; shift 2;;
|
||||
--rule-name) rule="$2"; shift 2;;
|
||||
*) __errmsg "unknown option $1"; return 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "$o_redir_tcp_port" -a -z "$o_redir_udp_port" ]; then
|
||||
__errmsg "Requires at least -l or -L option"
|
||||
return 1
|
||||
fi
|
||||
if [ -n "$o_dst_forward_recentrst" ] && ! $IP6TABLES -w -m recent -h >/dev/null; then
|
||||
__errmsg "Please install ip6tables-mod-conntrack-extra with opkg"
|
||||
return 1
|
||||
fi
|
||||
o_remote_servers="$(for s in $o_remote_servers; do resolveip -6 "$s"; done)"
|
||||
}
|
||||
|
||||
xray_rules6_flush() {
|
||||
local setname
|
||||
|
||||
$IP6TABLESSAVE --counters 2>/dev/null | grep -v xr6_ | $IP6TABLESRESTORE --counters
|
||||
while ip -f inet6 rule del fwmark 1 lookup 100 2>/dev/null; do true; done
|
||||
ip -f inet6 route flush table 100 || true
|
||||
for setname in $(ipset -n list | grep "ssr6_${rule}"); do
|
||||
ipset destroy "$setname" 2>/dev/null || true
|
||||
done
|
||||
}
|
||||
|
||||
xray_rules6_ipset_init() {
|
||||
ipset --exist restore <<-EOF
|
||||
create ssr6_${rule}_src_bypass hash:net family inet6 hashsize 64
|
||||
create ssr6_${rule}_src_forward hash:net family inet6 hashsize 64
|
||||
create ssr6_${rule}_src_checkdst hash:net family inet6 hashsize 64
|
||||
create ssr6_${rule}_dst_bypass hash:net family inet6 hashsize 64
|
||||
create ss_rules6_dst_bypass_all hash:net family inet6 hashsize 64
|
||||
create ssr6_${rule}_dst_bypass_ hash:net family inet6 hashsize 64
|
||||
create ssr6_${rule}_dst_forward hash:net family inet6 hashsize 64
|
||||
create ss_rules6_dst_forward_recrst_ hash:ip family inet6 hashsize 64 timeout 3600
|
||||
$(xray_rules6_ipset_mkadd ssr6_${rule}_dst_bypass_ "$o_dst_bypass_ $o_remote_servers")
|
||||
$(xray_rules6_ipset_mkadd ss_rules6_dst_bypass_all "$o_dst_bypass $(cat "$o_dst_bypass_file" 2>/dev/null | grep -o '\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}')")
|
||||
$(xray_rules6_ipset_mkadd ssr6_${rule}_dst_bypass "$o_dst_bypass $(cat "$o_dst_bypass_file" 2>/dev/null | grep -o '\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}')")
|
||||
$(xray_rules6_ipset_mkadd ssr6_${rule}_src_bypass "$o_src_bypass")
|
||||
$(xray_rules6_ipset_mkadd ssr6_${rule}_src_forward "$o_src_forward")
|
||||
$(xray_rules6_ipset_mkadd ssr6_${rule}_src_checkdst "$o_src_checkdst")
|
||||
$(xray_rules6_ipset_mkadd ssr6_${rule}_dst_forward "$o_dst_forward $(cat "$o_dst_forward_file" 2>/dev/null | grep -o '\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}')")
|
||||
EOF
|
||||
}
|
||||
|
||||
xray_rules6_ipset_mkadd() {
|
||||
local setname="$1"; shift
|
||||
local i
|
||||
|
||||
for i in $*; do
|
||||
echo "add $setname $i"
|
||||
done
|
||||
}
|
||||
|
||||
xray_rules6_iptchains_init() {
|
||||
xray_rules6_iptchains_init_mark
|
||||
xray_rules6_iptchains_init_tcp
|
||||
xray_rules6_iptchains_init_udp
|
||||
}
|
||||
|
||||
xray_rules6_iptchains_init_mark() {
|
||||
$IP6TABLESRESTORE --noflush <<-EOF
|
||||
*mangle
|
||||
-A PREROUTING -m set --match-set ss_rules6_dst_bypass_all dst -j MARK --set-mark 0x6539
|
||||
COMMIT
|
||||
EOF
|
||||
}
|
||||
|
||||
|
||||
xray_rules6_iptchains_init_tcp() {
|
||||
local local_target
|
||||
|
||||
[ -n "$o_redir_tcp_port" ] || return 0
|
||||
|
||||
#xray_rules6_iptchains_init_ nat tcp
|
||||
xray_rules6_iptchains_init_ mangle tcp
|
||||
|
||||
case "$o_local_default" in
|
||||
checkdst) local_target=xr6_${rule}_dst ;;
|
||||
forward) local_target=xr6_${rule}_forward ;;
|
||||
bypass|*) return 0;;
|
||||
esac
|
||||
|
||||
# echo "tcp mangle"
|
||||
# $IP6TABLESRESTORE --noflush <<-EOF
|
||||
# *mangle
|
||||
# :xr6_${rule}_local_out -
|
||||
# -I OUTPUT 1 -p tcp -j xr6_${rule}_local_out
|
||||
# -A xr6_${rule}_local_out -m set --match-set ss_rules6_dst_bypass dst -j RETURN
|
||||
# -A xr6_${rule}_local_out -m set --match-set ss_rules6_dst_bypass_all dst -j RETURN
|
||||
# -A xr6_${rule}_local_out -m set --match-set ss_rules6_dst_bypass_ dst -j RETURN
|
||||
# -A xr6_${rule}_local_out -m mark --mark 0x6539 -j RETURN
|
||||
# -A xr6_${rule}_local_out -p tcp $o_ipt_extra -j $local_target -m comment --comment "local_default: $o_local_default"
|
||||
# COMMIT
|
||||
# EOF
|
||||
# echo "done"
|
||||
}
|
||||
|
||||
xray_rules6_iptchains_init_udp() {
|
||||
[ -n "$o_redir_udp_port" ] || return 0
|
||||
xray_rules6_iptchains_init_ mangle udp
|
||||
}
|
||||
|
||||
xray_rules6_iptchains_init_() {
|
||||
local table="$1"
|
||||
local proto="$2"
|
||||
local forward_rules
|
||||
local src_default_target dst_default_target
|
||||
local recentrst_mangle_rules recentrst_addset_rules
|
||||
|
||||
case "$proto" in
|
||||
tcp)
|
||||
#forward_rules="-A xr6_${rule}_forward -p tcp -j REDIRECT --to-ports $o_redir_tcp_port"
|
||||
forward_rules="-A xr6_${rule}_forward -p tcp -j TPROXY --on-port $o_redir_tcp_port --tproxy-mark 0x01/0x01"
|
||||
if [ -n "$o_dst_forward_recentrst" ]; then
|
||||
recentrst_mangle_rules="
|
||||
*mangle
|
||||
-I PREROUTING 1 -p tcp -m tcp --tcp-flags RST RST -m recent --name ss_rules6_recentrst --set --rsource
|
||||
COMMIT
|
||||
"
|
||||
recentrst_addset_rules="
|
||||
-A xr6_${rule}_dst -m recent --name ss_rules6_recentrst --rcheck --rdest --seconds 3 --hitcount 3 -j SET --add-set ss_rules6_dst_forward_recrst_ dst --exist
|
||||
-A xr6_${rule}_dst -m set --match-set ss_rules6_dst_forward_recrst_ dst -j xr6_${rule}_forward
|
||||
"
|
||||
fi
|
||||
;;
|
||||
udp)
|
||||
ip -f inet6 rule add fwmark 1 lookup 100 || true
|
||||
ip -f inet6 route add local default dev lo table 100 || true
|
||||
forward_rules="
|
||||
-A xr6_${rule}_forward -p udp -j TPROXY --on-port "$o_redir_udp_port" --tproxy-mark 0x01/0x01
|
||||
-A xr6_${rule}_forward -p tcp -j TPROXY --on-port "$o_redir_udp_port" --tproxy-mark 0x01/0x01
|
||||
"
|
||||
;;
|
||||
esac
|
||||
case "$o_src_default" in
|
||||
forward) src_default_target=xr6_${rule}_forward ;;
|
||||
checkdst) src_default_target=xr6_${rule}_dst ;;
|
||||
bypass|*) src_default_target=RETURN ;;
|
||||
esac
|
||||
case "$o_dst_default" in
|
||||
forward) dst_default_target=xr6_${rule}_forward ;;
|
||||
bypass|*) dst_default_target=RETURN ;;
|
||||
esac
|
||||
sed -e '/^\s*$/d' -e 's/^\s\+//' <<-EOF | $IP6TABLESRESTORE --noflush
|
||||
*$table
|
||||
:xr6_${rule}_pre_src -
|
||||
:xr6_${rule}_src -
|
||||
:xr6_${rule}_dst -
|
||||
:xr6_${rule}_forward -
|
||||
$(xray_rules6_iptchains_mkprerules "udp")
|
||||
$(xray_rules6_iptchains_mkprerules "tcp")
|
||||
-A xr6_${rule}_pre_src -m set --match-set ssr6_${rule}_dst_bypass_ dst -j RETURN
|
||||
-A xr6_${rule}_pre_src -m set --match-set ss_rules6_dst_bypass_all dst -j MARK --set-mark 0x6539
|
||||
-A xr6_${rule}_pre_src -m set --match-set ss_rules6_dst_bypass_all dst -j RETURN
|
||||
-A xr6_${rule}_pre_src -m set --match-set ssr6_${rule}_dst_bypass dst -j RETURN
|
||||
-A xr6_${rule}_pre_src -m mark --mark 0x6539 -j RETURN
|
||||
-A xr6_${rule}_dst -m set --match-set ss_rules6_dst_bypass_all dst -j RETURN
|
||||
-A xr6_${rule}_dst -m set --match-set ssr6_${rule}_dst_bypass dst -j RETURN
|
||||
-A xr6_${rule}_pre_src -p tcp $o_ipt_extra -j xr6_${rule}_src
|
||||
-A xr6_${rule}_pre_src -p udp $o_ipt_extra -j xr6_${rule}_src
|
||||
-A xr6_${rule}_src -m set --match-set ssr6_${rule}_src_bypass src -j RETURN
|
||||
-A xr6_${rule}_src -m set --match-set ssr6_${rule}_src_forward src -j xr6_${rule}_forward
|
||||
-A xr6_${rule}_src -m set --match-set ssr6_${rule}_src_checkdst src -j xr6_${rule}_dst
|
||||
-A xr6_${rule}_src -j $src_default_target -m comment --comment "src_default: $o_src_default"
|
||||
-A xr6_${rule}_dst -m set --match-set ssr6_${rule}_dst_forward dst -j xr6_${rule}_forward
|
||||
$recentrst_addset_rules
|
||||
-A xr6_${rule}_dst -j $dst_default_target -m comment --comment "dst_default: $o_dst_default"
|
||||
$forward_rules
|
||||
COMMIT
|
||||
$recentrst_mangle_rules
|
||||
EOF
|
||||
}
|
||||
|
||||
xray_rules6_iptchains_mkprerules() {
|
||||
local proto="$1"
|
||||
|
||||
if [ -z "$o_ifnames" ]; then
|
||||
echo "-A PREROUTING -p $proto -j xr6_${rule}_pre_src"
|
||||
else
|
||||
echo $o_ifnames \
|
||||
| tr ' ' '\n' \
|
||||
| sed "s/.*/-I PREROUTING 1 -i \\0 -p $proto -j xr6_${rule}_pre_src/"
|
||||
fi
|
||||
}
|
||||
|
||||
xray_rules6_fw_drop() {
|
||||
fw3 -6 print 2>/dev/null | awk '/iptables/&&/zone_lan_forward/&&/tcp/&&/-t filter/&&/-j reject/ {for(i=6; i<=NF; i++) { printf "%s ",$i } print "\n" }' |
|
||||
while IFS=$"\n" read -r c; do
|
||||
fwrule=$(echo "$c" | sed 's/reject/REDIRECT --to-ports 65535/')
|
||||
if [ -n "$fwrule" ] && [ -z "$(iptables-save | grep zone_lan_prerouting | grep '${fwrule}')" ]; then
|
||||
eval "$IP6TABLES -w -t nat -A zone_lan_prerouting ${fwrule} 2>&1 >/dev/null"
|
||||
fi
|
||||
done
|
||||
fw3 -6 print 2>/dev/null | awk '/iptables/&&/zone_lan_forward/&&/tcp/&&/-t filter/&&/-j drop/ {for(i=6; i<=NF; i++) { printf "%s ",$i } print "\n" }' |
|
||||
while IFS=$"\n" read -r c; do
|
||||
fwrule=$(echo "$c" | sed 's/drop/REDIRECT --to-ports 65535/')
|
||||
if [ -n "$fwrule" ] && [ -z "$(iptables-save | grep zone_lan_prerouting | grep '${fwrule}')" ]; then
|
||||
eval "$IP6TABLES -t nat -A zone_lan_prerouting ${fwrule} 2>&1 >/dev/null"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
xray_rules6_parse_args "$@"
|
||||
xray_rules6_flush
|
||||
xray_rules6_ipset_init
|
||||
xray_rules6_iptchains_init
|
||||
xray_rules6_fw_drop
|
97
xray-core/patches/001-fix-wireguard-go.patch
Normal file
97
xray-core/patches/001-fix-wireguard-go.patch
Normal file
|
@ -0,0 +1,97 @@
|
|||
diff -aurN xray-core-1.8.5.old/go.mod xray-core-1.8.5/go.mod
|
||||
--- a/go.mod 2023-09-18 16:14:12.554956393 +0200
|
||||
+++ b/go.mod 2023-09-18 16:16:56.304259547 +0200
|
||||
@@ -12,13 +12,13 @@
|
||||
github.com/pires/go-proxyproto v0.7.0
|
||||
github.com/quic-go/quic-go v0.38.1
|
||||
github.com/refraction-networking/utls v1.4.3
|
||||
- github.com/sagernet/sing v0.2.9
|
||||
+ github.com/sagernet/sing v0.2.10-0.20230807080248-4db0062caa0a
|
||||
github.com/sagernet/sing-shadowsocks v0.2.4
|
||||
- github.com/sagernet/wireguard-go v0.0.0-20221116151939-c99467f53f2c
|
||||
github.com/seiflotfy/cuckoofilter v0.0.0-20220411075957-e3b120b3f5fb
|
||||
github.com/stretchr/testify v1.8.4
|
||||
github.com/v2fly/ss-bloomring v0.0.0-20210312155135-28617310f63e
|
||||
github.com/xtls/reality v0.0.0-20230828171259-e426190d57f6
|
||||
+ github.com/xtls/wireguard-go v0.0.0-20230303120718-56f003b3a66e
|
||||
go4.org/netipx v0.0.0-20230824141953-6213f710f925
|
||||
golang.org/x/crypto v0.12.0
|
||||
golang.org/x/net v0.14.0
|
||||
@@ -47,7 +47,7 @@
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
github.com/quic-go/qtls-go1-20 v0.3.3 // indirect
|
||||
github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 // indirect
|
||||
- go.uber.org/atomic v1.11.0 // indirect
|
||||
+ go.uber.org/atomic v1.10.0 // indirect
|
||||
golang.org/x/exp v0.0.0-20230725093048-515e97ebf090 // indirect
|
||||
golang.org/x/mod v0.12.0 // indirect
|
||||
golang.org/x/text v0.12.0 // indirect
|
||||
diff -aurN xray-core-1.8.5.old/go.sum xray-core-1.8.5/go.sum
|
||||
--- a/go.sum 2023-09-18 16:14:12.554956393 +0200
|
||||
+++ b/go.sum 2023-09-18 16:16:56.304259547 +0200
|
||||
@@ -123,12 +123,10 @@
|
||||
github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 h1:f/FNXud6gA3MNr8meMVVGxhp+QBTqY91tM8HjEuMjGg=
|
||||
github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3/go.mod h1:HgjTstvQsPGkxUsCd2KWxErBblirPizecHcpD3ffK+s=
|
||||
github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
|
||||
-github.com/sagernet/sing v0.2.9 h1:3wsTz+JG5Wzy65eZnh6AuCrD2QqcRF6Iq6f7ttmJsAo=
|
||||
-github.com/sagernet/sing v0.2.9/go.mod h1:Ta8nHnDLAwqySzKhGoKk4ZIB+vJ3GTKj7UPrWYvM+4w=
|
||||
+github.com/sagernet/sing v0.2.10-0.20230807080248-4db0062caa0a h1:b89t6Mjgk4rJ5lrNMnCzy1/J116XkhgdB3YNd9FHyF4=
|
||||
+github.com/sagernet/sing v0.2.10-0.20230807080248-4db0062caa0a/go.mod h1:9uOZwWkhT2Z2WldolLxX34s+1svAX4i4vvz5hy8u1MA=
|
||||
github.com/sagernet/sing-shadowsocks v0.2.4 h1:s/CqXlvFAZhlIoHWUwPw5CoNnQ9Ibki9pckjuugtVfY=
|
||||
github.com/sagernet/sing-shadowsocks v0.2.4/go.mod h1:80fNKP0wnqlu85GZXV1H1vDPC/2t+dQbFggOw4XuFUM=
|
||||
-github.com/sagernet/wireguard-go v0.0.0-20221116151939-c99467f53f2c h1:vK2wyt9aWYHHvNLWniwijBu/n4pySypiKRhN32u/JGo=
|
||||
-github.com/sagernet/wireguard-go v0.0.0-20221116151939-c99467f53f2c/go.mod h1:euOmN6O5kk9dQmgSS8Df4psAl3TCjxOz0NW60EWkSaI=
|
||||
github.com/seiflotfy/cuckoofilter v0.0.0-20220411075957-e3b120b3f5fb h1:XfLJSPIOUX+osiMraVgIrMR27uMXnRJWGm1+GL8/63U=
|
||||
github.com/seiflotfy/cuckoofilter v0.0.0-20220411075957-e3b120b3f5fb/go.mod h1:bR6DqgcAl1zTcOX8/pE2Qkj9XO00eCNqmKb7lXP8EAg=
|
||||
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
|
||||
@@ -168,10 +166,12 @@
|
||||
github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMILuUhzM=
|
||||
github.com/xtls/reality v0.0.0-20230828171259-e426190d57f6 h1:T+YCYGfFdzyaKTDCdZn/hEiKvsw6yUfd+e4hze0rCUw=
|
||||
github.com/xtls/reality v0.0.0-20230828171259-e426190d57f6/go.mod h1:rkuAY1S9F8eI8gDiPDYvACE8e2uwkyg8qoOTuwWov7Y=
|
||||
+github.com/xtls/wireguard-go v0.0.0-20230303120718-56f003b3a66e h1:Y0CxNt+TeOhFUS2J/EF6osq9RukduvGYUNk2xPdKW60=
|
||||
+github.com/xtls/wireguard-go v0.0.0-20230303120718-56f003b3a66e/go.mod h1:XFvPXP1gUqy/12j+KbdShku+YWiZJjaYLEAn4ZXaRGU=
|
||||
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||
go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA=
|
||||
-go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
|
||||
-go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
||||
+go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
|
||||
+go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
||||
go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE=
|
||||
go4.org/netipx v0.0.0-20230824141953-6213f710f925 h1:eeQDDVKFkx0g4Hyy8pHgmZaK0EqB4SD6rvKbUdN3ziQ=
|
||||
go4.org/netipx v0.0.0-20230824141953-6213f710f925/go.mod h1:PLyyIXexvUFg3Owu6p/WfdlivPbZJsZdgWZlrGope/Y=
|
||||
diff -aurN xray-core-1.8.5.old/proxy/wireguard/bind.go xray-core-1.8.5/proxy/wireguard/bind.go
|
||||
--- a/proxy/wireguard/bind.go 2023-09-18 16:14:12.562956262 +0200
|
||||
+++ b/proxy/wireguard/bind.go 2023-09-18 16:15:43.597456179 +0200
|
||||
@@ -9,7 +9,7 @@
|
||||
"strconv"
|
||||
"sync"
|
||||
|
||||
- "github.com/sagernet/wireguard-go/conn"
|
||||
+ "github.com/xtls/wireguard-go/conn"
|
||||
xnet "github.com/xtls/xray-core/common/net"
|
||||
"github.com/xtls/xray-core/features/dns"
|
||||
"github.com/xtls/xray-core/transport/internet"
|
||||
diff -aurN xray-core-1.8.5.old/proxy/wireguard/tun.go xray-core-1.8.5/proxy/wireguard/tun.go
|
||||
--- a/proxy/wireguard/tun.go 2023-09-18 16:14:12.562956262 +0200
|
||||
+++ b/proxy/wireguard/tun.go 2023-09-18 16:15:52.413310983 +0200
|
||||
@@ -12,7 +12,7 @@
|
||||
"net/netip"
|
||||
"os"
|
||||
|
||||
- "github.com/sagernet/wireguard-go/tun"
|
||||
+ "github.com/xtls/wireguard-go/tun"
|
||||
"github.com/xtls/xray-core/features/dns"
|
||||
"gvisor.dev/gvisor/pkg/buffer"
|
||||
"gvisor.dev/gvisor/pkg/tcpip"
|
||||
diff -aurN xray-core-1.8.5.old/proxy/wireguard/wireguard.go xray-core-1.8.5/proxy/wireguard/wireguard.go
|
||||
--- a/proxy/wireguard/wireguard.go 2023-09-18 16:14:12.562956262 +0200
|
||||
+++ b/proxy/wireguard/wireguard.go 2023-09-18 16:16:01.109167878 +0200
|
||||
@@ -27,7 +27,7 @@
|
||||
"net/netip"
|
||||
"strings"
|
||||
|
||||
- "github.com/sagernet/wireguard-go/device"
|
||||
+ "github.com/xtls/wireguard-go/device"
|
||||
"github.com/xtls/xray-core/common"
|
||||
"github.com/xtls/xray-core/common/buf"
|
||||
"github.com/xtls/xray-core/common/log"
|
Loading…
Add table
Add a link
Reference in a new issue