我已经搜索了有关如何执行此操作的详细信息,但没有成功 - 我想知道是否有人可以提供一些建议。
我有 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
我现在不知道还能尝试什么。帮助?欢迎任何建议。