如何通过 vpn 适配器路由所有流量?

如何通过 vpn 适配器路由所有流量?

我正在使用 SoftEther,但这可能无关紧要。

我有以下适配器:

vpn_myadapter: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 [redacted]  prefixlen 64  scopeid 0x20<link>
        ether [redacted]  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

我有以下路线:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         dslrouter.netge 0.0.0.0         UG    600    0        0 wlp4s0
link-local      0.0.0.0         255.255.0.0     U     1000   0        0 virbr0
192.168.123.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
192.168.254.0   0.0.0.0         255.255.255.0   U     600    0        0 wlp4s0

我需要知道如何轻松使用 Ubuntu 通过我的 VPN 适配器路由所有互联网流量。

答案1

该答案假设您已经成功连接您的帐户并拥有一个可用的适配器。

好的,在仔细查看了有关 IP 表/路由的教程后,我找到了可以与 SoftEther 配合使用的解决方案,该解决方案应该可以与其他 VPN 适配器配合使用,以通过该适配器隧道传输流量。

从运行开始 ip neigh 获取你的VPN网络的默认网关以及这个网络的默认网关。您还需要远程服务器 IP。如果这不能为您提供信息,请在您的 VPN 适配器的 IP 上运行ifconfig并获取。tcpdump

您可以轻松地将以下步骤组合成 bash 脚本和/或反转它们以断开 VPN 适配器:

首先,您需要使用以下命令从服务器获取 DHCP 信息:

sudo dhclient vpn_myadapter

vpn_myadapter是可以用 找到的适配器名称ifconfig

其次,您必须创建一条从 VPN 服务器的 IP 地址到本地互联网网关的路由,以便您访问互联网。55.55.55.55是我将用作示例服务器地址的地址。此外,您还需要知道您的互联网连接和 VNA(虚拟网络适配器)的适配器名称,您可以使用 找到它们ifconfig。您还可以使用邻居获取适配器及其网关的简明列表。

创建从 VPN IP 到本地网关的路由的命令(此示例中为 192.168.0.1)

sudo ip route add 55.55.55.55/32 via 192.168.0.1 dev eth0

确保 eth0 设置为与本地网关对应的适配器

接下来,您将删除默认路由所有流量的默认路由。

sudo ip route del default

现在您将添加一个默认路由,该路由将使用VPN 的默认网关。此信息可以从您的提供商、您设置的服务器或使用 、 和 的组合来收集tcdumpip neigh此时ifconfig您可能能够找到信息,但ip neigh如果您现在无法找到信息,您应该在开始时就运行。我将使用 SoftEther 提供的默认网关,即192.168.30.1

sudo ip route add default via 192.168.30.1 dev vpn_myadapter

这应该会将您的所有流量路由到远程网络。如果您仍然无法连接到互联网DhcpEnable,则需要在您的服务器上运行SecureNatEnable(您不应该运行,但可能需要运行,NatEnable具体取决于您的配置),如果您在通过这些步骤连接客户端后无法使 dhcp 或互联网正常工作,或者您的dhclient命令不起作用。我不确定您的服务器更新后是否需要重新启动。

编辑:SecureNatEnable将启用 NAT 和 DHCP。

相关内容