强制代理流量通过特定的 3G 适配器接口路由

强制代理流量通过特定的 3G 适配器接口路由

我已经搜索了有关如何执行此操作的详细信息,但没有成功 - 我想知道是否有人可以提供一些建议。

我有 2 个网卡(我的情况是 LAN 和 3G),LAN 是我的主接口(静态),3G 是动态的。

我在计算机上安装了自定义代理服务器,可以通过端口 19000 上的 LAN 静态外部 IP 进行访问。它可以工作,但它是通过我的主 LAN 接口路由的,我需要通过 3G 接口路由此代理流量。

我的接口和路由表如下所示:

eth0      Link encap:Ethernet  HWaddr 0e:93:9f:f1:98:10
          inet addr:10.100.9.35  Bcast:10.100.9.255  Mask:255.255.255.0

eth1      Link encap:Ethernet  HWaddr 02:1e:10:1f:00:00
          inet addr:10.226.59.139  Bcast:10.226.59.143  Mask:255.255.255.248


route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.100.9.1      0.0.0.0         UG    0      0        0 eth0
10.100.9.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
10.226.59.136   0.0.0.0         255.255.255.248 U     0      0        0 eth1

ip route list
default via 10.100.9.1 dev eth0
10.100.9.0/24 dev eth0  proto kernel  scope link  src 10.100.9.35
10.226.59.136/29 dev eth1  proto kernel  scope link  src 10.226.59.139

接口 eth0 是我的 LAN 卡,接口 eth1 是我的 3G 卡。问题还在于,每次重新连接到移动互联网时,3G 接口 IP 都会发生变化,因此 eth1 上的 IP 每次都是不同的。

那么,假设使用squid代理可以将http_port配置为tcp_outgoing_address,但是如果eth1地址每次都会改变,应该设置什么地址?

例如。

http_port 19000
tcp_outgoing_address ?

我做了一个小测试,将一个外部 Web IP 添加到路由表中,然后通过代理访问它,并且它通过 3G eth1 正确路由。

ip route replace 216.146.206.83 dev eth1

但在这种情况下,我应该添加到我的代理服务器,将每个访问的 IP 添加到我的路由表中,并强制它通过 eth1,但这可能会导致路由表中出现大量 IP...

此外,使用 curl 和接口名称数据包通过 eth1 传输,但使用 eth1 接口 IP 时会出现连接超时:

curl --interface eth1 checkip.dyndns.org 
curl --interface 10.226.59.139 checkip.dyndns.org

我现在不知道还能尝试什么。帮助?欢迎任何建议。

相关内容