我有两个互联网连接,我想使用它们,但其中一个是专门用于工作。我想知道是否有可能让我有一个活动使用一个网络设备/连接,另一个使用默认连接。
我家里有有线连接,还有预配置为公司 VPN 的无线连接。无线连接是非常慢有时,每次我想利用每个网络来满足我的需要时,手动切换互联网连接是很麻烦的。
理想情况下,我希望有一个活动,其中的所有内容自动知道使用无线连接,而另一个活动知道使用有线连接(因为两者可以同时连接)。如果活动不是解决这个问题的方法,有没有办法说“X 应用程序的网络流量通过 Y 设备”?
这是我的屏幕抓取输出,希望它有用。
OS: Ubuntu 20.04 focal
Kernel: x86_64 Linux 5.4.0-122-generic
Uptime: 56m
Packages: 3273
Shell: zsh 5.8
Resolution: 2560x1440
DE: KDE 5.68.0 / Plasma 5.18.8
WM: KWin
GTK Theme: Breeze [GTK2/3]
Icon Theme: breeze-dark
Disk: 117G / 261G (47%)
CPU: AMD Ryzen 7 3800X 8-Core @ 16x 3.9GHz
GPU: NVIDIA GeForce RTX 2080 SUPER
RAM: 4682MiB / 64281MiB
我认为这个问题没有解决办法,我需要写一个脚本或者其他东西。如果有人知道解决办法,那就太好了!
答案1
我认为,这个任务没有简单的解决方案。
警告
在检查所提出的解决方案之前,请确保连接和应用程序的缓慢不是由以下原因引起的:计算机上两个默认网关的问题。
不幸的是,一台计算机经常会在两个网络接口的一个基本路由表中同时有两个默认网关。这经常会造成麻烦、意外连接中断、通信速度变慢等。可能会发生所谓的非对称路由。有时两个接口中的一个会完全停止工作。要检查,请使用以下命令:
ip route
不应该出现两行包含单词的情况默认在命令输出中:
default via 10.1.1.1 dev eth1 proto dhcp metric 100
default via 192.168.1.1 dev wlan0 proto dhcp metric 600
例外是特殊情况,其中扮演界面管理员角色的用户知道自己在做什么以及为什么这样做。
以下提议并不描述两个默认网关问题的解决方案,而是针对只有一个默认网关并且某些远程目标网络或单个地址的路由设置不正确的情况。
选项 1:修改路由
1a:获取信息
找出您的业务应用程序与之通信的目标 IP 地址和网络。
显示命令路由表会帮助你。
ip route
在列表中,您将找到将数据包发送到 VPN 隧道的路径以及与隧道无关的其他路径。这些隧道路由中包含隧道接口的名称,例如tun0
:
示例“隧道”路线:
10.88.0.0/13 dev tun0 scope link
10.150.80.0/24 dev tun0 scope link
示例非隧道路线:
default via 10.1.1.1 dev eth1 proto dhcp metric 100
10.1.1.0/24 dev eth1 proto kernel scope link src 10.1.1.110 metric 100
查找公司地址的另一种方法是使用 Wireshark,捕获网络数据,并查看相互通信的地址对。一个地址将始终在您的 PC 上,另一个地址将是远程的。您有 2 个连接,这是两个本地地址,因此您需要使用两个 Wireshark 实例捕获两个接口上的数据。
公司(工作)申请及目的地示例:
- 邮件服务器
- 文件服务器
- 公司门户网站
- 目录控制器和服务
- ETC。
您可能会发现您只能通过 VPN 访问某些网络(例如 10.0.0.0/8、172.16.0.0/12、192.168.0.0/1),而所有其他通信都会转移到 VPN 之外,即转移到 Internet。
请注意,当 VPN 隧道启动时,新的路由会添加到系统中,解决方案必须考虑到这一点。
1b:更改路由并测试连接
修改路由规则。原始路由列表是通过ip route
上述命令获得的。必须设置新路径,以便任何不应该通过 VPN 隧道的内容都通过主快速接口路由出去。
1c:使更改持久或易于重新应用
更改路由规则的命令必须写入脚本(例如简单的 bash 脚本)。然后,每次在与公司建立 VPN 隧道连接后,您都将运行该脚本。修改后的路由可以加快那些通过隧道进行通信但实际上不是公司、不需要隧道并可以直接访问互联网的服务和应用程序的运行速度。
选项 2:分离两台机器的应用程序和连接
安装虚拟化平台(VMware、VirtualBox……)并在您的电脑中创建新的虚拟机(VM)。
在主机和客户机 (VM) 设置中,确保业务应用程序及其通信集中在仅使用无线连接的虚拟机中,其他非业务应用程序位于主机或第二个虚拟机中,并通过快速接口进行通信。然后,VPN 隧道将在第一个虚拟机上启动,其数据将通过 VPN 隧道和无线接口传输。