Proxy

具有兩個外部介面(例如有線乙太網和 Wi-Fi)的 Dante SOCKS 伺服器

  • June 22, 2020

我希望 Dante 透明地在兩個介面enp4s0(有線乙太網)和wlp3s0(Wi-Fi)之間進行選擇,而不管它們的狀態(打開或關閉)。那是

  • 接線時,確實應該選擇enp4s0
  • wlp3s0被添加時,它最好保持打開enp4s0(或者可能做一些其他聰明的事情,我不太關心這一點),
  • 當電線 ( enp4s0) 關閉時,即我正在旅行,它當然應該切換wlp3s0為唯一的選擇。

現在我的印像是以下配置應該可以解決問題:

internal: 0.0.0.0 port=1080
external: enp4s0
external: wlp3s0
external.rotation: route

然而,令我驚訝的enp4s0是,當 eg only 上升和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 伺服器的官方郵件列表中收到了 Michael Shuldman(維護者)的以下回复sockd

也許沒有技術原因,但是在正常的生產設置中(即,在公司使用),指定 Dante 應使用不存在/未配置的 NIC(網路介面卡)通常表示配置錯誤。例如,從具有不同 NIC 名稱的另一台伺服器複製的 sockd.conf,或者導致某些 NIC 重命名的作業系統升級。

因此,我們認為最好立即出錯,以確保管理員會立即註意到並解決問題,因為在我們的客戶使用 Dante 的設置中,這不是預期的行為。

對於更多個人而非商業用途,可能應該對諸如您的場景進行更多考慮,但不幸的是,這並沒有被優先考慮。

一種未來的替代方案可能是而不是出錯,只要在 sockd.conf 中配置了至少一個可操作的 NIC,就列印一個警告並繼續。這可能是可以相當容易實現而不會引起其他問題的風險的東西,所以我想我會添加一個註釋,以便在以後的版本中對其進行研究。

1.4.3 維護版本已經在測試中,所以不幸的是,我認為此時無法添加任何內容,但也許對於 1.5.0,有人會看看。

引用自:https://serverfault.com/questions/1022273