2014-09-11 4 views
0

Я перенаправлять запросы от порта 6080 на порт 80:Доступ к порту 80 снаружи - Centos

cd /etc/httpd/conf/httpd.conf 

<virtualHost *:80> 
ProxyRequests off 
ProxyPass/http://localhost:6080/ 
ProxyPassReverse/http://localhost:6080/ 
</VirtualHost> 

и у меня есть порт 80 разомкнут:

cd /etc/sysconfig/iptables 

*filter 
:INPUT ACCEPT [0:0] 
:FORWARD ACCEPT [0:0] 
:OUTPUT ACCEPT [2440:360634] 
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p icmp -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT 
-A INPUT -p udp -m state --state NEW -m udp --dport 80 -j ACCEPT 
-A INPUT -p udp -m state --state NEW -m udp --dport 6080 -j ACCEPT 
-A INPUT -j REJECT --reject-with icmp-host-prohibited 
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT 
-A FORWARD -j REJECT --reject-with icmp-host-prohibited 
COMMIT 

и я проверил с netstat сделать уверен, что он слушает.

Когда я использую wget localhost:80 и я получил index.html извлекаться однако, когда я пытаюсь получить HTML из браузера, я получаю: «эта веб-страница не доступна».

Как я могу получить доступ к этому порту извне?

+0

Вы действительно хотели открыть 'udp' порт 80 и 6080? –

+0

Кроме того, и я не делаю apache, поэтому я, конечно, мог бы ошибаться здесь, но это не значит, что перенаправление vhost * от * 80 * до * 6080? –

ответ

1

Эта линия является неправильным:

-A INPUT -p udp -m state --state NEW -m udp --dport 80 -j ACCEPT 

порт 80, предполагают, чтобы быть TCP (не UDP) так, чтобы изменить:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT 

Удалите строку ниже, потому что это не помогает и охватывается выше правилу:

-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT 

Вы действительно хотите порт 6080, подверженную внешним миром? Если не удалить

-A INPUT -p udp -m state --state NEW -m udp --dport 6080 -j ACCEPT 

Я должен отметить, что удаление этой линии, вероятно, не будет ничего больно, потому что он тоже был определен как с помощью UDP и не TCP. Если вы действительно хотите, чтобы он был открыт для внешнего мира, вам также придется изменить его. Обычно, когда вы выполняете проксирование внутри брандмауэра, вы не собираетесь открывать внутренний порт, поэтому я был бы очень подозрительным. Если по каким-то причинам вне моей способности понять вам действительно нужно, чтобы выставить его тоже тогда вам придется изменить линию порта 6080 для:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6080 -j ACCEPT 

Я считаю, он должен выглядеть следующим образом:

*filter 
:INPUT ACCEPT [0:0] 
:FORWARD ACCEPT [0:0] 
:OUTPUT ACCEPT [2440:360634] 
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p icmp -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT 
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT 
-A INPUT -j REJECT --reject-with icmp-host-prohibited 
-A FORWARD -j REJECT --reject-with icmp-host-prohibited 
COMMIT 
0

Похоже, вы пропустили «--state NEW» на линии, где открыть порт 80.

Смежные вопросы