naver.com:80
localhost:8080 같이 :뒤에 나오는 숫자가 포트이다.
포트는 SSH를 통해서 A컴퓨터에서 B컴퓨터로 접속하고 싶을때 필요하다.
A컴퓨터에서 커맨드 창을 켜고 해당 명령어를 입력하고 (포트번호)에는 B컴퓨터의 포트번호를 써준다.
sh -p(포트번호 ex:22) 계정@서버주소
ssh -p22 egoing@192.168.0.65
(여기서 -p는 포트라는 뜻)
SSH 클라이언트 접속 종료하기
exit
만약 sh -p (포트번호) 명령어 입력했는데
Connection refused 라고 뜨고 접속되지 않는 경우, 포트 번호가 잘못된 것이다.
그런데 sh -p 명령어 뒤에 포트번호를 생략해도 22번 포트로 연결이 된다.
왜 그럴까?
🤔
우선 서버, 클라이언트 컴퓨터가 있다고 하자.
서버로부터 연결 통로를 port라고 하고
ssh를 설치하게 되면
규칙 1. web은 80번 port로
규칙 2. ssh는 22번 port로
연결되도록 정해져 있다.
그래서 웹브라우저(클라이언트)에서 서버로 접속하면 80번 포트로 이동한다.
>서버에서는 웹브라우저의 요청결과를 웹브라우저로 돌려준다.
이와같이
ssh에서 서버로 접속하면 포트 정보 없이도 약속된 22번 포트로 이동한다.
이때 서버에서는 22번 서버에서 대기하고 있다가(이 기능을 listen이라고 한다.)
요청결과를 클라이언트에게 돌려준다.
0개부터 65000개의 포트가 있는데
이중에서 0개~1024개의 포트는 well known port라고 불리며
값을 고정해놓고, 이 포트번호를 생략해도 접속이 가능하게끔 설정해 두었다.
+
네이버 url뒤에 포트 번호를 썼을 때 왜 8888은 접속이 안될까?
naver.com:80> 가능
naver.com:8888> 불가능
그 이유는 80포트는 자동으로 연결되어있고 서버에서 80번 포트를 기다리고 있는데(대기)
8888포트는 well known port에 속하지 않고
서버의 해당 8888포트에서 대기하지 않고 있기 때문에 접속이 안되는 것이다.
SSH 포트를 다른곳으로 바꿔보기
sudo nano /etc/ssh/sshd_config
A 컴퓨터에서 명령어로 ssh설정 파일에 접속한다.
이 포트 번호를 22> 2222로 변경 후
command +X, Y, enter
이렇게 ssh설정을 변경해주고
sudo service ssh restart
재시작 하면 수정한 설정파일이 반영된다.
이제 B컴퓨터에서 A컴퓨터로 접속해보자.
ssh -p22 egoing@192.168.0.65
이렇게 접속하면 더이상 접속되지않는다.
ssh -p2222 egoing@192.168.0.65
2222로 포트번호를 변경하고 나면 접속이 된다.
+전회사에서는 putty로 ssh를 통해 서버에 원격접속했는데 잘모르고 썼던거라 제대로 알려고 정리한다..
이게 이거였구나..! 반복중...