這是我想要做的基本設定:
用戶端(任何機器) ---> VPN 用戶端 (Raspberry Pi) ---> OpenVPN 伺服器 ---> 互聯網
VPN 用戶端 (Rpi) 可能使用不受信任的網絡,但在這種情況下,我想將連接埠 4443 上的所有互聯網流量轉發回客戶端,以便客戶端做出回應。
我的其他一切都正常工作 - 客戶端連接到 pi 並成功地成為我創建的 VPN 的一部分,但我無法透過任何方式找出返迴路徑。
謝謝!
答案1
我缺少一些資訊來具體回答您的問題,但我會盡力整理一些內容以進一步幫助您。
[...] 我想將連接埠 4443 上來自網際網路的所有流量轉回給客戶端,以便客戶端做出回應。
您無法將其他資料轉送至沒有適合該資料的服務的連接埠。
VPN 透過建立虛擬網路來運作,其中包括虛擬網路介面。為了使虛擬網路介面正常運作,必須執行 VPN 軟體(客戶端或伺服器)。當VPN軟體從虛擬網路介面接收資料/資料包時,資料被重新打包並傳統地加密,然後透過實體網路傳輸,反之亦然。
由於 VPN 特性,您有兩個網路。實體和虛擬都有各自的 IP 位址。透過這些網絡,您可以完成透過網路可以完成的所有常見操作。
用戶端(任何機器) ---> VPN 用戶端 (Raspberry Pi) ---> OpenVPN 伺服器 ---> 互聯網
並且Physical Ethernet
是Physical Ethernet 0
wan接口。是Physical Ethernet 1
與 進行連接Client (machine)
。
我假設您使用乙太網路電纜連接到Client (machine)
,VPN Client (Raspberry Pi)
並且 Raspberry Pi 上有 iptables...
Physical Ethernet 1
為了在兩個網路和之間設定 NAT 轉發Virtuel Ethernet
,我假設 的Physical Ethernet 1
名稱為 eth0, 的Virtuel Ethernet
名稱為 tun0。
# Set default policies
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
# NAT
iptables -A POSTROUTING -o tun0 -j MASQUERADE # Enable NAT
# Forwarding
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT # Allow forwarding from client to vpn
iptables -A FORWARD -i eth0 -o eth0 -j ACCEPT # Allow forwarding from client to client
iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT # Allow forwarding from vpn to client, for already established connections
也可以看看如何在 Ubuntu 中使用 iptables 設定簡單的路由器
我不知道您在具有 VPN 伺服器的電腦上使用哪個作業系統。因此我無法詳細介紹如何 NAT 轉送...
答案2
我真的想通了!
我寫了一篇關於如何做到這一點的整篇文章 -https://virtualprivatepi.com/diy/