我已經在其他 VPS 供應商上安裝了 OpenVPN,並想嘗試 Google 的。我喜歡谷歌的性價比,特別是因為我可以透過手機啟動機器,而無需每次都登入。
我已經達到客戶端連線但無法存取網路的程度。
我已經打開了 OpenVPN 連接埠的防火牆。
我已經在虛擬機器上啟用了IP轉送。
客戶端在連接時獲得 IP、網關、DNS——所有正確的東西。
我懷疑我必須建立一個路由器和/或一條路由,以便資料包從 OpenVPN 實例到達世界。我已經很好地閱讀了文檔,但我陷入了困境 - 我還不是網絡專家,仍在不斷學習。透過閱讀,我似乎可以將網路轉變為他們所謂的「遺留」結構,但我希望能夠克服這一挑戰並了解正在發生的事情。我認為這是因為網路被分成許多不同的子網路;相較之下,防火牆後面只有 1 個網路(即傳統網路)。
看看我腦海中的地圖,我的 OpenVPN 正在將資料發送到其子網路的網關,但從那裡我認為資料包被丟棄。我必須需要從子網路閘道到網際網路的路由嗎?或甚至是子網路和網際網路之間的完整路由器?
就像我說的,我以前使用過 OpenVPN 虛擬機,沒問題。因此,我非常有信心問題出在配置 Google Cloud 網路。
感謝您的任何提示。
答案1
這修復了它:
iptables -t nat -I POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
仍然不確定為什麼我必須這樣做,也許 Google 的 Debian 映像比標準 Diebian 實例更加鎖定。
無需對 Google Cloud 網路進行其他變更。
答案2
您需要檢查一些東西。
檢查 /etc/sysctl.conf 中是否有以下指令
net.ipv4.ip_forward = 1
確保防火牆正在轉送 VPN 介面上從用戶端收到的流量
#OpenVPN interface=tun0 iptables -A FORWARD -i tun0 -j ACCEPT
確保您正在偽裝傳出流量
#WAN Interface on OpenVPN server is eth1 iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE