라즈베리파이에 ssh를 접속할 때 외부에서 내부ip로 접속할 수 있게 포트 포워딩 해주기~
라즈베리파이를 무선으로 연결하고, 원격으로 접속할 데스크탑 컴퓨터가 유선으로 인터넷에 연결된 경우에
포트포워딩 해 볼 수가 있다~
노트북 같은 경우는 무선랜으로 많이 사용하니깐, 포트포워딩이 거의 필요없을 듯..^^;
ssh로 접속을 할 때는 같은 네트워크 환경이어야 한다~
아무래도 가장 좋은 것은 라즈베리파이가 무선 와이파이를 사용하기 때문에
ssh를 사용하는 컴퓨터에서도 무선 와이파이를 사용해서
같은 네트워크에 있으면 좋다..
아마도 검색을 해보면 이런 부분을 쉽게 찾을 수 있을 것이고..
내부 사설ip이므로 (같은 네트워크)이니깐 쉽게 ssh로 접속하면 될 것이다..
예를 들어
$ssh pi@192.168.1.80
뭐 이런식이면 되지 않을까?
하지만.. 나의 메인컴은 떡하니... 와이파이가 아니다 ㅠ
심지어 무선랜카드도 없음~ 유선 랜선이 꽂혀있고..
내부 사설ip가 아니다..(192.168....이렇게 되는)
외부에서도 접속이 가능한 ip을 가지고 있었다.. 177.xxx.xxx.xxx
그래서 라즈베리파이가 무선와이파이를 되어도 외부에서 접속을 할 수가 없다.
왜냐하면 내부사설ip이기 때문에 외부에서 접속이 안되기 때문이다
어찌보면 headless를 환경을 일부러 만든감도 있지만 ㅋㅋ
호기심도 있었지만 ssh를 접속을 할 수가 없어서;;
그렇다.. 포기하면 쉬워지는 것을, 모니터에 연결해서 직접 사용하면 편할 것을 ㅋㅋ
HDMI케이블도 없다는 것으로 동기부여가 끝나버렸다 ㅋㅋㅋ 타켓이 정해짐!
암튼.. 뭐 그렇다는 말 ㅡ,ㅡ;;
정리해보면..
이렇게 공유기를 사용하는 경우에는 공유기가 공인ip를 하나를 가지고
사설ip를 만들어서 내부 네트워크를 만들어주는데..
위에서 말한대로 서로 다른 네트워크 라면 사설ip인 네트워크로 접속을 할 수가 없다.
하지만 외부에서 내부 사설ip로 접속할 수 있는 방법이 있는데.. 그게 바로 포트 포워딩
Port Forwarding~ 이다
라즈베리 파이로 접속을 해야하는데, 내 로컬 컴퓨터에서는
무선이 아니라 유선으로 되어 있어서 라즈베리파이로 접속을 할 수가 없다.
이유는 와이파이가 아니어서 192. 로 시작하는 사설 내부망에 있지 않기 때문에 접속이 안된다.;;;
포트 포워딩 및 ip를 확인하기 위해서 공유기 설정 페이지를 접속해야한다
공유기에서 직접 랜선을 직접 꽂던가.. 와이파이로 해야하는데 차라리 휴대폰으로 접속을 시도하는게 좋겠다.
각 인터넷 회사마다 조금씩 다르다.
아마 ip는 다를 수 있고, 나머지 화면 구성이 다르겠지만 핵심은 거의 같으므로 참고하자..
SK broadband 에서는 웹브라우저에 192.168.35.1 입력하면 공유기 설정페이지에
접속을 할 수 있고 아이디는 admin 이고,
비번은 공유기에 아래나 옆에 보면 적혀있는 유선MAC, 무선MAC주소가 있는데
나의 경우는 유선MAC주소가 비번이였다.
유선MAC주소의 뒷자리 6자리가 비번이였고 끝에는 _admin을 붙여야한다 (대소문자 구별)
예:
아이디 admin
비번은 A360DF_admin
만약 페이지가 없다고 나오면, 비번이 틀린것이므로 다시 시도할 것.
예외처리가 엉망이구먼;; 비번이 맞다면 정보 페이지가 나오게 된다..
원래 아이피를 알아야함 원래 무선아이피로 연결이 되어 있으면
192.168.xxx.xxx로 시작되는 사설 ip로 배정을 받을 텐데..
현재 메인 컴퓨터는 유선랜으로 연결되어 있고 175.117.xxx.xxx로 되어 있다.
이제 공유기 설정 페이지에 로그인이 되었다면..
첫 번째로, 집으로 할당된 공인 IP를 찾아야 한다.
로그인 화면에서 보면 외부IP라는게 있는데 이게 바로 집 할당된 공인 IP이다
222.210.170.40
또는 SK 기준으로 로그인을 하게 되면 상태정보를 보여주는데..
랜 정보가 있고 랜의 IP주소가 나오는데.. 192.168.35.1 이다..
공유기 설정하기 위해서 들어왔던 주소이며-> 이게 무선공유기이다.
그리고 인터넷 정보 - IP 주소가 있는데 마찬가지로 222.210.170.40 라고 나온다
두 번째로, 라즈베리파이가 할당 받은 ip 주소를 알아야 하는데..
이거는 관리탭에 들어가보면 커넥션 통계가 있는데
IP별 커넥션 정보를 알 수가 있는데 현재 공유기에 접속된 단말기가 다 뜬다.
핸드폰 2개가 연결되어 있고, raspberrypi 도 당당히 있는것을 확인!
ip주소는 192.168.35.100 일단 메모를 한다
(다른 인터넷 회사도 비슷한 메뉴가 있을 것이므로 찾아본다)
(만약 공유기가 서드파티이면 iptime이라든가.. 공유기를 검색해봐야한다.)
이제 필요한 ip주소는 다 찾았고..
세 번째로, 포트포워딩을 해줘야하는데 (다른 인터넷/허브도 비슷한 메뉴가 있을 것이다)
방화벽 -> 포트 포워딩 메뉴를 들어가면
포트포워딩을 추가해 줄 수가 있는데
서비스 포트는 외부로 몇번 포트로 들어오는지를 정하는 것인데.. ssh를 원래 22번을 사용하지만 22번은 공개가 되어 있는 것이므로, 다른 포트번호를 넣어준다 10123 이런식으로 넣어줌 (겹치지지만 않으면 상관없다)
두번 째 칸은 몇번까지를 정해줄 때 사용 예: 10123-10200, 범위를 지정하지는 않을 것이므로 첫 번째 칸에만 적어주면 되겠다
프로토콜은 TCP/UDP
중요한 내부ip주소는 두 번째로 찾은 라즈베리파이 주소를 적어준다
192.168.35.100
여기의 포트는 22번 (ssh가 22번 사용) 여기에서는 22번을 꼭 적어줘야한다. 설명은 간단하게 알아볼 수있게 적어주면 된다.
그리고 적용을 눌러주면 된다..
이제 공인ip로 222.210.170.40 ssh 접속을 시도 하면
위에서 처음에 지정한 서비스 포트 (외부 포트라고도 하는 것 같음)
인 10123 포트로 접속하게 되면,
공유기에서
포트포워딩이라는 것을 하게 되면서 내부 사설ip인 192.168.35.100
즉, 라즈베리파이의 ssh 프로토콜인 22번 포트로 연결을 해주는 것이다.
그리고 중요한 마지막 단계! 공유기를 재부팅을 해야지 포트포워딩이 적용이 된다.
이것저것 하다보니 재부팅도 해보고 이 명령어 저 명령어도 쓴 탓에 정확하게 몰랐는데.. 테스트를 하면서 포트포워딩을 해주고나서 삭제를 해도 재부팅을 안했더니 계속 접속이 가능하다가 재부팅을 했더니 그 다음부터는 접속이 안됨 즉, 포트포워딩 설정을 추가했으면 재부팅을 해주자. 약 1분 정도 소요 됨..
이제 로컬에서 메인컴에서 ssh로 접속을 시도할 차례,
$ssh pi@222.210.170.40 -p 10123
공인ip주소 222.210.170.40 로 접속을 하는데
포트번호는 위에서 정해준 10123 이다
옵션은 -p 라고 써주고, 10123 옵션으로 정해준다.
흔히 ip주소 뒤에 :10123 이런식으로 하면 인식을 못하는 것에 주의하자
Are you sure you want to continue connecting (yes/no/[fingerprint])?
yes 한번 눌러주고
이제 패스워드를 입력하면 라즈베리파이에 접속이 된다!!
초기 비번은 raspberry
습관적으로 ls 명령어를 쳐보면 접속 된 것이 실감된다!ㅋㅋ
SSH is enabled and the default password for the 'pi' user has not been changed.
This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.
pi@raspberrypi:~ $ ls
Bookshelf Documents Music Public Videos
Desktop Downloads Pictures Templates
위의 로그인시 안내 문구가 나온 것 처럼 보안 위험이 있으므로 바로 비번을 바꿔주는게 좋다
왜냐하면 pi의 초기비번은 다 공개가 되어 있기 때문
아무래도 포트포워딩으로 ssh로 접속을 한 것이고~ 당연 바꿔주는 것이 좋다
$passwd
현재 비번인 raspberry를 입력 후
바꿀 비번을 차례로 입력해주면 된다