(저는 초보입니다!) CentOS를 실행하는 가상 서버를 실행하고 있습니다. 포트 37760에서 수신 대기하는 서버를 실행하려고 합니다. 실행 중인 코드가 성공적으로 실행되었으므로 다음을 실행합니다.
netstat -lptu
수신 대기 중인 포트 목록을 표시합니다.
tcp 0 0 localhost.localdomain:37760 *:* LISTEN 15006/node
항목 중 하나입니다. 그런데 브라우저에서 ip:37760에 접속하면 연결 시간이 초과됩니다!
나는 이것이 매우 명백하다고 확신하지만 약간의 도움이 정말 도움이 될 것입니다!
감사해요
답변1
출력에는 localhost에서만 수신 대기가 netstat
표시되므로 node
해당 가상 콘솔에서 브라우저를 사용하여 localhost:37760
모든 주소에서 수신하도록 구성을 탐색하거나 업데이트해야 합니다.node
답변2
로컬 방화벽이 연결을 차단할 가능성이 높습니다.
로컬 iptables
방화벽을 확인하세요. 다음 명령을 실행하여 현재 상태를 볼 수 있습니다.
iptables -vnL
그러면 다음과 같은 출력이 생성됩니다.
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
9192K 3593M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
18 740 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
1763K 180M ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
6124 367K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
네 가지 규칙은 다음과 같습니다.
- 기존 연결과 관련된 트래픽 허용
- ICMP 트래픽을 허용합니다.
- 루프백 인터페이스를 통한 모든 트래픽 허용
- TCP 포트 22(ssh)에서 새 연결 허용
에서 지속 상태를 볼 수 있습니다 /etc/sysconfig/iptables
. GUI 구성 메커니즘이 필요한 경우 이 도구를 사용할 수 있습니다 system-config-firewall
. 또는 이 기회를 통해 명령줄에서 방화벽 구성이 작동하는 방식에 대해 자세히 알아볼 수 있습니다.
답변3
CentOS는 기본적으로 변환됩니다.IP 테이블그리고 SELinux를 통해 상당히 엄격한 보안 정책을 시행합니다. 다른 컴퓨터에서 포트에 액세스하려고 하면 기본 IPTables 설정에 따라 SSH를 제외한 모든 수신 연결이 끊어집니다. 보안이 걱정되지 않는다면 간단히 실행할 수 있습니다.
sudo service iptables stop
IPTable을 완전히 끄십시오.
CentO를 사용하는 데 방해가 될 수 있는 또 다른 이유는SELinux. 이는 프로세스 및 파일 시스템에서 두 번째 보안 계층 역할을 하며 특정 서버가 파일을 제공하는 디렉터리에 대한 액세스 권한이 없기 때문에 기본적으로 파일을 제공할 수 있는 권한을 갖는 것을 방지합니다. 여기에는 몇 가지 옵션이 있습니다.
/etc/selinux/config
1) 다음과 같이 설정을 변경하여 SELinux를 끄십시오 .
SELINUX=disabled in /etc/selinux/config
2) audit2allow
SELinux가 서버를 차단하는지 확인하고, 그렇다면 이를 허용하는 새로운 보안 정책을 생성하는 것이 좋습니다. 이것 좀 봐중앙 운영 체제위키 항목 및이것블로그 항목.
마지막으로, 가상 머신에서 실행 중인 경우 가상 머신에 기본 하드웨어의 NIC 설정을 사용할 수 있는 네트워크 액세스 및 권한이 있는지 확인하십시오.