![linux:如何仅通过 eth0 运行 aria2 或 wget](https://linux22.com/image/1232789/linux%EF%BC%9A%E5%A6%82%E4%BD%95%E4%BB%85%E9%80%9A%E8%BF%87%20eth0%20%E8%BF%90%E8%A1%8C%20aria2%20%E6%88%96%20wget.png)
我有一台 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 上!