Работа systemd-timesyncd через прокси-сервер

Автор suny, 04 февраля 2020, 08:24:14

« назад - далее »

0 Пользователи и 3 гостей просматривают эту тему.

suny

Всем привет, доступ к интернету предоставляется через прокси-сервер.

Прописал в /etc/environment


http_proxy=http://ip_adress:port/
https_proxy=https://ip_adress:port/
ftp_proxy=ftp://ip_adress:port/
socks_proxy=socks://ip_adress:port/


/etc/apt/apt.conf.d/10proxy


Acquire::http::proxy "http://ip_adress:port/";
Acquire::https::proxy "https://ip_adress:port/";
Acquire::ftp::proxy "ftp://ip_adress:port/";
Acquire::socks::proxy "socks://ip_adress:port/";
Acquire::::Proxy "true";


Обновления через apt и flatpak работают.

Не работает синхронизация времени systemd-timesyncd, как заставить работать данный юнит через прокси-сервер?

timedatectl:
Открыть содержимое (спойлер)

user_name@host_name:~$ timedatectl
               Local time: Вт 2020-02-04 12:42:51 +08
           Universal time: Вт 2020-02-04 04:42:51 UTC
                 RTC time: Вт 2020-02-04 12:43:04
                Time zone: Asia/Irkutsk (+08, +0800)
System clock synchronized: no
              NTP service: active
          RTC in local TZ: yes

Warning: The system is configured to read the RTC time in the local time zone.
         This mode cannot be fully supported. It will create various problems
         with time zone changes and daylight saving time adjustments. The RTC
         time is never updated, it relies on external facilities to maintain it.
         If at all possible, use RTC in UTC by calling
         'timedatectl set-local-rtc 0'.
[свернуть]

/etc/systemd/timesyncd.conf:
Открыть содержимое (спойлер)

user_name@host_name:~$ cat /etc/systemd/timesyncd.conf
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See timesyncd.conf(5) for details.

[Time]
#NTP=
#FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048
[свернуть]

journalctl -u systemd-timesyncd.service:
Открыть содержимое (спойлер)

user_name@host_name:~$ sudo journalctl -u systemd-timesyncd.service   
[sudo] пароль для user:
-- Logs begin at Tue 2020-02-04 08:19:25 +08, end at Tue 2020-02-04 12:23:26 +08. --
фев 04 08:19:32 dbook systemd[1]: Starting Network Time Synchronization...
фев 04 08:19:33 dbook systemd-timesyncd[510]: The system is configured to read the RTC time in the local time zone. This mode cannot be fully supported. All system time
фев 04 08:19:33 dbook systemd[1]: Started Network Time Synchronization.
фев 04 11:59:03 dbook systemd-timesyncd[510]: Synchronized to time server for the first time 91.207.136.50:123 (1.debian.pool.ntp.org).
фев 04 12:02:27 dbook systemd-timesyncd[510]: Timed out waiting for reply from 91.207.136.50:123 (1.debian.pool.ntp.org).
фев 04 12:02:37 dbook systemd-timesyncd[510]: Timed out waiting for reply from 85.21.78.23:123 (1.debian.pool.ntp.org).
фев 04 12:02:47 dbook systemd-timesyncd[510]: Timed out waiting for reply from 91.206.16.3:123 (1.debian.pool.ntp.org).
фев 04 12:02:57 dbook systemd-timesyncd[510]: Timed out waiting for reply from 91.207.136.55:123 (1.debian.pool.ntp.org).
[свернуть]

ОС: Debian 10 64 Bit

Gamliel

Цитата: suny от 04 февраля 2020, 08:24:14/etc/environment


http_proxy=http://ip_adress:port/
https_proxy=https://ip_adress:port/
ftp_proxy=ftp://ip_adress:port/
socks_proxy=socks://ip_adress:port/


/etc/apt/apt.conf.d/10proxy


Acquire::http::proxy "http://ip_adress:port/";
Acquire::https::proxy "https://ip_adress:port/";
Acquire::ftp::proxy "ftp://ip_adress:port/";
Acquire::socks::proxy "socks://ip_adress:port/";
Acquire::::Proxy "true";


Обновления через apt и flatpak работают.

Не работает синхронизация времени systemd-timesyncd
Насколько я догадываюсь, работает то, что должно работать через HTTP-прокси (он же HTTPS-прокси, он же FTP-прокси), и не работает то, что должно работать через SOCKS-прокси.

Во-первых, правильный ли номер порта Вы указали для SOCKS-прокси? Во-вторых, вроде бы переменная, содержащая адрес SOCKS-прокси, называется не socks_proxy, а all_proxy (но утверждать это с полной уверенностью не буду).
printenv | grep -i proxy | grep -vi "^no_proxy=" | sort

suny


user_name@host_name:~$ printenv | grep -i proxy | grep -vi "^no_proxy=" | sort
ftp_proxy=ftp://ip_adress:port/
http_proxy=http://ip_adress:port/
https_proxy=https://ip_adress:port/
socks_proxy=socks://ip_adress:port/


Интернет провайдера не предоставлял отдельного портя для socks прокси.

Переменная socks_proxy указанна в мануалах которые я нашел в интернете, про all_proxy я нигде не читал (но изучу этот вопрос)

Olej

Цитата: suny от 05 февраля 2020, 03:47:08Интернет провайдера не предоставлял отдельного портя для socks прокси.
Точнее, наверное: провайдер не обеспечивает SOCKS proxy ... от слова вообще?  :D

P.S. Что это вообще за провайдер такой, который предоставляет клиентам выход в Интернет через прокси?
Для корпоративных LAN, где так организуют доступ сотрудников в Интернет - это обычная практика ... но чтобы для публичного провайдера?  ???

Gamliel

Цитата: suny от 05 февраля 2020, 03:47:08Интернет провайдера не предоставлял отдельного портя для socks прокси.
Не знаю, почему Вы не поменяете провайдера.

(Если curl не установлен, то установи́те его — wget в данном случае не поможет, потому что не поддерживает SOCKS-прокси.)
curl -x "" https://ipecho.net/plain; echo
curl -x http://address:port/ https://ipecho.net/plain; echo
curl -x socks4://address:port/ https://ipecho.net/plain; echo
curl -x socks5://address:port/ https://ipecho.net/plain; echo

(в трёх случаях вместо address и port укажите IP-адрес и порт прокси-сервера, больше ничего не меняйте). В каждом случае ответом будет IPv4-адрес или (и) сообщение об ошибке. В каком случае что выводится?

suny


user_name@host_name:~$ curl -x "" https://ipecho.net/plain; echo
curl: (6) Could not resolve host: ipecho.net

user_name@host_name:~$ curl -x http://ip_adress:port/ https://ipecho.net/plain; echo
5.143.248.38
user_name@host_name:~$ curl -x socks4://ip_adress:port/ https://ipecho.net/plain; echo
curl: (6) Could not resolve host: ipecho.net

user_name@host_name:~$ curl -x socks5://ip_adress:port/ https://ipecho.net/plain; echo
curl: (7) Unable to receive initial SOCKS5 response.

Gamliel

Именно то, что я предполагал: возможны только соединения через HTTP-прокси, остальные блокируются. Лучше всего Вам было бы поменять провайдера (от Ростелекома вряд ли возможно ждать нормальной связи). Если же это невозможно (ведомственное жильё с единственным провайдером), то остаётся использовать программы, перенаправляющие не-HTTP-траффик через HTTP-прокси.
apt-cache show corkscrew simpleproxy connect-proxy redir proxytunnel desproxy redsocks socat shadowsocks shadowsocks-libev trojan | less
(сюда копировать не надо, прочитайте сами).
Я расположил упомянутые пакеты в порядке возрастания их размера (с учётом размера зависимостей).

suny

Спасибо за помощь, буду разбираться.