我正在研究一种使用第三方 VPN 连接来处理我本地网络上的某些流量的方法,我创建了一个小型 Debian VM(192.168.1.54),它连接到我的第三方 VPN,并且我网络上的其他设备能够通过该 VM 进行路由以使用 VPN。
在我的网络上的其他设备上,当我将默认网关设置为路由器 (.1) 或 Debian VM (.54) 时,延迟/速度都相当不错。然而,在第二个 Debian VM (.64) 上,我创建了一个辅助路由表,但其性能似乎不如我所愿。
我已经为 UID = 1001 的特定用户设置了路由表,这意味着我可以使用此 UID 运行进程,以通过 VPN VM 路由流量。但是通过此辅助路由表的流量非常慢。
我确信这是我的相当基本的路由表级别让我失望了,但我已经运行了以下命令:
1. echo 200 vpntable >> /etc/iproute2/rt_tables
2. ip route add 0.0.0.0/0 via 192.168.1.54 table vpntable
3. ip rule add uidrange 1001-1001 lookup vpntable
几个相关命令的输出如下:
$ uname -a
Linux ServerDebVM 5.10.0-18-amd64 #1 SMP Debian 5.10.140-1 (2022-09-02) x86_64 GNU/Linux
$ ip rule
0: from all lookup local
32765: from all uidrange 1001-1001 lookup vpntable
32766: from all lookup main
32767: from all lookup default
$ ip route list
default via 192.168.1.1 dev ens18 proto dhcp metric 100
172.18.0.0/16 dev br-a153dd5b3f53 proto kernel scope link src 172.18.0.1
192.168.1.0/24 dev ens18 proto kernel scope link src 192.168.1.64 metric 100
$ ip route list table vpntable
default via 192.168.1.54 dev ens18
$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
$ ip -d address show ens18
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether a2:fb:31:95:6d:56 brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 68 maxmtu 65535 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
altname enp0s18
inet 192.168.1.64/24 brd 192.168.1.255 scope global dynamic noprefixroute ens18
valid_lft 84600sec preferred_lft 84600sec
inet6 fe80::a0fb:31ff:fe95:6d56/64 scope link noprefixroute
valid_lft forever preferred_lft forever
再补充一点背景知识,我以前在路由器上使用 DD-WRT,但现在对我来说这真的不是一个选择。此外,我可以在网络上的每台机器上安装第三方 VPN 客户端,但我只能使用 5 台设备。
谢谢