双ip双网卡,如何指定工作ip

visualassist4680 2010-11-18 04:57:00
linux 服务器双ip双网卡,服务器如何实现监听一个端口,然后用不同的Ip向不同的客户端发送数据.
比如有 电信网卡ip 1.1.1.1 网通网卡ip 2.2.2.2 我现在想 监听 8080,
当有 网通客户连接进来,我使用 网通ip 2.2.2.2 向网通客户发送数据
当有 电信客户连接进来,我使用 电信ip 1.1.1.1 向电信客户发送数据
有可能实现吗?
...全文
897 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
baocuo1314 2010-11-19
  • 打赏
  • 举报
回复
或者说 需要CDN..

单方面在服务器 配置方面 是做不到的。。
baocuo1314 2010-11-19
  • 打赏
  • 举报
回复
以上可以做到 数据出去时走的线路~~

但是 你在外面控制不到 客户进来时选择的线路!!!

比如说 你服务器在外面的域名是 aaa.com 然后有2条主机记录 电信1.1.1.1 网通2.2.2.2

当客户端连接 aaa.com 开始发送域名请求。。

这个时候 DNS 就随机发送响应 可能是1.1.1.1 也可能是2.2.2.2

所以。。这个在本地做不到 需要那个 智能DNS
lgch123456 2010-11-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lgch123456 的回复:]

引用 6 楼 lgxwqq111 的回复:

http://www.chinaunix.net/jh/13/711346.html
http://hi.baidu.com/xingel/blog/item/e38890169da2614220a4e999.html
lz应该是要的这个效果吧,我实习的公司就是双链路,

在程序里加个自动判断线路
然后自己选择
[/Quote]

类似也javascript中坚持浏览器的版本然后执行不同的代码段
lgch123456 2010-11-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lgxwqq111 的回复:]

http://www.chinaunix.net/jh/13/711346.html
http://hi.baidu.com/xingel/blog/item/e38890169da2614220a4e999.html
lz应该是要的这个效果吧,我实习的公司就是双链路,
[/Quote]
在程序里加个自动判断线路
然后自己选择
freetstar 2010-11-18
  • 打赏
  • 举报
回复
http://www.chinaunix.net/jh/13/711346.html
http://hi.baidu.com/xingel/blog/item/e38890169da2614220a4e999.html
lz应该是要的这个效果吧,我实习的公司就是双链路,自动判断线路然后自己选择
visualassist4680 2010-11-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 steptodream 的回复:]

又看了一遍 原来你的要求就是双线!
通过路由应该可以解决
参考http://liuleijsjx.javaeye.com/blog/728246
http://hi.baidu.com/%E5%D0v%D2%A3v%BC%B2v%B7%E7/blog/item/47ac803e0a1dddcc9e3d62e2.html
[/Quote]
是不是,不用修改程序,只需要修改linux 配置文件就可以保证 电信ip连接 电信服务器,网通ip连接网通服务器?
文章没看太懂,文章中这段 :
2. 策略路由方式

为了方便,我们增加2个策略路由表,电信 => 100,网通 => 200,这样再添加规则时,就可以直接用自定义的名称来替代数字

echo "100 ctc" >> /etc/iproute2/rt_tables
echo "200 cnc" >> /etc/iproute2/rt_tables

1)设置默认路由(电信)
ip route replace default via 电信网关 dev eth1

2)对网通进行基于目的地址的策略路由
ip rule add to 网通路由表1 table cnc prio 100
ip rule add to 网通路由表2 table cnc prio 100
....

3)添加原路返回路由

ip route flush table ctc
ip route add default via 电信网关 dev eth1 src 电信IP table ctc
ip route add 192.168.0.0/24 dev eth0 scope link src 192.168.0.1 table ctc
ip rule add from 电信IP table ctc

ip route flush table cnc
ip route add default via 网通网关 dev eth2 src 网通IP table cnc
ip route add 192.168.0.0/24 dev eth0 scope link src 192.168.0.1 table ctc
ip rule add from 网通IP table cnc

是不是就是我想要的效果?刚接触 linux,很多不懂
谢谢
visualassist4680 2010-11-18
  • 打赏
  • 举报
回复
接上,如何确保 连接电信ip 3.3.3.3 使用电信ip 1.1.1.1
连接网通ip 4.4.4.4 使用 网通ip 2.2.2.2
简单点说就是如果确保该服务器主动连接电信机器时,使用电信ip;
主动连接网通机器时,使用网通ip.
谢谢
visualassist4680 2010-11-18
  • 打赏
  • 举报
回复
使用两个socket不同的socket绑定不同ip,是没有问题.
如果使用一个 socket 能否实现呢? 绑定 0.0.0.0 是否可行
还有一个疑问,就是 如果服务器主动连接别的机器,会使用那个ip
比如这个双网卡双ip服务器主动连接 电信ip 3.3.3.3 是用哪个ip连接?
主动连接 网通ip, 4.4.4.4 是用哪个ip连接?
谢谢
steptodream 2010-11-18
  • 打赏
  • 举报
回复
又看了一遍 原来你的要求就是双线!
通过路由应该可以解决
参考http://liuleijsjx.javaeye.com/blog/728246
http://hi.baidu.com/%E5%D0v%D2%A3v%BC%B2v%B7%E7/blog/item/47ac803e0a1dddcc9e3d62e2.html
steptodream 2010-11-18
  • 打赏
  • 举报
回复
这不是你程序控制的么? 程序指定在哪个地址绑定 就在哪个地址绑定!

23,124

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧