원격 위치에서 포트 80에 액세스 할 수 없지만 로컬에서 작동합니까?


14

아파치 구성에 리눅스 서버가 있습니다. 그러나 원격 컴퓨터를 사용하여 액세스 할 수 없습니다.

정상적으로 서버에 ssh 할 수 있습니다.

내 IP 테이블 :

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

netstat -ant

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN
tcp        0      0 SERVERIP:80                 0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:45117               0.0.0.0:*                   LISTEN
tcp        0    196 SERVERIP:22                 MyIP:3149                   ESTABLISHED
tcp        0      0 :::111                      :::*                        LISTEN
tcp        0      0 :::22                       :::*                        LISTEN
tcp        0      0 :::47193                    :::*                        LISTEN

사용 Curl SERVERIP:80curl localhost:80아파치에서 모두 반환 기본 페이지를.

무엇이 문제 일 수 있습니까?

답변:


26

현재 iptables에 의해 차단되고 있으므로 포트 80에서 서버에 액세스 할 수 있어야합니다.

sudo /sbin/iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT

시작시 규칙을 iptables 구성에 삽입합니다. 이 작업을 수행하고 작동하는지 테스트 한 후에는 다음에 서비스가 시작될 때 사용되도록 구성을 저장해야합니다.

sudo /sbin/service iptables save

현재 구성이에 기록됩니다 /etc/sysconfig/iptables.

CentOS 7을 사용하는 경우 FirewallD가 올바른 방법입니다.

firewall-cmd --zone = public --add-port = 80 / tcp

브라우저에서 작동하는지 확인한 후 다음을 수행하십시오.

firewall-cmd --zone = public --add-port = 80 / tcp-영구적

firewall-cmd --reload

영구적으로 변경하려면


1

iptables 규칙은 포트 22에서 들어오는 연결 만 허용합니다. 포트 80도여십시오.


... 그리고 cmd는iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
onik

...이 규칙은 이전에 수락하지 않은 모든 들어오는 연결을 거부하는 규칙 뒤에 추가되기 때문에 정확하지만 작동하지 않습니다.
Paweł Brodacki

사실, 규칙 파일에 올바른 위치에 파일을 추가하는 데 익숙했습니다. iptables -D FORWARD -j REJECT --reject-with icmp-host-prohibited, 그런 다음 이전에 다음을 사용하여 모든 거부 규칙을 추가합니다.iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
onik

0

기본 http 서비스를 직접 사용할 수도 있습니다

firewall-cmd-영구적 --zone = public --add-service = http

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.