У меня 4 сервера со следующей конфигурацией:
Серверы 1 и 3 (веб-сервер, почтовый сервер соответственно): NIC1: общедоступная сеть, подключенная к Интернету
NIC2: частная сеть, связь между серверами.
Серверы 2 и 4 (БД и резервный сервер):
NIC: частная сеть, связь между серверами.
Я пытаюсь найти способ перенаправить трафик apt (только) с серверов 2 и 4 через один из двух серверов, подключенных в общедоступной сети к Интернету, чтобы мне не пришлось подключать эти два сервера к общедоступная сеть только для кв. Есть ли способы это сделать?
Большое спасибо.
Используйте прокси-сервер, установленный на сервере 1 или 3, настроенный для разрешения подключений к сайтам в sources.list
с серверов частной сети. В качестве бонуса, если вы используете кеширующий прокси, такой как squid или approx
вы будете использовать меньшую полосу пропускания для загрузки пакетов, общих для серверов.
Для обычные веб-прокси, такие как squid, вы можете установить $http_proxy
переменную среды перед запуском apt или отредактируйте свой apt.conf
файл (если вы используете сжатие Debian, похоже, что конфигурация разделена на разные файлы в /etc/apt/apt.conf.d/
, добавьте новый файл) и установите
Acquire::http::Proxy "http://user:pass@yourproxyaddress:proxyport";
замените http на ftp, если вы используете зеркала ftp и прокси с поддержкой ftp.
Если вы используете ок, то вы редактируете клиентские sources.list
чтобы указать на ваш приблизительный сервер вместо исходных зеркал вместо установки прокси в вашей оболочке или в apt.conf.
Если вы не хотите устанавливать прокси, вы можете использовать переадресацию портов ssh одним из нескольких способов:
1: изменить файл sources.list сервера 2/4 для использования http://localhost:8080/
для зеркал. Если у вас более одного зеркального хоста, вам нужно выбрать разные порты (например, 8081) для каждого из них. На server2 / 4 включите GatewayPorts
в sshd_config
Затем ssh с сервера 1 на сервер 2/4, используя
ssh -R 127.0.0.1:8080:http.us.debian.org:80 server2
Используйте несколько команд -R (например, -R 127.0.0.1:8081:security.debian.org:80
), если есть несколько зеркал для туннелирования. Пока это ssh-соединение остается открытым, вы сможете использовать apt.
2. Используйте "динамический" SOCKS-прокси ssh и tsocks
чтобы обеспечить поддержку SOCKS для apt-get. Для этого вам нужно будет выполнить ssh «назад» с server2 на server1, используя
ssh -D 8080 server1
в одном терминале затем работает tsocks apt-get update
и т.д. в другом терминале. Вы установите информацию о сервере и порте в /etc/tsocks.conf
и tsocks
Программа-оболочка преобразует обычные HTTP-соединения в apt для использования прокси-сервера socks, предоставляемого ssh. Таким образом, вы не вносите никаких изменений в sources.list.