netcat 명령이 열려 있는 포트에 액세스할 수 없습니다.

netcat 명령이 열려 있는 포트에 액세스할 수 없습니다.

일부 소프트웨어를 설치하려고 하는 서버가 두 대 있습니다. 하나는 server1(IP 10.1.2.205)이고 다른 하나는 server2(IP 10.1.2.206)입니다. 둘 다 이름과 IP 주소로 서로 핑할 수 있습니다(예: server2 ping server1또는 에서 서로 핑할 수 있습니다 ping 10.1.2.205).

netstat -lntserver1에 입력하면 다음과 같은 결과가 나타납니다.

    Proto Recv-Q Send-Q Local Address ForeignAddress State  
    tcp        0      0 0.0.0.0:111    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:631  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:52666  0.0.0.0:*     LISTEN 
    tcp        0      0 0.0.0.0:6817   0.0.0.0:*     LISTEN 
    tcp        0      0 0.0.0.0:6818   0.0.0.0:*     LISTEN 
    tcp        0      0 0.0.0.0:5672   0.0.0.0:*     LISTEN 
    tcp        0      0 :::111         :::*          LISTEN 
    tcp        0      0 :::22          :::*          LISTEN 
    tcp        0      0 ::1:631        :::*          LISTEN 
    tcp        0      0 :::36483       :::*          LISTEN 
    tcp        0      0 :::5989        :::*          LISTEN  

이제 server2에서 netcat 명령을 사용하려고 하면 다음과 같은 결과가 나타납니다.

nc -v 10.1.2.205 22
Connection to server1 22 port [tcp/ssh] succeeded! SSH-2.0-OpenSSH_5.3

nc -v server1 22
Connection to server1 22 port [tcp/ssh] succeeded! SSH-2.0-OpenSSH_5.3

그러나 문제는 다음과 같은 출력입니다.
nc -v server1 5989
nc: connect to server1 port 5989(tcp) failed: No route to host
다른 모든 포트에서 동일한 응답을 얻습니다.
server1에서는 다른 포트가 응답하지 않습니다. 내가 관심 있는 포트는 포트 6817과 6818입니다. 두 컴퓨터 사이의 포트에서 수신 대기하고 응답해야 하는 애플리케이션이 있습니다.

산출:iptables -L

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

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

    Chain OUTPUT (policy ACCEPT)
    target  prot opt source   destination    

무엇이 잘못될 수 있나요?

답변1

Centos를 사용하고 계신 것 같습니다. iptables 규칙에서 볼 수 있듯이 포트 22를 제외한 모든 TCP 연결이 차단됩니다.

다음을 통해 iptables 규칙을 새로 고쳐 보십시오.

$ sudo iptables -F

그러면 모든 iptables 규칙이 제거됩니다. 이것이 효과가 있는지 알려주세요.

답변2

위에서 설명한 대로 방화벽 규칙을 해결한 후에도 다른 컴퓨터에서 631의 cup admin에 연결하는 데 여전히 약간의 어려움이 있을 수 있습니다.

netstat 출력에서 ​​포트 번호 앞의 IP 주소 형식에 주의를 기울이면 포트 631에서 실행되는 서비스가 다른 서비스와 다른 IP 범위에서 수신 대기하는 것처럼 보일 수 있습니다. IP 주소 0.0.0.0:631 :::631이 아닌 127.0.0.1:631 및 ::1:631 IP 주소만 수신하는 것 같습니다.

이는 기본 이더넷 인터페이스가 아닌 루프백 인터페이스 lo0을 수신하고 있음을 나타냅니다.

출력을 비교하여 이를 확인할 수 있습니다.

netstat -L lo0
netstat -L eth0  (or the name of your default network interface)

이는 CUPS 관리 도구의 기본 구성 및 동작입니다.

localhost의 웹 페이지에 대한 관리 액세스만 허용합니다. 원격 관리 액세스를 허용하도록 컵 서버를 구성하는 방법에 대한 자세한 내용은 /etc/cupsd.conf(man 5 cupd.conf)를 참조하세요.

"Listen localhost:631"을 "Listen *:631"로 변경하고 "Allow 10.1.2.206" 줄을 추가하거나 구성 파일의 "Allow @LOCAL"(로컬 인터페이스) 줄 아래에 IP와 넷마스크를 지정해야 할 수도 있습니다. /admin 섹션 및 cupd 다시 시작("/etc/init.d/cups restart")

관련 정보