我正在使用 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 的默认网关。此信息可以从您的提供商、您设置的服务器或使用 、 和 的组合来收集tcdump
。ip 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。