리눅스

아무런 툴 없이 TCP PORT오픈 확인 하는법

ybchoi 2022. 5. 31. 10:06

TCP PORT 오픈 확인의 경우 아무런 툴없이 할 수 있는 방법을 발견함(telnet,tcpping,nc 없어도 가능)

bash만 있으면 가능하므로 모든 시스템에 사용가능

bash 기능임

먼저 테스트 대상 시스템

# ss -antlp
State       Recv-Q Send-Q                                                  Local Address:Port                                                                 Peer Address:Port
LISTEN      0      128                                                                 *:22                                                                              *:*                   users:(("sshd",pid=69,fd=3))
LISTEN      0      100                                                                 *:7000                                                                            *:*                   users:(("scylla",pid=30,fd=100))
LISTEN      0      4096                                                        127.0.0.1:5112                                                                            *:*
LISTEN      0      100                                                                 *:9180                                                                            *:*                   users:(("scylla",pid=30,fd=8))
LISTEN      0      128                                                                 *:4190                                                                            *:*

아래의 방법으로 port오픈을 확인 할 수 있음

echo > /dev/tcp/{{address}}/{{port}}

[root@scylla-0 /]# echo > /dev/tcp/127.0.0.1/22
[root@scylla-0 /]# echo $?
0

열려있다면 위와같이 별다른 메시지는 출력되지 않고 커맨드 결과는 0을 반환함

[root@scylla-0 /]# echo > /dev/tcp/127.0.0.1/23
bash: connect: Connection refused
bash: /dev/tcp/127.0.0.1/23: Connection refused

닫혀있다면 위와같은 메시지가 출력된다

[root@scylla-0 /]# echo > /dev/tcp/127.0.0.1/700
bash: connect: Connection refused
bash: /dev/tcp/127.0.0.1/700: Connection refused
[root@scylla-0 /]# echo > /dev/tcp/127.0.0.1/7000
[root@scylla-0 /]# echo $?
0