以下是我正在尝试执行的基本设置:
客户端(任何机器)---> 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/