技术解析

Ubuntu 下有两个网卡, aria2 怎么才能指定绑到哪个网卡呢?
0
1975-02-24 15:40:54
idczone

VPS 上我 ifconfig 看到这样的

enp0s5    Link encap:Ethernet  HWaddr xxxxxxxx  
          inet addr:xxxxxxx  Bcast:xxxxxx  Mask:255.248.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:90 (90.0 B)  TX bytes:282 (282.0 B)

enp0s6    Link encap:Ethernet  HWaddr 00:xxxxxxx  
          inet addr:xxxxxx  Bcast:xxxxx  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6055122 errors:0 dropped:51675 overruns:0 frame:0
          TX packets:56902 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:615157739 (615.1 MB)  TX bytes:72378957 (72.3 MB)

然后我有个 aria2 的配置文件,起了 6800 的端口来远程连接,结果我在本地用 web 页面连接我的 VPS,发现连接不上

我可以确定配置文件是没问题的,因为在别的 VPS 上能正常连接

我猜是不是因为有两个网卡,所以 6800 的端口绑定到 enp0s5 这个网卡上了


监听在 0.0.0.0:6800 即可,如果不行的话,看下是不是防火墙的问题。

执行 > netstat -lnp | grep aria2
输出什么?

配置文件中没有设置监听哪个地址吧?


结果是这个
tcp 0 0 0.0.0.0:6800 0.0.0.0:* LISTEN 669/aria2c

更改路由最方便

可以排除网卡绑定问题,试着从数据链条入手,先试试 telnet 通不通,在检查域名解析、防火墙设置。

如果两个 interface 都是 route 到外网(0.0.0.0),你需要选其一设路由表 route 到 0.0.0.0,不然 MULTI WAN

绑定的 0.0.0.0 地址没有问题,netstat -nr 查看 default route 是多少, 我猜是另外一个网卡, 所以你的请求 vps 收到了但回不来。

怎么更改啊

telnet 确实不通,我 telnet 酸酸的端口是通的,aria2 的就不通,然后域名解析应该没问题吧,毕竟我直接用的 IP,防火墙我关了


看到第一条是这样的
```
0.0.0.0 121.50.44.1 0.0.0.0 UG 0 0 0 enp0s6
```

enp0s5 的 ip 前缀是不是和 enp0s6 相同?看你 enp0s5 的 mask 居然那么大 255.248.0.0。如果两个 ip 前缀相同的话,enp0s6 的路由可能被覆盖掉了。将 5 的 mask 设小一点就可以了


没有看懂你说的,应该是因为我不懂 ip 前缀是啥,mask 是干啥的
我在 /etc/network/interface 文件中,注释掉 enp0s5,重启机器后,也还是不管用的,不知道为啥

这么说吧,2 个 ip 开头几位数字是不是相同的?

aria2c 可以通过参数 --interface 指定绑定到哪个网卡,这个管用吗?

第一个掩码正确吗?没见过这么大的子网

应该是正确的,是 vps 自己配置的,不是我手动配置的

不相同

--interface=什么呢?求教

绑定 比如 interface=pppoe-wan

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服