如何在 VPN 客户端上将入站到 VPN 服务器的端口转发到客户端?

如何在 VPN 客户端上将入站到 VPN 服务器的端口转发到客户端?

以下是我正在尝试执行的基本设置:

客户端(任何机器)---> VPN 客户端(Raspberry Pi)---> OpenVPN 服务器---> 互联网

VPN 客户端(Rpi)可能正在使用不受信任的网络,但在这种情况下,我想将端口 4443 上来自互联网的所有流量转发回客户端,以便客户端做出响应。

其他一切都运行正常 - 客户端连接到 pi 并成功显示为我创建的 VPN 的一部分,但我无法找出返回路径。

谢谢!

答案1

我缺少一些信息来具体回答您的问题,但我会尝试理清一些事情以进一步帮助您。

[...] 我想将端口 4443 上来自互联网的所有流量转发回客户端,以便客户端做出响应。

您不能将其他数据转发到没有适合该数据的服务的端口。

VPN 的工作原理是创建一个虚拟网络,其中包括虚拟网络接口。要使虚拟网络接口正常工作,必须运行 VPN 软件(客户端或服务器)。当 VPN 软件从虚拟网络接口接收数据/数据包时,数据会被重新打包并进行传统加密,然后由物理网络传输,接收数据时则反之亦然。

VPN 通过创建虚拟网络来工作 Physical Ethernet是 wan 接口。

由于 VPN 的特性,您有两个网络。一个物理网络和一个虚拟网络,每个网络都有各自的 IP 地址。使用这些网络,您可以执行使用网络可以执行的所有常见操作。

客户端(任何机器)---> VPN 客户端(Raspberry Pi)---> OpenVPN 服务器---> 互联网

VPN Physical EthernetPhysical Ethernet 0wan 接口。 用于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/

相关内容