具有用于 VPN 的 IP 和用于正常流量的辅助 IP 的适配器(IP 表)

具有用于 VPN 的 IP 和用于正常流量的辅助 IP 的适配器(IP 表)

无法弄清楚如何路由我的辅助 IP 以使用具有以下设置的 IP 表“mytable”:

    sudo ip route add default via 192.168.1.255 dev enp5s0 table mytable

该表设置在/etc/iproute2/rt_tables

192.168.1.113 我现在尝试使用以下规则将表添加到我的辅助 IP :

    sudo ip rule add from 192.168.1.113 table mytable

但是,命令ip -o route get 192.168.1.113返回:local 192.168.1.113 dev lo table local src 192.168.1.112

我认为这是将辅助 IP 路由回 VPN 隧道。
附加信息:

  • 操作系统:Ubuntu 18.04
  • 路由器网关、ip和dns:192.168.1.254
  • 主 IP:192.168.1.112
  • LAN 适配器enp5s0
  • VPN 是tun0
  • ip r 返回:
    0.0.0.0/1 via 10.8.1.1 dev tun0 
    default via 192.168.1.254 dev enp5s0 proto dhcp metric 20100 
    -EXTERNAL_VPN_IP- via 192.168.1.254 dev enp5s0 
    10.8.1.0/24 dev tun0 proto kernel scope link src 10.8.1.2 
    128.0.0.0/1 via 10.8.1.1 dev tun0 
    169.254.0.0/16 dev enp5s0 scope link metric 1000 
    192.168.1.0/24 dev enp5s0 proto kernel scope link src 192.168.1.112 metric 100 
    192.168.1.0/24 dev enp5s0 proto kernel scope link src 192.168.1.113 metric 100

我研究过这个如何让Apache在连接到VPN时通过某个网络接口输出数据包?

我认为我的问题是错误的路由规则,也可能是我的路由器设置。任何帮助我都会很感激。

提前致谢。

答案1

您错误地使用了 ip route get 命令。

正确的命令是ip route get <dst> from 192.168.1.113,其中<dst>是某个外部主机的 IP 地址(最好运行 tcpdump 并从转储中获取 IP)。

您的规则是正确的,并且命令应该192.168.1.255 dev enp5s0从附加表返回路线。

相关内容