桌面系统,两块网卡正常都开启的情况下,流量总是默认走 enp4s0f0,绝对不走 f1,如何设置某些程序走 f1?不会 iptables 命令
manjaro,日常工作电脑,主板上的两个网口各接一个路由器,除非关闭 f0,否则所有流量默认走 f0,绝对不走 f1 (开 iptraf-ng 观测的结果),请问如何在 f0 不关闭的情况下能指定某个程序的流量走 f1 ?两个路由器的内网网段都设置的 192.168.10.x,
manjaro,日常工作电脑,主板上的两个网口各接一个路由器,除非关闭 f0,否则所有流量默认走 f0,绝对不走 f1 (开 iptraf-ng 观测的结果),请问如何在 f0 不关闭的情况下能指定某个程序的流量走 f1 ?两个路由器的内网网段都设置的 192.168.10.x,
如果要所有流量都走 enp4s0f1,运行以下命令
sudo ip route del default
sudo ip route add default via <enp4s0f1 本地 IP> dev enp4s0f1
如果只是部分目标 IP 的流量走 enp4s0f1,比如 123.0.0.0/8 的流量,那么执行
sudo ip route add 123.0.0.0/8 via <enp4s0f1 本地 IP> dev enp4s0f1
要按程序来指定的话,估计只能通过 iptables 了
如果需要的话可以用 systemd-slice 对一组 exec 进行 mark 。或者自己写脚本。
除此之外,还可以用这个方法对单独的进程设置防火墙或者施行 traffic shaping
ref:
这篇博客描述了大概的做法: https://www.evolware.org/?p=369
防止博客崩掉贴上 Archive: https://web.archive.org/web/20201112024042/https://www.evolware.org/?p=369
Arch Wiki – cgroups: https://wiki.archlinux.org/index.php/Cgroups
man pages – cgroups: https://man7.org/linux/man-pages/man7/cgroups.7.html
man pages – ip-route: https://man7.org/linux/man-pages/man8/ip-route.8.html