Сервер Dante SOCKS с двумя внешними интерфейсами (например, проводной Ethernet и Wi-Fi)

Я хочу, чтобы 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, было бы обременительно и нежелательно. Есть ли умный способ решить эту проблему?

В качестве последнего средства, может быть, какой-нибудь скрипт-перехватчик, который изменит файл конфигурации? Примеры таких инструментов / скриптов?

0
задан 20 June 2020 в 17:36
1 ответ

На данный момент я использовал goproxy, какая жемчужина! По сути,

$ goproxy socks -t tcp -p '0.0.0.0:1080'

делает свое дело без каких-либо проблем с привязкой каких-либо конкретных исходящих интерфейсов.


Я получил следующий ответ от Майкла Шульдмана (сопровождающего) в официальном списке рассылки сервера Dante sockd:

Возможно, нет технической причины, но в обычном производстве настройка (т. е. как используется в компании), указывающая, что Данте должен использовать несуществующая/ненастроенная сетевая карта (сетевая карта) обычно указывают на ошибку конфигурации. Например, файл sockd.conf скопирован с другого сервера с другими именами сетевых карт, или обновление ОС, вызывающее переименование некоторых сетевых карт.

Поэтому считалось, что лучше сразу ошибиться, уверен, что админ сразу заметит и устранит проблему, так как это не ожидаемое поведение в настройках, которые наши клиенты используют Dante.

Для более личного, а не делового использования, еще несколько мыслей вероятно, следует отдавать сценариям, подобным вашему, но это к сожалению не в приоритете.

Одной из будущих альтернатив может быть вместо того, чтобы выводить ошибку, просто напечатать предупреждение и продолжаться до тех пор, пока есть хотя бы одна работоспособная сетевая карта настроен в sockd.conf. Это, вероятно, то, что может быть реализуется довольно легко без особого риска вызвать другие проблемы, поэтому я думаю, что добавлю примечание, чтобы изучить его позже выпуск.

Отладочная версия 1.4.3 уже находится на стадии тестирования, поэтому я не думаю, что к этому можно добавить что угодно, к сожалению, но возможно для 1.5.0 кто-то посмотрит.

1
ответ дан 22 June 2020 в 01:26

Теги

Похожие вопросы