mirror of
https://github.com/telemt/telemt.git
synced 2026-05-22 19:51:43 +03:00
55
install.sh
55
install.sh
@@ -105,6 +105,7 @@ set_language() {
|
|||||||
L_OUT_UNINST_H="УДАЛЕНИЕ ЗАВЕРШЕНО"
|
L_OUT_UNINST_H="УДАЛЕНИЕ ЗАВЕРШЕНО"
|
||||||
L_OUT_LINK="Ваша ссылка для подключения к Telegram Proxy:\n"
|
L_OUT_LINK="Ваша ссылка для подключения к Telegram Proxy:\n"
|
||||||
L_ERR_INCORR_ROOT_LOGIN="Используйте 'su -' или 'sudo -i' для входа под пользователем root"
|
L_ERR_INCORR_ROOT_LOGIN="Используйте 'su -' или 'sudo -i' для входа под пользователем root"
|
||||||
|
L_OUT_LOGS="Чтобы посмотреть логи (в случае проблем), используйте команду:"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
L_ERR_DOMAIN_REQ="requires a domain argument."
|
L_ERR_DOMAIN_REQ="requires a domain argument."
|
||||||
@@ -180,6 +181,7 @@ set_language() {
|
|||||||
L_OUT_UNINST_H="UNINSTALLATION COMPLETE"
|
L_OUT_UNINST_H="UNINSTALLATION COMPLETE"
|
||||||
L_OUT_LINK="Your Telegram Proxy connection link:\n"
|
L_OUT_LINK="Your Telegram Proxy connection link:\n"
|
||||||
L_ERR_INCORR_ROOT_LOGIN="Use 'su -' or 'sudo -i' to login under root"
|
L_ERR_INCORR_ROOT_LOGIN="Use 'su -' or 'sudo -i' to login under root"
|
||||||
|
L_OUT_LOGS="To view logs (in case of issues), use the following command:"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
@@ -392,7 +394,7 @@ verify_common() {
|
|||||||
|
|
||||||
if [ "$(id -u)" -eq 0 ]; then
|
if [ "$(id -u)" -eq 0 ]; then
|
||||||
SUDO=""
|
SUDO=""
|
||||||
if [ "$(id -u)" -ne 0 ]; then
|
if [ "${USER:-}" != "root" ] && [ "${LOGNAME:-}" != "root" ]; then
|
||||||
die "$L_ERR_INCORR_ROOT_LOGIN"
|
die "$L_ERR_INCORR_ROOT_LOGIN"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
@@ -539,7 +541,7 @@ install_binary() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
$SUDO mkdir -p "$INSTALL_DIR" || die "$L_ERR_MKDIR"
|
$SUDO mkdir -p "$INSTALL_DIR" || die "$L_ERR_MKDIR"
|
||||||
|
|
||||||
$SUDO rm -f "$bin_dst" 2>/dev/null || true
|
$SUDO rm -f "$bin_dst" 2>/dev/null || true
|
||||||
|
|
||||||
if command -v install >/dev/null 2>&1; then
|
if command -v install >/dev/null 2>&1; then
|
||||||
@@ -609,33 +611,33 @@ install_config() {
|
|||||||
|
|
||||||
tmp_conf="${TEMP_DIR}/config.tmp"
|
tmp_conf="${TEMP_DIR}/config.tmp"
|
||||||
$SUDO cat "$CONFIG_FILE" > "$tmp_conf"
|
$SUDO cat "$CONFIG_FILE" > "$tmp_conf"
|
||||||
|
|
||||||
escaped_domain="$(printf '%s\n' "$TLS_DOMAIN" | tr -d '[:cntrl:]' | sed 's/\\/\\\\/g; s/"/\\"/g')"
|
escaped_domain="$(printf '%s\n' "$TLS_DOMAIN" | tr -d '[:cntrl:]' | sed 's/\\/\\\\/g; s/"/\\"/g')"
|
||||||
|
|
||||||
awk -v port="$SERVER_PORT" -v secret="$USER_SECRET" -v domain="$escaped_domain" -v ad_tag="$AD_TAG" \
|
awk -v port="$SERVER_PORT" -v secret="$USER_SECRET" -v domain="$escaped_domain" -v ad_tag="$AD_TAG" \
|
||||||
-v flag_p="$PORT_PROVIDED" -v flag_s="$SECRET_PROVIDED" -v flag_d="$DOMAIN_PROVIDED" -v flag_a="$AD_TAG_PROVIDED" '
|
-v flag_p="$PORT_PROVIDED" -v flag_s="$SECRET_PROVIDED" -v flag_d="$DOMAIN_PROVIDED" -v flag_a="$AD_TAG_PROVIDED" '
|
||||||
BEGIN { ad_tag_handled = 0 }
|
BEGIN { ad_tag_handled = 0 }
|
||||||
|
|
||||||
flag_p == "1" && /^[ \t]*port[ \t]*=/ { print "port = " port; next }
|
flag_p == "1" && /^[ \t]*port[ \t]*=/ { print "port = " port; next }
|
||||||
flag_s == "1" && /^[ \t]*hello[ \t]*=/ { print "hello = \"" secret "\""; next }
|
flag_s == "1" && /^[ \t]*hello[ \t]*=/ { print "hello = \"" secret "\""; next }
|
||||||
flag_d == "1" && /^[ \t]*tls_domain[ \t]*=/ { print "tls_domain = \"" domain "\""; next }
|
flag_d == "1" && /^[ \t]*tls_domain[ \t]*=/ { print "tls_domain = \"" domain "\""; next }
|
||||||
|
|
||||||
flag_a == "1" && /^[ \t]*ad_tag[ \t]*=/ {
|
flag_a == "1" && /^[ \t]*ad_tag[ \t]*=/ {
|
||||||
if (!ad_tag_handled) {
|
if (!ad_tag_handled) {
|
||||||
print "ad_tag = \"" ad_tag "\"";
|
print "ad_tag = \"" ad_tag "\"";
|
||||||
ad_tag_handled = 1;
|
ad_tag_handled = 1;
|
||||||
}
|
}
|
||||||
next
|
next
|
||||||
}
|
}
|
||||||
flag_a == "1" && /^\[general\]/ {
|
flag_a == "1" && /^\[general\]/ {
|
||||||
print;
|
print;
|
||||||
if (!ad_tag_handled) {
|
if (!ad_tag_handled) {
|
||||||
print "ad_tag = \"" ad_tag "\"";
|
print "ad_tag = \"" ad_tag "\"";
|
||||||
ad_tag_handled = 1;
|
ad_tag_handled = 1;
|
||||||
}
|
}
|
||||||
next
|
next
|
||||||
}
|
}
|
||||||
|
|
||||||
{ print }
|
{ print }
|
||||||
' "$tmp_conf" > "${tmp_conf}.new" && mv "${tmp_conf}.new" "$tmp_conf"
|
' "$tmp_conf" > "${tmp_conf}.new" && mv "${tmp_conf}.new" "$tmp_conf"
|
||||||
|
|
||||||
@@ -785,11 +787,11 @@ uninstall() {
|
|||||||
say "$L_U_STAGE_5"
|
say "$L_U_STAGE_5"
|
||||||
$SUDO rm -rf "$CONFIG_DIR" "$WORK_DIR"
|
$SUDO rm -rf "$CONFIG_DIR" "$WORK_DIR"
|
||||||
$SUDO rm -f "$CONFIG_FILE"
|
$SUDO rm -f "$CONFIG_FILE"
|
||||||
|
|
||||||
if check_os_entity passwd telemt; then
|
if check_os_entity passwd telemt; then
|
||||||
$SUDO userdel telemt 2>/dev/null || $SUDO deluser telemt 2>/dev/null || true
|
$SUDO userdel telemt 2>/dev/null || $SUDO deluser telemt 2>/dev/null || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if check_os_entity group telemt; then
|
if check_os_entity group telemt; then
|
||||||
$SUDO groupdel telemt 2>/dev/null || $SUDO delgroup telemt 2>/dev/null || true
|
$SUDO groupdel telemt 2>/dev/null || $SUDO delgroup telemt 2>/dev/null || true
|
||||||
fi
|
fi
|
||||||
@@ -916,7 +918,7 @@ case "$ACTION" in
|
|||||||
if command -v curl >/dev/null 2>&1; then SERVER_IP="$(curl -s4 -m 3 ifconfig.me 2>/dev/null || curl -s4 -m 3 api.ipify.org 2>/dev/null || true)"
|
if command -v curl >/dev/null 2>&1; then SERVER_IP="$(curl -s4 -m 3 ifconfig.me 2>/dev/null || curl -s4 -m 3 api.ipify.org 2>/dev/null || true)"
|
||||||
elif command -v wget >/dev/null 2>&1; then SERVER_IP="$(wget -qO- -T 3 ifconfig.me 2>/dev/null || wget -qO- -T 3 api.ipify.org 2>/dev/null || true)"; fi
|
elif command -v wget >/dev/null 2>&1; then SERVER_IP="$(wget -qO- -T 3 ifconfig.me 2>/dev/null || wget -qO- -T 3 api.ipify.org 2>/dev/null || true)"; fi
|
||||||
[ -z "$SERVER_IP" ] && SERVER_IP="<YOUR_SERVER_IP>"
|
[ -z "$SERVER_IP" ] && SERVER_IP="<YOUR_SERVER_IP>"
|
||||||
|
|
||||||
if command -v xxd >/dev/null 2>&1; then HEX_DOMAIN="$(printf '%s' "$TLS_DOMAIN" | xxd -p | tr -d '\n')"
|
if command -v xxd >/dev/null 2>&1; then HEX_DOMAIN="$(printf '%s' "$TLS_DOMAIN" | xxd -p | tr -d '\n')"
|
||||||
elif command -v hexdump >/dev/null 2>&1; then HEX_DOMAIN="$(printf '%s' "$TLS_DOMAIN" | hexdump -v -e '/1 "%02x"')"
|
elif command -v hexdump >/dev/null 2>&1; then HEX_DOMAIN="$(printf '%s' "$TLS_DOMAIN" | hexdump -v -e '/1 "%02x"')"
|
||||||
elif command -v od >/dev/null 2>&1; then HEX_DOMAIN="$(printf '%s' "$TLS_DOMAIN" | od -A n -t x1 | tr -d ' \n')"
|
elif command -v od >/dev/null 2>&1; then HEX_DOMAIN="$(printf '%s' "$TLS_DOMAIN" | od -A n -t x1 | tr -d ' \n')"
|
||||||
@@ -927,6 +929,15 @@ case "$ACTION" in
|
|||||||
printf '%b\n' "$L_OUT_LINK"
|
printf '%b\n' "$L_OUT_LINK"
|
||||||
printf ' tg://proxy?server=%s&port=%s&secret=%s\n\n' "$SERVER_IP" "$SERVER_PORT" "$CLIENT_SECRET"
|
printf ' tg://proxy?server=%s&port=%s&secret=%s\n\n' "$SERVER_IP" "$SERVER_PORT" "$CLIENT_SECRET"
|
||||||
|
|
||||||
|
svc="$(get_svc_mgr)"
|
||||||
|
if [ "$svc" = "systemd" ]; then
|
||||||
|
printf '%s\n' "$L_OUT_LOGS"
|
||||||
|
printf ' sudo journalctl -u %s -f\n\n' "$SERVICE_NAME"
|
||||||
|
elif [ "$svc" = "openrc" ]; then
|
||||||
|
printf '%s\n' "$L_OUT_LOGS"
|
||||||
|
printf ' sudo tail -f /var/log/messages /var/log/syslog 2>/dev/null | grep -i %s\n\n' "$SERVICE_NAME"
|
||||||
|
fi
|
||||||
|
|
||||||
printf '====================================================================\n'
|
printf '====================================================================\n'
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|||||||
Reference in New Issue
Block a user