題 如何僅將瀏覽器流量傳遞給openvpn連接


我成功地建立了一個openvpn連接。通過使用參數

redirect-gateway def1
dhcp-option DNS 10.8.0.1

所有流量都將通過VPN,但我只想要一個特定的應用程序(如瀏覽器(如Firefox))來使用openvpn連接。所有其他流量應通過常規網關。

我可以使用socks / proxy設置以某種方式指向openvpn鏈接嗎?也許我可以使用putty來創建這個鏈接?如果是這樣,怎麼樣?

順便說一句,這是在Windows操作系統上。


6
2018-02-25 19:43


起源


可能重複 特定應用程序的自定義路由表? 還看看 是否可以通過VPN僅路由特定應用程序? - Ƭᴇcʜιᴇ007
嗯。均田。我查看了那篇文章,但是“ForcebindIp”是唯一能做到這一點的方法嗎?就像我說的,我很高興,如果只適用於瀏覽器。我不想做ip-ranges路由異常樣式,只是簡單的應用程序轉發。 - droidgren
您遇到的問題是路由是由目標IP完成的,而不是源應用程序完成的。無論如何,我標記為欺騙的是同一個問題(無論如何都是IMO)。如果你想對已經存在的問題提出不同/更好/更新的答案,我建議 放置賞金 請求更多/不同的答案。 - Ƭᴇcʜιᴇ007
這個問題在兩個方面有所不同:1。我不想使用路由表2.我的問題是關於具有代理支持的應用程序,如瀏覽器。 - droidgren


答案:


我特意遇到了這個問題,找不到一個易於使用的解決方案。基本上,該方法仍然是在VPN服務器中設置SOCKS服務器。我已經製作了這個Docker鏡像以使其實際可用

https://hub.docker.com/r/kizzx2/openvpn-client-socks/

啟動它,然後將瀏覽器設置為使用SOCKS代理 local.docker:1081

即使沒有內置的代理配置,大多數應用程序都可以強制執行。看到 proxychains


1
2018-06-11 09:42





是的,您可以使用SOCKS代理(或常規代理),只需確保該代理的流量通過VPN。 [當然,如果你使用SSH,VPN是多餘的]。您可能希望刪除“redirect-gateway def1”語句,可能完全將其刪除或將其替換為“redirect-private”。

您需要知道,如果您的名稱服務器不在VPN的另一端,DNS流量可能會洩漏您現有的網絡。

Putty可用於創建socks連接。

Unix方式(顯然也適用於Putty) - 從命令行

putty -D 8080用戶名@ remotehost

(其中8080​​是SOCKS端口)

Windows方式: 從 http://vectrosecurity.com/content/view/67/26/ (如果網站消失,重複此處)

  1. 打開PuTTY。
  2. 如果顯示“主機名(或IP地址)”並在其下方有一個框,請在框中輸入SSH主機的名稱。
  3. 在“已保存的會話”下,輸入此連接的名稱,以便日後記住。例如,您可以將其稱為“SSH代理”,因此您知道這將是代理連接。
  4. 在左側的“類別:”菜單中,展開“連接”菜單列表(如果尚未展開)。如果尚未展開,請展開“SSH”菜單列表。單擊“隧道”(位於“SSH”下方)。這將打開選項,您可以在其中輸入PuTTY的設置以創建隧道。
  5. 在“添加新轉發的端口:”下,輸入9853
  6. 如果顯示“目的地”,則將該字段留空,但請務必選擇其下方的“動態”選項。
  7. 單擊“添加”按鈕添加此端口。
  8. 在左側的“類別:”菜單中,單擊“連接”。
  9. 如果它表示“保持活動之間的秒數(0關閉)”,請在框中輸入5。即使您離開計算機一段時間,這也會使您的連接保持活動狀態並防止其超時。
  10. 在左側的“類別:”菜單中,單擊最頂部的“會話”返回第一個屏幕。
  11. 單擊“保存”按鈕以保存剛剛輸入的所有設置。稍後您將來不必再次輸入這些設置,每次要連接到代理時,只需要加載保存的配置文件(在打開PuTTY後雙擊它)。
  12. 單擊“打開”按鈕以打開與代理的連接。
  13. 連接後,系統會要求您輸入用戶名和密碼。輸入您帳戶的用戶名和密碼。一旦連接,隧道就會打開。使用完隧道後,鍵入logout並按Enter鍵。

-1
2018-02-25 21:11



對不起,你的意思是什麼“remotehost”? openvpn服務器? openvpn網絡接口?我不使用SSH。 - droidgren
是的,通過remotehost我的意思是遠程ssh服務器。 (我想你可能有點困惑 - 如果你使用putty你使用ssh - 按照定義 - putty是一個SSH客戶端,它通過SSH連接創建一個socks隧道)。使用putty和Socks可能是你想做的最簡單的方法,否則你需要在VPN的另一端放置一個代理服務器。但是,您需要在遠程計算機上安裝SSH服務器 - 當然,您可以擺脫OpenVPN連接,因為SSH對您來說幾乎完全相同。 - davidgo
好的,但是不是比SSH隧道更快的openvpn?但好吧看起來我唯一可以利用我想要的方式使用我的閃亮的新OpenVPN隧道是使用ForceBindIP ..我認為有可能做“本地代理服務器”將應用流量匯集到OpenVPN連接。 - droidgren
是的,OpenVPN可能更快SSH。而不是匯集到本地代理服務器,只需漏斗到VPN另一端的代理服務器。 - davidgo
順便說一句,這是SOCKS。 - Daniel B


如果您確實特別要求支持代理服務器的應用程序,答案很簡單:使用代理服務器!

必須配置VPN連接,以便它不會修改客戶端的默認網關。這樣,所有流量都使用到互聯網的常規路由。

我假設您的VPN連接使用 10.20.30.0/24 作為子網,用 10.20.30.1 作為服務器的IP地址。

在VPN服務器上配置代理(魷魚,或者更輕的東西)並將其設置為偵聽客戶端 10.20.30.1。將您的瀏覽器(或其他)指向代理處 10.20.30.1。此IP地址的流量將始終通過VPN連接進行路由。


-2
2017-07-07 12:58



VPN比代理服務器更安全,因為它可以使用證書進行身份驗證 - knocte
@knocte是啊,所以?我說要同時使用它們。 - Daniel B