如何通过仅可通过网络上的另一台计算机使用的 VPN 路由流量?

如何通过仅可通过网络上的另一台计算机使用的 VPN 路由流量?

网络 1 有 2 台计算机,PC1 和 PC2。PC1 可以访问 VPN。PC2 则不能。PC2 能否通过 PC1 上的 VPN 路由其流量?

我想到的一个可能的想法是 SSH 隧道。只要我知道我想通过 VPN 访问的端点的有限列表,我就可以设置到这些特定端点的特定 SSH 隧道,并通过 localhost:{port-number-i-defined-for-that-specific-endpoint} 访问它们

这样真的有用吗?还有没有人能想到更简洁的设置?

答案1

(由于您没有提到任何操作系统,我假设都是 Linux)。

您需要确保在 PC1 上启用了数据包转发。要永久执行此操作,请在以下位置添加一个文件/etc/sysctl.d/(我将其命名为local.conf):

net.ipv4.ip_forward = 1

您还需要通过编辑来设置其 iptables 以执行 NAT /etc/iptables.rules(假设您有一个规则文件up的接口规则):iptables-restore

*nat
-A POSTROUTING -o tun0 -j MASQUERADE 
COMMIT

在 PC2 上,您需要通过 PC1 将流量路由到 VPN。假设它有一个以太网接口,将命令添加route到您的updown命令中/etc/network/interfaces.d/eth0(或者/etc/network/interfaces如果您对所有接口使用单个文件,则添加到):

iface eth0 inet static
      address 192.168.0.2
      netmask 255.255.255.0
      broadcast 192.168.0.255
      pre-up iptables-restore </etc/iptables.eth0.rules
      up route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.0.1
      down route del -net 10.0.0.0 netmask 255.0.0.0

我上面假设 PC1 应该是192.168.0.1而 PC2 应该是192.168.0.2,并且您的 VPN 显示为10.x.x.x;请根据需要替换您自己的值。

您可能希望第一次手动创建路线,并且只有当您满意它做正确的事情时才将其添加到接口文件中。

相关内容