Я хочу, чтобы Dante прозрачно выбирал один из двух интерфейсов enp4s0
(Проводной Ethernet) и wlp3s0
(Wi-Fi) независимо от их статуса (вверх или вниз). То есть
enp4s0
на самом деле,wlp3s0
добавлен, желательно, чтобы он оставался включенным enp4s0
(или, может быть, сделаю еще что-нибудь, меня это не волнует),enp4s0
) не работает, т.е. я путешествую, он, конечно, должен переключиться на wlp3s0
как единственный оставшийся вариант.Теперь у меня сложилось впечатление, что следующая конфигурация должна помочь:
internal: 0.0.0.0 port=1080
external: enp4s0
external: wlp3s0
external.rotation: route
Однако, к моему удивлению, когда, например, только enp4s0
встало и wlp3s0
не работает, Данте отказывается запускаться, лает:
error: /etc/sockd.conf: problem on line ??? near token "wlp3s0": could not resolve hostname "wlp3s0": No address associated with hostname. Please see the Dante manual for more information
Я понимаю суть этого вопроса, но нет никаких технических причин для такого ограничения. Редактировать этот файл конфигурации вручную каждый раз, когда я переключаюсь между проводным подключением и Wi-Fi, было бы обременительно и нежелательно. Есть ли умный способ решить эту проблему?
В крайнем случае, может быть, какой-нибудь скрипт-перехватчик, который изменит файл конфигурации? Примеры таких инструментов / скриптов?
Пока я пошел с goproxy
, что за жемчужина! По сути,
$ goproxy socks -t tcp -p '0.0.0.0:1080'
делает трюк без каких-либо проблем с привязкой каких-либо конкретных исходящих интерфейсов.
Я получил следующий ответ от Майкла Шульдмана (сопровождающего) в официальном списке рассылки для сервера Dante sockd
:
Возможно, нет никаких технических причин, но в обычных производственных настройках (т. Е. Используемых в компании) указание, что Dante должен использовать несуществующий / ненастроенный сетевой адаптер (карту сетевого интерфейса), обычно указывает на ошибку конфигурации. Например, sockd.conf, скопированный с другого сервера с другими именами сетевых адаптеров, или обновление ОС, вызвавшее переименование некоторых сетевых адаптеров.
Поэтому было сочтено, что лучше немедленно устранить ошибку, чтобы администратор заметил и сразу исправил проблему, так как это не ожидаемое поведение в настройках, которые наши клиенты используют Dante.
Для более личного, а не делового использования, вероятно, следует подумать над такими сценариями, как ваш, но это, к сожалению, не было приоритетным.
Одна из будущих альтернатив может заключаться в том, чтобы вместо того, чтобы выводить ошибку, просто напечатайте предупреждение и продолжайте, пока в sockd.conf настроен хотя бы один работоспособный сетевой адаптер. Это, вероятно, что-то, что можно было бы реализовать довольно легко, без особого риска возникновения других проблем, поэтому я думаю, что добавлю примечание для изучения этого в более позднем выпуске.
Релиз с поддержкой 1.4.3 уже находится на стадии тестирования, поэтому, к сожалению, я не думаю, что на данный момент можно что-либо добавить, но, возможно, кто-нибудь взглянет на 1.5.0.