免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 11208 | 回复: 21
打印 上一主题 下一主题

[网络管理] 单网卡双ip的端口绑定的奇怪问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-11 21:35 |只看该作者 |倒序浏览
100可用积分
现在问题是这样,我在redhat9的一个网卡上邦定了
eth1:   1.2.3.4  教育网
eth1:1 :5.6.7.8  网通

然后开了apache 80端口,apache并没有绑定ip,只是在http.conf中指定了80端口,但就我在服务器上telnet实验来看,
可以telnet 1.2.3.4的80端口,但是连不上5.6.7.8的端口,估计是默认邦定到1.2.3.4ip上了,不过在服务器上运行下面命令,他指出是0.0.0.0不知有什么深层含义
# netstat -an|grep 80

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN


不好意思下面说的可能比较混乱,我把现象和我的判断可能会混到一块,我真的晕了...

现在在apache上邦定了设置了两个虚拟主机,名字是1.2.3.4:80
<VirtualHost 1.2.3.4:80>
DocumentRoot /var/www/html/cdir
ServerName  a.com
    RewriteRule /list([0-9]+).shtml http://a.com/list.php?$1 [P]

</VirtualHost>
<VirtualHost 1.2.3.4:80>
DocumentRoot /var/www/html/cdir
    RewriteRule /list([0-9]+).shtml http://b.com/list.php?$1 [P]
ServerName  b.com
</VirtualHost>
然后将域名
a.com指向1.2.3.4
b.com指向5.6.7.8

下面说现象:
网通用户通过b.com访问的话,有的可以访问到,有的不可以,现在都没办法定位原因...如果不能访问,apache日志会出现
(110)!!!!!!!!: proxy: HTTP: attempt to connect to 5.6.7.8:80 (b.com) failed
[error] (110)Connection timed out: proxy: HTTP: attempt to connect to5.6.7.8:80 (b.com) failed
显然它试图去连接5.6.7.8的80端口,必然应该连不上的,因为我在服务器上都连不上5.6.7.8的80


现在奇怪的是:
1,为什么有的网通用户可以连接而有些不可以,应该不是用户那边防火墙的原因,毕竟端口是80
2,后来想想我设置也有问题,5.6.7.8没在80端口监听,我将b.com解析到这个ip不是一定会访问不到嘛,可是有的网通用户却访问到了...
3,为什么上面的错误信息会出现在apache的日志里呢?难道是apache代理访问? 这就更晕了,首先我搞不明白mod_proxy模块到底怎么工作的,其次mod_proxy也没有激活,只是配置文件里加载了.so文件而已,应该不会起作用把?
4, 我在教育网(另外一个高校的教育网)telnet 5.6.7.8的80端口是,结果是--竟然连上了!  这个就更让我晕了...为什么可以连上?服务器本地连不上,部分网通用户都连不上,我在教育网为什么连上了? 5.6.7.8的80端口到底是算开了还是没开呢??



还请不吝赐教非常感谢!!!CU现在可以送分了呵呵,送100吧!

[ 本帖最后由 deadcat 于 2007-3-12 09:09 编辑 ]

最佳答案

查看完整内容

给你一个思路:如果可能,将防火墙停止,然后在本机 ping 5.6.7.8看看是不是通还有,按照你的路由信息,那么外网用户访问5.6.7.8的时候,都是通过1.2.3.2这个网关发送数据包的。正常情况下你应该让教育网的用户走这个网关,而其他用户走网通的网关(也许电信用户也应该走教育网的网关,因为电信和网通互联是个问题)你可以在机器上使用策略路由,使得访问1.2.3.4的时候走教育网的网关,访问5.6.7.8的时候走网通的网关(不管来源在 ...

论坛徽章:
0
2 [报告]
发表于 2007-03-11 21:35 |只看该作者
给你一个思路:

如果可能,将防火墙停止,然后在本机 ping 5.6.7.8看看是不是通

还有,按照你的路由信息,那么外网用户访问5.6.7.8的时候,都是通过1.2.3.2这个网关发送数据包的。正常情况下你应该让教育网的用户走这个网关,而其他用户走网通的网关(也许电信用户也应该走教育网的网关,因为电信和网通互联是个问题)

你可以在机器上使用策略路由,使得访问1.2.3.4的时候走教育网的网关,访问5.6.7.8的时候走网通的网关(不管来源在哪儿)
ip route add default via 网通网关 table 100 src 5.6.7.8
ip route add default via 教育网网关 table 200 src 1.2.3.4

ip rule add from 1.2.3.4 table 200
ip rule add from 5.6.7.8 table 100

这样设置以后,就可以各走各的道了

还有,你的防火墙策略上有:
-A INPUT -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT
你试试改成 -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

还有,你的INPUT链的策略是DROP
那么你应该添加一条规则
iptables -A INPUT -i lo -j ACCEPT,这样在本机ping本机的任何IP的时候才能畅通无阻。

还有,不知道你的网络拓扑结构,我只是奇怪,你在一个物理网卡上绑定两个ISP的IP地址,怎么会这样?

按道理,教育网和网通是隔绝的,难道你是将教育网的入口和网通的入口线接到同一个HUB上了?

论坛徽章:
0
3 [报告]
发表于 2007-03-11 21:47 |只看该作者
贴一下执行下列命令后得到的内容
# ifconfig -a
# ip r
# iptables-save

论坛徽章:
0
4 [报告]
发表于 2007-03-11 22:00 |只看该作者
不好意思老大出于安全考虑我把ip都替换了一下,ip对应关系没变,比如1.2.3.4和1.2.3.2是同一网段的
如果需要真实信息再短信联系,谢谢

ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:0BB:E7:83:2F
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:17

eth1      Link encap:Ethernet  HWaddr 00:0BB:E7:83:30
          inet addr:1.2.3.4  Bcast:1.2.3.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:29232722 errors:0 dropped:0 overruns:0 frame:3
          TX packets:28982203 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:673017438 (641.8 Mb)  TX bytes:3795027782 (3619.2 Mb)
          Interrupt:18

eth1:1    Link encap:Ethernet  HWaddr 00:0BB:E7:83:30
          inet addr:5.6.7.8  Bcast:5.6.7.255  Mask:255.255.255.192
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:29232722 errors:0 dropped:0 overruns:0 frame:3
          TX packets:28982203 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:673017438 (641.8 Mb)  TX bytes:3795027782 (3619.2 Mb)
          Interrupt:18

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:40060958 errors:0 dropped:0 overruns:0 frame:0
          TX packets:40060958 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:3559556462 (3394.6 Mb)  TX bytes:3559556462 (3394.6 Mb)



ip r
5.6.7.6/26 dev eth1  proto kernel  scope link  src 5.6.7.8
1.2.3.0/24 dev eth1  scope link
169.254.0.0/16 dev eth1  scope link
127.0.0.0/8 dev lo  scope link
default via 1.2.3.2 dev eth1



*filter
:INPUT DROP [17478:1506600]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [66407674:23767507507]
ORT01_IN - [0:0]
ORT01_OUT - [0:0]
ORT02_IN - [0:0]
ORT02_OUT - [0:0]
ORT03_IN - [0:0]
ORT03_OUT - [0:0]
ORT04_IN - [0:0]
ORT04_OUT - [0:0]
ORT05_IN - [0:0]
ORT05_OUT - [0:0]
:PORT06_IN - [0:0]
:PORT06_OUT - [0:0]
:PORT07_IN - [0:0]
:PORT07_OUT - [0:0]
:PORT08_IN - [0:0]
:PORT08_OUT - [0:0]
:PORT09_IN - [0:0]
:PORT09_OUT - [0:0]
:PORT10_IN - [0:0]
:PORT10_OUT - [0:0]
:PORT11_IN - [0:0]
:PORT11_OUT - [0:0]
:PORT12_IN - [0:0]
:PORT12_OUT - [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 127.0.0.0/255.255.255.0 -j ACCEPT
-A INPUT -s 1.2.3.2 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 8080 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 20 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 47 -j ACCEPT
-A INPUT -p 47 -j ACCEPT
-A INPUT -i tun+ -j ACCEPT

-A INPUT -p tcp -m tcp --dport 80 -j PORT03_IN
-A OUTPUT -p tcp -m tcp --sport 80 -j PORT03_OUT
COMMIT
# Completed on Sun Mar 11 21:52:17 2007
# Generated by iptables-save v1.2.7a on Sun Mar 11 21:52:17 2007
*nat
:PREROUTING ACCEPT [620661:34213933]
:POSTROUTING ACCEPT [880194:53435164]
:OUTPUT ACCEPT [880194:53435164]
COMMIT

论坛徽章:
0
5 [报告]
发表于 2007-03-11 22:03 |只看该作者
1、0 0.0.0.0:80 是指在本机所有网络接口的80端口进行侦听。

2、检查你的apache配置文件:
NameVirtualHost 1.2.3.4
NameVirtualHost 5.6.7.8

<VirtualHost 1.2.3.4:80>
DocumentRoot /var/www/html/cdir
ServerName  a.com
    RewriteRule /list([0-9]+).shtmlhttp://a.com/list.php?$1 [P]

</VirtualHost>
<VirtualHost 5.6.7.8:80>
DocumentRoot /var/www/html/cdir
    RewriteRule /list([0-9]+).shtmlhttp://b.com/list.php?$1 [P]
ServerName  b.com
</VirtualHost>

然后在服务器上用任何一个浏览器访问一下上述两个域名的http服务,比如lynx a.com,lynx b.com

3、建议检查一下路由表和防火墙规则的设置,可以先把防火墙规则都清空测试一下。

[ 本帖最后由 pangty 于 2007-3-11 22:04 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2007-03-11 22:24 |只看该作者
谢谢,原来VirtualHost 1.2.3.4:80名字中的ip是有实际意义的,明天让外面的朋友再帮忙测一下,防火墙还不敢清空,机器在外地,万一写错了....
现在我在服务器上ping 5.6.7.8都ping不通,看来根apache没关系?好像virtualhost不改他一样找到了5.6.7.8但是就是连不上? 可奇怪的是有的能连上有的连不上 ,本地自己都连不上别人却可以连上...本地连不上是不是因为它用教育网的ip去联结网通的ip会出问题? 也不应该呀 默认网关是1.2.3.4那个网段的

可防火墙的规则也不至于限制本机的吧,上面我贴的应该是所有的规则了吧?

论坛徽章:
0
7 [报告]
发表于 2007-03-11 23:00 |只看该作者
奇怪,你顶楼说 eth0 是 1.2.3.4,eth1 是 5.6.7.8
但后面配置贴出来的却是 1.2.3.4 和 5.6.7.8 都在物理网卡 eth1 上
防火墙虽然很乱,但不足以造成这个影响

论坛徽章:
0
8 [报告]
发表于 2007-03-12 07:44 |只看该作者
检查一下网关的设置

[ 本帖最后由 llzqq 于 2007-3-12 07:45 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2007-03-12 08:24 |只看该作者
首先你的虚拟主机设置是不对的。<VirtualHost 1.2.3.4:80>
这里指的是listen的主机IP。按你的意思是这是教育网的。而你原来的配置也就是一楼贴出来的。
二个虚拟主机都指向了<VirtualHost 1.2.3.4:80>!!!
所以正确的配置是像4楼那个配置就正确了。用域名来配置!!!
第二个错误:就是版主所说的一样,你的IP设置不对,本来你的意思是eth0是教育网的IP,eth1是网通的IP。但是你设置成了eth0无IP。eth1IP是教育网IP。eth1绑定了二个IP。!!
解释:
1:proxy模块,你完全可以不要用。用#号搞掉好了,这个是用来把apaceh配置成http代理用的模块。

[ 本帖最后由 ipv6ok 于 2007-3-12 08:54 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2007-03-12 09:10 |只看该作者
原帖由 platinum 于 2007-3-11 23:00 发表于 6楼  
奇怪,你顶楼说 eth0 是 1.2.3.4,eth1 是 5.6.7.8
但后面配置贴出来的却是 1.2.3.4 和 5.6.7.8 都在物理网卡 eth1 上
防火墙虽然很乱,但不足以造成这个影响

实在实在抱歉 ,昨天太慌eth0习惯性的给加上ip了。。。
eth1:   1.2.3.4  教育网
eth1:1 :5.6.7.8  网通
原贴已经改正
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP