具有兩個外部介面(例如有線乙太網和 Wi-Fi)的 Dante SOCKS 伺服器
我希望 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,有人會看看。