我有一个奇怪的问题。 我可以从各种服务器上运行这个命令:
wget --debug '--http-user=USER123' '--http-passwd=PASSWORD' http://GW-BOX:9091/weijhkdsvn/v9_odbc//CRONTAB.2014020
其中“GW-BOX”是networking的网关,USER123和PASSWORD代表weijhkdsvn的用户和密码,9091代表内部Linux服务器。 问题是这个命令超时和/或被拒绝。
wget --debug '--http-user=USER123' '--http-passwd=PASSWORD' http://GW-BOX:9093/weijhkdsvn/v9_odbc//CRONTAB.20140206
端口9093指向一个不同的内部服务器。 请注意,唯一的区别是端口。
所以然后我试图直接从服务器做一个wget,以确保httpconfiguration正确:
wget --debug '--http-user=USER123' '--http-passwd=PASSWORD' http://9091-Server:80/weijhkdsvn/v9_odbc//CRONTAB.20140206
在这种情况下,9091-Server是端口9091引用的内部服务器。 它工作正常。 然后我尝试了相同的命令,但模仿端口9093:
wget --debug '--http-user=USER123' '--http-passwd=PASSWORD' http://9093-Server:80/weijhkdsvn/v9_odbc//CRONTAB.20140206
其中9093-服务器是指9093指向的内部服务器。
所以上面的例子certificate了9093-Server已经正确的设置了http来允许wget,据我所见。 这表明,也许问题是与GW-BOX,所以我用telnettesting端口,端口9091工作正常。
[wmsodbc]> telnet GW-BOX 9091 Trying GW-BOX... Connected to GW-BOX. Escape character is '^]'. ^] telnet> quit Connection closed. [wmsodbc]>
但是端口9093没有工作:
[wmsodbc]> telnet GW-BOX 9093 Trying GW-BOX... telnet: connect to address GW-BOX: Connection refused [wmsodbc]>
那么我检查GW-BOX上的iptables:
[root@wmsgateway ~]# iptables-save | grep "909[13]" -A INPUT -p tcp -m tcp --dport 9091 -j LOG -A INPUT -p tcp -m tcp --dport 9093 -j LOG -A PREROUTING -d GW-BOX-EXTERNAL-IP/32 -p tcp -m tcp --dport 9091 -j DNAT --to-destination 9091-ServerIp:80 -A PREROUTING -d GW-BOX-EXTERNAL-IP/32 -p tcp -m tcp --dport 9093 -j DNAT --to-destination 9093-ServerIp:80 -A POSTROUTING -d 9091-ServerIp/32 -p tcp -m tcp --dport 9091 -j SNAT --to-source GW-BOX-INTERNAL-IP -A POSTROUTING -d 9093-ServerIp/32 -p tcp -m tcp --dport 9093 -j SNAT --to-source GW-BOX-INTERNAL-IP [root@wmsgateway ~]#
那么还有什么可以检查为什么端口9091接受wget / telnet请求,但9093不?
validation问题出在哪里的一种方法是将端口与服务器交换。 ServerA当前具有端口9091并且function正常,ServerB具有端口9093并且失败。 要确定问题是在GW-Box还是服务器本身,请在SNAT的GW-box中围绕iptablesconfiguration。 点9091到ServerB,9093到ServerA。 如果9091继续工作,则说明问题出在9093端口的规则中,因为服务器A和B都在9091上工作,这也可能表示服务器B上的防火墙规则问题。 如果9091失败,但9093有效,则可以安全地假定您的GW-Box运行正常,并且服务器B以某种方式不允许通过WGET访问高端端口,因为您之前已经确认WGET可以直接访问。
首先,你直接在wget上testing服务器的testing,这些testing是从哪里来的? 从原来的主机,或从GW-盒或从一些“第三方”主机?
另外,在GW-box上,您是否检查过其他服务是否使用9093端口? (在gw-box上运行如下所示:
netstat -lnptu | grep 9093
好的,我想出了这个问题。 GW-BOX显然是一个网关盒子。 但正如我在另一个线程中所说的,我无法通过此框访问互联网。 事实certificate,一旦我解决了无法通过这个GW-BOX访问互联网,我能够使用wget就好了。 在我的情况下,根据我刚刚提到的线程,我不得不改变iptables
iptables-save | grep eth -A POSTROUTING -o eth1 -j SNAT --to-source 68.AAA.BBB.155
至
iptables-save | grep eth -A POSTROUTING -o eth2 -j SNAT --to-source 68.AAA.BBB.155
现在的事情工作。 我也设置了全新的端口,但我不认为这是根本原因。
谢谢。 我希望这可以帮助别人。