第二个接口不工作

第二个接口不工作

我有 2 个接口。直接以太网连接为 eth0,4g 加密狗为 eth1。

# IP 地址显示

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether e4:5f:01:ad:57:03 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.11/24 brd 192.168.0.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::8cce:6651:6412:c9e4/64 scope link
       valid_lft forever preferred_lft forever

14: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 0c:5b:8f:27:9a:64 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic noprefixroute eth1
       valid_lft 86387sec preferred_lft 75587sec
    inet6 fe80::e34a:4c22:2dbc:6444/64 scope link
       valid_lft forever preferred_lft forever

# IP 路由显示

default via 192.168.0.1 dev eth0 proto dhcp src 192.168.0.11 metric 202
default via 192.168.1.211 dev eth1 proto dhcp src 192.168.1.100 metric 214
192.168.0.0/24 dev eth0 proto dhcp scope link src 192.168.0.11 metric 202
192.168.1.0/24 dev eth1 proto dhcp scope link src 192.168.1.100 metric 214

我的目标是使用 3proxy 将加密狗用作代理服务器,但问题是它不起作用。我使用 curl 测试了加密狗,结果如下。

什么在起作用?

curl ifconfig.me --interface eth0
curl ifconfig.me --interface eth1
curl ifconfig.me --interface 192.168.0.11

什么不起作用?(我希望使用此界面的方式)

curl ifconfig.me --interface 192.168.1.100

如何使我的 eth1 接口使用其本地 IP 地址工作?

答案1

问题在于您同时拥有两个默认网关。请查看您的ip route命令响应。除非需要定义特殊条件时使用特殊的 iproute2 设置和每个接口的单独路由表,否则此设置永远无法正常工作。

删除第一个接口的默认网关,然后很可能就会eth1开始工作。反之亦然。

您可以同时使用两个接口,但系统中只能有一个默认网关,并且必须有一个路由表,其中必须准确描述哪些远程网络应通过该eth0接口路由,哪些远程网络应通过eth1。即便如此,在某些情况下,也存在所谓的非对称路由的风险。

编辑

这是对阿维纳什·萨我的回答之后的评论。

您没有详细说明要通过哪个接口访问哪些网络,因此我的设置示例不够具体。

示例 1

删除接口的默认网关的命令eth0

sudo ip route del default via 192.168.0.1 dev eth0

示例 2

删除接口的默认网关的命令eth1(只能删除一条默认路由,不能同时删除两条):

sudo ip route del default via 192.168.1.211 dev eth1

示例 3

10.5.1.0/24使用eth1接口和路由器地址192.168.1.211(即下一跳地址)为网络添加新路由的命令:

sudo ip route add  10.5.1.0/24 via 192.168.1.211 dev eth1

重要信息

使用该命令进行的所有路由更改都ip仅在 RAM 中进行,并且仅在系统重新启动、接口重新启动或接口断开连接并重新连接之前才适用。这也解释了为什么通过断开并重新连接 4G 加密狗 ( ) 可以恢复问题eth1

永久解决方案(仅使用一个)

  1. 使用 GUI 取消设置使用 DHCP 自动添加的默认网关。转到设置 --> 网络 --> 使用 eth0 连接 --> IPv4 设置。然后关闭自动路由。最后添加新路由(填写表中的行)。
  2. 创建包含所需命令的小脚本ip ...并将其设置为启动后执行。

笔记 使用 iproute2 创建具有条件路由规则的附加路由表也是可能的,但这超出了本答案的范围。

相关内容