Я хочу, чтобы 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
:
Возможно, нет технической причины, но в обычном производстве настройка (т. е. как используется в компании), указывающая, что Данте должен использовать несуществующая/ненастроенная сетевая карта (сетевая карта) обычно указывают на ошибку конфигурации. Например, файл sockd.conf скопирован с другого сервера с другими именами сетевых карт, или обновление ОС, вызывающее переименование некоторых сетевых карт.
Поэтому считалось, что лучше сразу ошибиться, уверен, что админ сразу заметит и устранит проблему, так как это не ожидаемое поведение в настройках, которые наши клиенты используют Dante.
Для более личного, а не делового использования, еще несколько мыслей вероятно, следует отдавать сценариям, подобным вашему, но это к сожалению не в приоритете.
Одной из будущих альтернатив может быть вместо того, чтобы выводить ошибку, просто напечатать предупреждение и продолжаться до тех пор, пока есть хотя бы одна работоспособная сетевая карта настроен в sockd.conf. Это, вероятно, то, что может быть реализуется довольно легко без особого риска вызвать другие проблемы, поэтому я думаю, что добавлю примечание, чтобы изучить его позже выпуск.
Отладочная версия 1.4.3 уже находится на стадии тестирования, поэтому я не думаю, что к этому можно добавить что угодно, к сожалению, но возможно для 1.5.0 кто-то посмотрит.