我有一台 Linux 计算机,上面有多张网卡,例如:eth0、eth1、eth2、eth3。有没有办法只通过一个接口(例如 eth0)运行任何下载程序(例如 aria2 或 wget)?
主要问题:由于某种原因,我无法使用 iptables =(
答案1
我认为你可以--bind-address=ADDRESS
在 中使用wget
。至于获取ADDRESS
,你可以单独玩ifconfig <interface_name>
并提取 IP。
ifconfig <interface_name> | grep 'inet addr:' | cut -d: -f2 | awk '{print $1}'
你应该得到类似这样的东西;
wget --bind-address=$(ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{print $1}') {URL}
答案2
您需要定义一条路由,告诉操作系统通过所需的网络接口从本地机器发送数据包。
这将迫使全部通过该接口的流量。我不认为可以逐个应用程序地完成此操作,但我也不是专家……这些都挂在 serverfault.com 上!