mirror of
https://github.com/itdoginfo/podkop.git
synced 2025-12-10 21:46:53 +03:00
Compare commits
10 Commits
0.7.8
...
fix/fully_
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aa8f2cef41 | ||
|
|
96f6def701 | ||
|
|
0152f073b7 | ||
|
|
06ce944e1c | ||
|
|
64369a93b0 | ||
|
|
53a3c943f0 | ||
|
|
7c7e1c6244 | ||
|
|
7fc1f39dd6 | ||
|
|
1c4285dfa8 | ||
|
|
ea1273e05e |
20
install.sh
20
install.sh
@@ -109,16 +109,16 @@ main() {
|
||||
pkg_list_update || { echo "Packages list update failed"; exit 1; }
|
||||
|
||||
if [ -f "/etc/init.d/podkop" ]; then
|
||||
msg "Podkop is already installed. Upgraded..."
|
||||
msg "Podkop is already installed. Upgrading..."
|
||||
else
|
||||
msg "Installed podkop..."
|
||||
msg "Installing podkop..."
|
||||
fi
|
||||
|
||||
if command -v curl >/dev/null 2>&1; then
|
||||
check_response=$(curl -s "https://api.github.com/repos/itdoginfo/podkop/releases/latest")
|
||||
|
||||
if echo "$check_response" | grep -q 'API rate limit '; then
|
||||
msg "You've reached rate limit from GitHub. Repeat in five minutes."
|
||||
msg "You've reached the GitHub rate limit. Repeat in five minutes."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
@@ -143,7 +143,7 @@ main() {
|
||||
break
|
||||
fi
|
||||
fi
|
||||
msg "Download error $filename. Retry..."
|
||||
msg "Download error for $filename. Retrying..."
|
||||
rm -f "$filepath"
|
||||
attempt=$((attempt+1))
|
||||
done
|
||||
@@ -168,7 +168,7 @@ main() {
|
||||
fi
|
||||
done
|
||||
if [ -n "$file" ]; then
|
||||
msg "Installing $file"
|
||||
msg "Installing $file..."
|
||||
pkg_install "$DOWNLOAD_DIR/$file"
|
||||
sleep 3
|
||||
fi
|
||||
@@ -183,11 +183,11 @@ main() {
|
||||
done
|
||||
if [ -n "$ru" ]; then
|
||||
if pkg_is_installed luci-i18n-podkop-ru; then
|
||||
msg "Upgraded ru translation..."
|
||||
msg "Upgrading Russian translation..."
|
||||
pkg_remove luci-i18n-podkop*
|
||||
pkg_install "$DOWNLOAD_DIR/$ru"
|
||||
else
|
||||
msg "Русский язык интерфейса ставим? y/n (Need a Russian translation?)"
|
||||
msg "Русский язык интерфейса ставим? y/n (Install the Russian interface language?)"
|
||||
while true; do
|
||||
read -r -p '' RUS
|
||||
case $RUS in
|
||||
@@ -236,7 +236,7 @@ check_system() {
|
||||
fi
|
||||
|
||||
if ! nslookup google.com >/dev/null 2>&1; then
|
||||
msg "DNS not working"
|
||||
msg "DNS is not working."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -270,7 +270,7 @@ check_system() {
|
||||
fi
|
||||
|
||||
if pkg_is_installed https-dns-proxy; then
|
||||
msg "Сonflicting package detected: https-dns-proxy. Remove?"
|
||||
msg "Conflicting package detected: https-dns-proxy. Remove?"
|
||||
|
||||
while true; do
|
||||
read -r -p '' DNSPROXY
|
||||
@@ -300,7 +300,7 @@ sing_box() {
|
||||
required_version="1.12.4"
|
||||
|
||||
if [ "$(printf '%s\n%s\n' "$sing_box_version" "$required_version" | sort -V | head -n 1)" != "$required_version" ]; then
|
||||
msg "sing-box version $sing_box_version is older than required $required_version"
|
||||
msg "sing-box version $sing_box_version is older than the required version $required_version."
|
||||
msg "Removing old version..."
|
||||
service podkop stop
|
||||
pkg_remove sing-box
|
||||
|
||||
@@ -378,6 +378,24 @@ function createSettingsContent(section) {
|
||||
return true;
|
||||
};
|
||||
|
||||
o = section.option(
|
||||
form.ListValue,
|
||||
"log_level",
|
||||
_("Log Level"),
|
||||
_(
|
||||
"Select the log level for sing-box",
|
||||
),
|
||||
);
|
||||
o.value("trace", "Trace");
|
||||
o.value("debug", "Debug");
|
||||
o.value("info", "Info");
|
||||
o.value("warn", "Warn");
|
||||
o.value("error", "Error");
|
||||
o.value("fatal", "Fatal");
|
||||
o.value("panic", "Panic");
|
||||
o.default = "warn";
|
||||
o.rmempty = false;
|
||||
|
||||
o = section.option(
|
||||
form.Flag,
|
||||
"exclude_ntp",
|
||||
|
||||
@@ -16,6 +16,7 @@ config settings 'settings'
|
||||
option dont_touch_dhcp '0'
|
||||
option config_path '/etc/sing-box/config.json'
|
||||
option cache_path '/tmp/sing-box/cache.db'
|
||||
option log_level 'warn'
|
||||
option exclude_ntp '0'
|
||||
option shutdown_correctly '0'
|
||||
#list routing_excluded_ips '192.168.1.3'
|
||||
|
||||
@@ -12,6 +12,7 @@ check_required_file() {
|
||||
PODKOP_LIB="/usr/lib/podkop"
|
||||
check_required_file /lib/functions.sh
|
||||
check_required_file /lib/config/uci.sh
|
||||
check_required_file /lib/functions/network.sh
|
||||
check_required_file "$PODKOP_LIB/constants.sh"
|
||||
check_required_file "$PODKOP_LIB/nft.sh"
|
||||
check_required_file "$PODKOP_LIB/helpers.sh"
|
||||
@@ -19,8 +20,9 @@ check_required_file "$PODKOP_LIB/sing_box_config_manager.sh"
|
||||
check_required_file "$PODKOP_LIB/sing_box_config_facade.sh"
|
||||
check_required_file "$PODKOP_LIB/logging.sh"
|
||||
check_required_file "$PODKOP_LIB/rulesets.sh"
|
||||
. /lib/config/uci.sh
|
||||
. /lib/functions.sh
|
||||
. /lib/config/uci.sh
|
||||
. /lib/functions/network.sh
|
||||
. "$PODKOP_LIB/constants.sh"
|
||||
. "$PODKOP_LIB/nft.sh"
|
||||
. "$PODKOP_LIB/helpers.sh"
|
||||
@@ -282,8 +284,6 @@ create_nft_rules() {
|
||||
log "Create nft table"
|
||||
nft_create_table "$NFT_TABLE_NAME"
|
||||
|
||||
nft_init_interfaces_set
|
||||
|
||||
log "Create localv4 set"
|
||||
nft_create_ipv4_set "$NFT_TABLE_NAME" "$NFT_LOCALV4_SET_NAME"
|
||||
nft add element inet "$NFT_TABLE_NAME" localv4 '{
|
||||
@@ -325,7 +325,7 @@ create_nft_rules() {
|
||||
nft add rule inet "$NFT_TABLE_NAME" mangle_output ip daddr "@$NFT_COMMON_SET_NAME" meta l4proto tcp meta mark set 0x105 counter
|
||||
nft add rule inet "$NFT_TABLE_NAME" mangle_output ip daddr "@$NFT_COMMON_SET_NAME" meta l4proto udp meta mark set 0x105 counter
|
||||
nft add rule inet "$NFT_TABLE_NAME" mangle_output ip daddr "$SB_FAKEIP_INET4_RANGE" meta l4proto tcp meta mark set 0x105 counter
|
||||
nft add rule inet "$NFT_TABLE_NAME" mangle_output ip daddr "$SB_FAKEIP_INET4_RANGE" meta l4proto tcp meta mark set 0x105 counter
|
||||
nft add rule inet "$NFT_TABLE_NAME" mangle_output ip daddr "$SB_FAKEIP_INET4_RANGE" meta l4proto udp meta mark set 0x105 counter
|
||||
|
||||
local exclude_ntp
|
||||
config_get_bool exclude_ntp "settings" "exclude_ntp" "0"
|
||||
@@ -590,7 +590,9 @@ sing_box_init_config() {
|
||||
sing_box_configure_log() {
|
||||
log "Configure the log section of a sing-box JSON configuration"
|
||||
|
||||
config=$(sing_box_cm_configure_log "$config" false "$SB_DEFAULT_LOG_LEVEL" false)
|
||||
local log_level
|
||||
config_get log_level "settings" "log_level"
|
||||
config=$(sing_box_cm_configure_log "$config" false "$log_level" false)
|
||||
}
|
||||
|
||||
sing_box_configure_inbounds() {
|
||||
@@ -785,8 +787,6 @@ sing_box_configure_route() {
|
||||
config=$(sing_box_cf_proxy_domain "$config" "$SB_TPROXY_INBOUND_TAG" "$CHECK_PROXY_IP_DOMAIN" "$first_outbound_tag")
|
||||
config=$(sing_box_cf_override_domain_port "$config" "$FAKEIP_TEST_DOMAIN" 8443)
|
||||
|
||||
config_foreach include_source_ips_in_routing_handler "section"
|
||||
|
||||
configure_common_reject_route_rule
|
||||
|
||||
local routing_excluded_ips
|
||||
@@ -797,6 +797,8 @@ sing_box_configure_route() {
|
||||
config_list_foreach "settings" "routing_excluded_ips" exclude_source_ip_from_routing_handler "$rule_tag"
|
||||
fi
|
||||
|
||||
config_foreach include_source_ips_in_routing_handler "section"
|
||||
|
||||
config_foreach configure_routing_for_section_lists "section"
|
||||
}
|
||||
|
||||
@@ -1507,12 +1509,16 @@ section_has_enabled_lists() {
|
||||
get_service_listen_address() {
|
||||
local service_listen_address
|
||||
|
||||
service_listen_address="$(uci_get "network" "lan" "ipaddr")"
|
||||
|
||||
if [ -z "$service_listen_address" ]; then
|
||||
config_get service_listen_address "settings" "service_listen_address" # TODO(ampetelin): Remove after testing
|
||||
config_get service_listen_address "settings" "service_listen_address"
|
||||
if [ -n "$service_listen_address" ]; then
|
||||
log "Attention! The service_listen_address option is being used, overriding the automatic detection of the listening IP address!" "warn"
|
||||
echo "$service_listen_address"
|
||||
return 0
|
||||
fi
|
||||
|
||||
local interface="lan"
|
||||
network_get_ipaddr service_listen_address "$interface"
|
||||
|
||||
if [ -z "$service_listen_address" ]; then
|
||||
log "Failed to determine the listening IP address. Please open an issue to report this problem: https://github.com/itdoginfo/podkop/issues" "error"
|
||||
return 1
|
||||
|
||||
@@ -22,8 +22,6 @@ NFT_INTERFACE_SET_NAME="interfaces"
|
||||
|
||||
## sing-box
|
||||
SB_REQUIRED_VERSION="1.12.0"
|
||||
# Log
|
||||
SB_DEFAULT_LOG_LEVEL="warn"
|
||||
# DNS
|
||||
SB_DNS_SERVER_TAG="dns-server"
|
||||
SB_FAKEIP_DNS_SERVER_TAG="fakeip-server"
|
||||
|
||||
Reference in New Issue
Block a user