Wget и переадресация портов

У меня странная проблема. Я могу просто запустить эту команду с разных серверов:

wget --debug '--http-user=USER123' '--http-passwd=PASSWORD' http://GW-BOX:9091/weijhkdsvn/v9_odbc//CRONTAB.2014020

Где "GW-BOX" - это шлюз в моей сети, USER123 и PASSWORD представляют пользователя и пароль для weijhkdsvn, а 9091 указывает на внутренний сервер Linux. Проблема в том, что эта команда истекает и / или отклоняется.

wget --debug '--http-user=USER123' '--http-passwd=PASSWORD' http://GW-BOX:9093/weijhkdsvn/v9_odbc//CRONTAB.20140206

Порт 9093 указывает на другой внутренний сервер. Обратите внимание, что единственным отличием является порт.

Затем я попытался сделать wget непосредственно с сервера, чтобы убедиться, что http настроен правильно:

wget --debug '--http-user=USER123' '--http-passwd=PASSWORD' http://9091-Server:80/weijhkdsvn/v9_odbc//CRONTAB.20140206

В этом случае 9091-сервер является внутренним сервером, к которому относится порт 9091. Работает нормально. Затем я попробовал ту же команду, но имитируя порт 9093:

wget --debug '--http-user=USER123' '--http-passwd=PASSWORD' http://9093-Server:80/weijhkdsvn/v9_odbc//CRONTAB.20140206

где 9093-Сервер относится к внутреннему серверу, на который указывает 9093.

Таким образом, приведенные выше примеры доказывают, что 9093-Server правильно настроил http для разрешения wget, насколько я вижу. Это говорит о том, что, возможно, проблема в GW-BOX, поэтому я протестировал порты с помощью telnet, и порт 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]>

Итак, я проверил iptables на GW-BOX:

[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 - нет?

3 ответа

Хорошо, я понял проблему. Очевидно, GW-BOX предназначен для шлюзов. Но, как я сказал в другой ветке, я не мог получить доступ к Интернету через эту коробку. Оказывается, как только я исправил невозможность доступа в Интернет через этот 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

и теперь все работает. Я также настроил совершенно новые порты, но я не думаю, что это было основной причиной.

Благодарю. Я надеюсь, что это помогает кому-то еще.

Во-первых, тест, который вы провели непосредственно на серверах wget, откуда были сделаны эти тесты? с оригинального хоста, или с GW-box, или с какого-то "стороннего" хоста?

Кроме того, на GW-box вы проверяли, используют ли другие сервисы порт 9093? (на gw-box запустите что-то вроде:

netstat -lnptu | grep 9093

Один из способов проверить, где проблема, - это поменять порты на серверах. Сервер A в настоящее время имеет порт 9091 и работает правильно, сервер B имеет порт 9093 и дает сбой. Чтобы определить, находится ли проблема в GW-Box или на самом сервере, включите конфигурацию iptables в GW-Box для SNAT. Точка 9091 для сервера B и 9093 для сервера A. Если 9091 продолжает работать, вы знаете, что проблема в правиле для порта 9093, поскольку сервер A и B работают на 9091, это также может указывать на проблему правила брандмауэра на сервере B. Если 9091 дает сбой, но 9093 работает, вы можете с уверенностью предположить, что ваш GW-Box работает правильно, и что Сервер B почему-то не разрешает портам верхнего диапазона доступ через WGET, поскольку вы ранее подтвердили, что WGET доступен напрямую.

Другие вопросы по тегам