从外面进入80端口 - Centos

时间:2014-09-11 19:45:36

标签: centos request port

我正在将请求从端口6080重定向到端口80:

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时,我得到:  “此网页无法使用”。

如何从外部访问此端口?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

看起来你在打开端口80的行上缺少'--state NEW'。