我有两个互联网连接,一个互联网连接的延迟非常高,连接有波动(塔和 Wifi CPE 之间有一棵树,所以信号时好时坏),但下载没问题,因为连接从未降为 0。另一个是固定电话连接,它们有很强的下载限制。
所以我想要的是使用 wlan0 来运行一些特定的程序,比如 steam 和下载等,这些程序基本上都会消耗大量的数据。
我想使用 wlan1 进行浏览和其他操作,较少的数据。
简而言之,我想通过特定的 NIC 路由特定的程序,我没有特定的 IP 范围。
我可以通过 wifi 连接它们两个,因为我有一个额外的 wifi 适配器(wlan0、wlan1),另一个选择是,我可以通过以太网连接一个(wlan0、eth0)
答案1
如果你的流程有某些问题iptables
可以匹配,例如特定组。例如,给定一个组to-wifi
,你可以有如下 iptables 规则:
iptables -A FORWARD --in-interface wlan0 -j ACCEPT
iptables -t nat -A OUTPUT -m owner --gid-owner to-wifi --out-interface wlan0 -j MASQUERADE
(并且启用转发:sysctl -w net.ipv4.conf.all.forwarding=1
。)
然后,如果您运行 Steam 等,如下所示:
sg to-wifi steam
来自该 Steam 进程(+ 任何子进程)的任何流量都将从其所经过的接口转发到无线接口。
我从未尝试过接口到接口的重定向,但我曾经iptables
通过匹配组将所有 TCP 流量从 Steam 重定向到代理,因此这些规则本身可能还不够。
这可以通过为每个接口创建组并将自己添加到其中来实现。例如,使用addgroup
和adduser
命令:
sudo addgroup to-wifi
sudo adduser $USER to-wifi
sudo addgroup for-eth0
sudo adduser $USER for-eth0
您需要重新登录才能使新的群组成员资格生效。
有关的:
答案2
据我所知,没有办法做到这一点。
这可以通过在特定端口+ 他们用来建立连接的目的地,但我不知道当地如何做到这一点。