Linux

通過 VPN 訪問 VirtualBox 來賓

  • March 29, 2014

我已經搜尋並嘗試了一些建議,但我無法讓它工作,但是……

我的主機正在執行 Ubuntu。我安裝了 VirtualBox,創建了一個僅限主機的適配器,將主機 IP 設置為 192.168.15.1,然後關閉了適配器的 DHCP 伺服器。然後我創建了訪客(Win XP),並將 IP 設置為 192.168.15.101/24 並將 DG 設置為 192.168.15.1 我可以從主機 ping 到訪客,反之亦然。

然後我在主機上安裝了 OpenVPN。創建了我自己的 CA、伺服器證書/密鑰和客戶端證書/密鑰。將 OpenVPN 伺服器配置設置為將 192.168.15.0/24 路由​​推送到任何 VPN 客戶端。我將路由器設置為將 UDP 1194 轉發到 OpenVPN 伺服器並測試連接。

OpenVPN 客戶端是在另一台筆記型電腦上執行的 Debian。建立 VPN 隧道後,VPN 客戶端 (10.8.0.6) 可以 ping VPN 主機 (10.8.0.1),反之亦然。客戶端還可以毫無問題地在 192.168.15.1 ping 主機“僅主機”IP。

我的問題是讓 Open VPN Client (10.8.0.6) 與 VM Guest (192.168.15.101) 交談。我認為 VM 來賓 (XP) 不知道 VPN 客戶端的存在,它無法將流量/響應路由到 10.8.0.6。

你能1)告訴我我缺少哪些步驟,2)如何解決這個問題?

謝謝。

OpenVPN 伺服器/VirtualBox 主機的 IPTABLES 輸出…

root@xxxxxxxxxxxx:~# iptables -L -nv
Chain INPUT (policy ACCEPT 48 packets, 53304 bytes)
pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 35 packets, 2992 bytes)
pkts bytes target     prot opt in     out     source               destination

解決方案 缺少的部分是 ip 轉發。我需要編輯 /etc/sysctl.conf 並更改它:

# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1

對此

# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1

一直感謝豪克!

您必須檢查防火牆配置是否允許轉發:

iptables -L -nv

但僅將防火牆配置為允許路由是不夠的。路由功能本身必須在核心中啟用。如果核心甚至不嘗試路由,那麼防火牆是否允許數據包通過都沒有關係。您可以檢查路由狀態

cat /proc/sys/net/ipv4/ip_forward

這將返回 1(啟用路由)或 0(禁用路由),後者通常是預設值。您可以更改此設置

echo 1 >/proc/sys/net/ipv4/ip_forward

例如,可以通過 進行永久更改/etc/sysctl.conf

引用自:https://unix.stackexchange.com/questions/122118