在具有两个网卡的 Linux PC 上为 VPN 设置专用子网

在具有两个网卡的 Linux PC 上为 VPN 设置专用子网
  1. 我有一台带有两个网卡(eth0 和 eth1)的 Linux 电脑。
  2. 单个 ISP 路由器连接到互联网。(IP 192.168.1.1)
  3. 单个 roku3。(硬编码不可更改的 DNS)
  4. 一个单一的 vpn 帐户(tun0),所有 vpn 软件都在 Linux PC 上运行。

Linux PC 通过 eth0(静态 IP 192.168.1.4)连接到 isp 路由器,从而可以访问互联网。我想将 roku3 直接连接到 Linux PC 上的第二个未使用的网卡 (eth1),并让 Linux PC 将所有流量从 roku3 路由到 Linux PC 上的 vpn (tun0)。isp 路由器是通往互联网的唯一网关。

如何为每个网卡创建单独的子网?我想将来自 roku3 的所有流量发送到 eth1,发送到 vpn (tun0),并将来自 linux pc、常规网页浏览等的所有其他流量发送到 eth0。

提前致谢

答案1

这实际上非常简单。

  1. 在 eth1 上设置 DHCP 服务。您需要这个,因为 roku 需要自己的 IP 地址。为此,请选择与您已使用的子网不同的子网。192.168.1.0/24任何私有范围都可以,例如192.168.2.0/24。您可以通过谷歌搜索找到有关如何执行此操作的各种说明。

  2. 激活 IPv4 转发,

    echo 1 > /proc/sys/net/ipv4/ip_forward
    
  3. 在 netfilter 中 MASQUERADE,

    iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
    

就是这样。

答案2

我实际上找到了一种简单的方法,只需使用网络桥接器即可共享 eth0 和 eth1 的互联网连接。由于我已经拥有 vpn 提供商的帐户(IPVanish,他们拥有一级网络),所以我所要做的就是弄清楚如何在两个以太网卡之间共享互联网。

以下步骤是共享互联网连接并在两个以太网网卡之间创建网桥,然后连接到 VPN 提供商。您需要一台 PC 上的两个以太网网卡、一个 server.ovpn 文件以及 VPN 连接的 VPN 提供商用户名和密码。

创建桥梁。

brctl addbr br0

关闭两个接口,因为网卡上不能有 IP 地址。

ifconfig eth0 0.0.0.0 down
ifconfig eth1 0.0.0.0 down

将网卡添加到桥接器。

brctl addif br0 eth0
brctl addif br0 eth1

启动没有 IP 地址的 nic。

ifconfig eth0 up
ifconfig eth1 up

把桥搭起来

ifconfig br0 up

为网桥提供您选择的 IP 地址(例如使用 192.168.0.1)。

ifconfig br0 192.168.0.1

启动与 VPN 提供商的客户端连接

openvpn --config /path/to/vpn/provider/server.ovpn

然后系统会要求您输入 VPN 提供商的用户名和密码。密码不会回显,因此当您看不到任何内容时不要惊慌。正确输入并按 Enter。

现在,连接到 eth1 的任何东西都将使用互联网连接,并通过 eth0 的 vpn。如果您的 isp 调制解调器/路由器有正常工作的 dhcp 服务器,则您连接到 eth1 并请求 ip 地址的任何设备(例如 roku 流媒体播放器)都将自动分配一个。请确保您提供给 br0 的 ip 地址与您的 dhcp 服务器位于同一子网中。

我在此链接。我将其发布在这里,以便对一直在寻找在 Linux 上执行此操作的简单方法的其他人有所帮助。

相关内容