관리 메뉴

bright jazz music

라즈베리파이 네트워크 설정(유선+무선) + 맥북과 유선 연결 본문

OS 및 기타/raspberry pi

라즈베리파이 네트워크 설정(유선+무선) + 맥북과 유선 연결

bright jazz music 2024. 12. 20. 17:25

개요

여기서는 라즈베리파이와 맥북을 유선으로 연결하고,

라즈베리파이의 무선랜 사용을 설정하고,

다시 맥북과 라즈베리파이를 무선으로 연결하여 사용하는 방식을 다룬다.

 

1. LAN 연결 설정 (맥북과 직접 연결)

우선 맥북 세팅부터 완료하자.

맥북과 직접 연결하기 위해서는 설정 - 네트워크 메뉴로 진입한 뒤, 이더넷(유선랜)을 사용하는 서비스의 설정을 변경해줘야 한다.

아래 스크린샷에서 USB 10/100/1000 LAN이라고 쓰여진 것이 이더넷(유선) 인터페이스이다.

 

(사용하는 방식에 따라 다르게 표시될 수도 있다. 여기서 USB 10/100/1000)이라고 표시된 것은, 랜선을 맥북과 연결하기 위해 사용한 LAN to C 젠더가 일반 젠더가 아닌 외장 네트워크 인터페이스 카드(NIC, 속칭 랜카드)였기 때문이다. 만약 일반 LAN to C젠더였다면 다르게 보였을 수도 있다.)

 

또, 만약 이더넷을 연결하지 않았다면 저러한 항목이 화면에서 보이지 않을 수도 있다. 따라서 먼저 랜선을 꽂아주었다는 가정 하에 진행하자.

 

1.1. 맥북 설정

 

해당 메뉴를 클릭하고 [세부사항]을 클릭하면 아래와 같이 모달창이 뜬다.

좌측에서 TCP/IP를 선택하고 오른쪽과 같이 설정해 주자.

 

IP: 192.168.10.2 

서브넷마스크 : 255.255.255.0

이 포스팅에서는 

맥북 아이피를 192.168.10.2, 
라즈베리파이를 192.168.10.1로 설정하여 통신한다.

그러나 임의로 자신이 편한 아이피를 선택하여 연결해도 된다. 
예를 들면,
-------------------------
맥북: 192.168.45.13
라즈베리파이: 192.168.45.235
-------------------------
이렇게 설정해도 완벽하게 작동한다. 단지 두 조건만 맞으면 된다.

두 기기가 같은 네트워크 대역(192.168.45.xxx)에 있을 것
각자 다른 번호를 사용할 것

 

 

 

 

이로써 맥북의 네트워크 설정은 끝났다.

 

 

 

 

1.2. 라즈베리파이 네트워크 설정

이제 라즈베리파이의 네트워크를 설정하자. 맥북의 설정이 끝났다고 하더라도 아직 라즈베리파이의 네트워크를 설정하지 않았으므로 직접 연결은 되지 않는다. 따라서 라즈베리파이에 모니터와 키보드를 연결하고 아래 파일을 열어 설정해주자

 

  • /etc/netplan/50-cloud-init.yaml 설정 (***환경에 따라 이름이 다를 수도 있음)
sudo nano /etc/netplan/50-cloud-init.yaml

// 또는 아래 명령어를 통해 파일을 열어서 수정하자.
// 나노로 열었을 경우 내용을 수정한 뒤 컨트롤 + x 키를 누르고 y키를 눌러 저장에 동의한 뒤 엔터를 눌러 동일한 이름으로 저장하면 된다.
// 아래처럼 vi로 열었을 경우 i 를 눌러 수정 모드로 변환한 뒤, 내용을 수정하고 :wq 를 입력하고 엔터를 눌러 저장하고 나온다.

sudo vi /etc/netplan/50-cloud-init.yaml
network:
  version: 2
  ethernets:
    eth0:
      addresses: [192.168.10.1/24]

 

이렇게 하면 라즈베리 파이의 이더넷 네트워크 인터페이스의 이름을 eth0로 설정하고 192.168.10.1 아이피를 부여한 것이 된다.

#아래 명령어를 사용하여 설정을 테스트하여 제대로 된다면 저장하자.

sudo netplan try

# sudo netplan apply를 통해 바로 적용할 수 도 있지만 먼저 테스트 해보는 것이 좋다.

 

 

참고로, 두 명령어의 차이는 아래와 같다.

/*

sudo netplan try:

새 네트워크 설정을 임시로 적용
120초의 테스트 기간 제공
이 시간 동안 연결이 잘 되는지 확인 가능
Enter를 누르면 설정 확정
Ctrl+C를 누르면 이전 설정으로 롤백
120초 내에 응답이 없으면 자동으로 롤백

sudo netplan apply:

설정을 즉시 적용
롤백 기능 없음
잘못된 설정이면 네트워크 연결이 끊길 수 있음

따라서 안전한 설정 적용을 위해서는:

sudo netplan try로 먼저 테스트
문제없으면 sudo netplan apply로 확정
*/



 

설정까지 적용했다면 유션연결은 가능해진 것이다. 터미널을 열어 아래 명령어를 입력해 접근해 보자.

 

ssh 라즈베리파이사용자@192.168.10.1

# 예) ssh raspTestUser@192.168.10.1

/* 만약 ssh 포트를 기본 설정인 22가 아니라 다른 것으로 사용 중이라면 -p 옵션을 사용해
자신이 사용중인 포트로 변경해서 접근해야 한다. 만약 57522로 사용한다면,

예)

ssh -p 57522 raspTestUser@192.168.10.1

 

 

현재 상황을 정리하면 이러하다.

 

맥북은 무선랜(wifi)와 유선랜(ethernet) 모두 연결돼 있다. 무선랜 네트워크 인터페이스에는 공유기가 임의로 부여한 동적 아이피가 설정돼 있다. 이 아이피는 상황에 따라 변경될 수 있다. 이더넷 네트워크 인터페이스에는 우리가 설정한 192.168.10.2가 설정돼 있다.

 

현재 네트워크 인터페이스에 붙어 있는 포트에 랜선이 꽂혀 있으며, 이 랜선은 라즈베리파이와 연결돼 있다. 라즈베리파이의 네트워크 인터페이스는 맥북의 유선랜(이더넷) 네트워크와 동일한 대역을 사용하는 아이피인 192.168.10.1을 사용한다.

 

따라서 맥북은 무선랜을 통해 인터넷을 사용할 수 있으며, 유선랜을 통해 라즈베리파이와도 폐쇄된 사설망을 사용할 수 있다.

라즈베리파이는 맥북과 통신할 수 있지만 자체적으로 라즈베리 파이에서 무선랜을 사용하여 인터넷을 사용할 수는 없다.

 

그런데 만약 라즈베리파이가 무선랜 인터페이스를 가지고 있다면? 다행히도 내 라즈베리파이4는 무선랜 인터페이스를 가지고 있다. 이것은 라즈베리파이가 공유기로부터 아이피를 받아 자체적으로 인터넷에 연결될 수 있다는 것을 의미한다.

 

따라서 아래와 같이 사용하는 방식을 생각해 볼 수 있다.

 

맥북: 공유기를 통해 무선랜으로 인터넷 사용 + 유선랜을 통해 라즈베리파이와 통신

라즈베리파이: 공유기를 통해 무선랜 사용 + 유선랜을 통해 맥북과 통신.

 

설정을 변경해보자.

 

2. 라즈베리파이 무선랜(WiFi) 설정

들어가기에 앞서서, 무선랜을 관리하는 방식에 대해 얘기해보고자 한다. 라즈베리파이의 무선랜 인터페이스는 두 가지 방식으로 관리될 수 있다. 

 

2.1. netplan을 이용하는 방식

: /etc/netplan/50-cloud-init.yaml 파일에서 직접 무선랜 ssid와 비밀번호를 적어주는 방식이다. 명시적으로 관리가 가능하지만, 새로운 네트워크를 연결할 때마다 파일을 열어서 적어줘야 하는 불편함이 있다. 어쨌든 아래와 같이 설정하면 된다.

 

만약 무선랜을 처음 설정하는 거라면 아래처럼 일단 설정해주자. 왜냐하면 추후에 NetworkManager를 사용하려면 다운을 받아야 하므로 네트워크에 연결돼 있어야 하기 때문이다. 만약 네트워크 매니저가 설치돼 있다면 2.2로 넘어가도 된다.

network:
  version: 2
  ethernets:
    eth0:
      addresses: [192.168.10.1/24]
      
  # 이 아랫 부분이 추가되었다. 윗부분은 아까 우리가 설정했던 그대로이다.
  # dhcp 는 동적으로 아이피를 받겠다는 의미이다. 일반적인 공공 네트워크의 경우 true로 할 것.
  # wifi이름은 예를 들어 "home_wifi_1F" 처럼 그대로 적어줘야 한다. 쌍따옴표 빼먹지 말 것
  # 비밀번호도 마찬가지이다. 쌍따옴표 빼먹지 말고 "home1234!" 처럼 적어줄 것
  
  wifis:
    wlan0:
      dhcp4: true
      access-points:
        "WiFi이름":
            password: "비밀번호"

 

만약 액세스 포인트가 여러 군데라면 아래와 같이 추가하여 관리할 수 있다.

 

network:
  version: 2
  ethernets:
    eth0:
      addresses: [192.168.10.1/24]
  wifis:
    wlan0:
      dhcp4: true
      access-points:
        "wifi1_name":
            password: "password1"
        "wifi2_name":
            password: "password2"
        "wifi3_name":
            password: "password3"

 

앞서 말했듯  이 방식은 네트워크를 자동으로 인식해서 선택하는 방식이 아니라 명시적으로 적어줘야 함으로 불편함이 있다. 따라서 NetworkManager를 사용하는 것을 권한다. 

 

2.2 WiFi 관리를 위한 NetworkManager 설정

네트워크 매니저는 네트워크 인터페이스를 넷플랜이 아니라 네트워크 매니저라는 프로그램에게 위임하는 방식이다.

만약 설치돼 있지 않다면 아래처럼 다운받아야 한다. (iwlist 등의 명령어로도 가능)

sudo apt install network-manager

#운영체제에 따라서 apt대신 yum을 쓸 수도 있고 dnf를 쓸 수도 있다. 나는 우분투이므로 apt사용

 

그리고 아래와 같이 다시 넷플랜의 네트워크 설정파일을 열어 설정을 변경해 주자.

sudo nano /etc/netplan/50-cloud-init.yaml

# 또는 sudo vi /etc/netplan/50-cloud-init.yaml

 

아래에서 유의할 점은,

network 항목 아래에 renderer 항목을 추가해주고 이에 네트워크 매니저를 할당에 줬다는 것과,

wifi 설정을 없앴다는 것이다.(여기서는 지웠지만 실제로는 #로 주석처리 했음)

# netplan 설정 변경
network:
  version: 2
  renderer: NetworkManager	# 렌더러를 네트워크매니저로 설정
  ethernets:
    eth0:
      addresses: [192.168.10.1/24]
      
  #wifi설정을 날려버렸음. "#"를 사용해 주석처리해도 무방함. 나는 주석처리했음.

 

 

설정을 변경했으면 파이을 저장하고 나와서 아래의 명령어를 입력하자.

# 설정 적용
sudo netplan apply

# 네트워크 매니저 서비스 허용
sudo systemctl enable NetworkManager

# 네트워크 매니저 구동
sudo systemctl start NetworkManager

 

3. NetworkManager로 WiFi 사용하기

 

네트워크 매니저를 구동시켰으므로, netplan의 설정 파일을 수정하지 않아도 아래의 명령어를 통해 무선 네트워크를 찾아서 사용할 수 있다.

# WiFi 검색
sudo nmcli dev wifi list

# WiFi 연결
sudo nmcli device wifi connect "WiFi이름" password "비밀번호"

# 연결 상태 확인
nmcli dev status

# 저장된 연결 확인
nmcli con show

 

아래는 예시

감지할 수 있는 무선랜 네트워크 출력. q를 눌러서 나올 수 있다.

 

네트워크 아이디와 비밀번호를 입력하여 사용할 수 있다.

coffee@coffee-rasp:~$ sudo nmcli device wifi connect "seouldesign" password "P@ssW0rd"

Device 'wlan0' successfully activated with '59bafa1-7fad1-4e26adsf59-a644adsf612'.

# 위와 같은 식으로 연결된다. 저 UUID는 네트워크 매니저가 네트워크 관리를 위해 임의로 만들어내는 uuid이다.
# nmcli con show 명령어를 사용하면 네트워크 id와 함께 저 uuid를 함께 볼 수 있을 것이다.

 

 

이제 라즈베리파이에서도 무선랜을 직접 사용할 수 있게 되었다.

아래와 같은 명령어로 확인해 볼 수도 있다.

#구글 Dns에 연결 보내보기
ping 8.8.8.8

#네이버 페이지 가져와보기
curl https://www.naver.com

 

 

4. 라즈베리파이에 할당된 무선랜 아이피를 통해 라즈베리파이에 접근하기

라즈베리파이가 무선랜에 연결돼 있다면 더이상 랜선을 꽂고 있을 필요가 없다. 따라서 192.168.10.2가 아니라 라즈베리파이에 할당된 무선랜 아이피를 통해 접근해 보자.

 

** 단, 이 때 맥북도 동일한 무선랜 네트워크에 연결돼 있어야 한다.

** 아직  랜선 뽑지 말 것

 

 

아래 명령어을 통해서 무선랜 인터페이스에 부여된 아이피를 확인해보자.

ip addr | grep wlan 

# 또는 ifconfig | grep wlan (net-tools가 설치돼 있는 경우. 보통은 거의 없음...)

# ip addr나 ifconfig 만 입력한다면 전체 네트워크 인터페이스들의 정보를 보여준다.
# grep은 그 뒤에 나오는 문자열을 가진 항목만 잡아낸다.
# wlan은 wireless lan 즉 무선랜 인터페이스

 

무선랜에 20.20.20.21 아이피가 할당된 것이 보인다.

이제 아래와 같이 무선랜 아이피를 사용해 접근해 보자. 기존에 유선랜을 통해 ssh 사용 중이라면 exit를 눌러서 연결을 종료하자.

그리고 아래와 같이 접근해 보자.

 

ssh 라즈베리파이사용자@20.20.20.21

#비밀번호 치고 들어가면 된다.

 

 

만약 접근 되었다면 이제 무선랜 뽑아서 가방에 넣자.

 

 

5. 마무리 ( + 이 짓을 한 이유)

이 과정을 정리해 보면아래 목록과 같다.

  • 맥북과 라즈베리파이를 유선으로 연결하였다. netplan의 설정 파일 사용(항목 1)
  • 라즈베리파이의 유선랜 사용을 설정하였다. 처음에는 netplan의 설정파일을 사용하는 방법을 실습했으며(항목2.1.), 더욱 편한 사용을 위해 설정을 네트워크 매니저에 위임하는 방식을 실습하였다(항목2.2.)
  • 네트워크 매니저를 사용해 동적으로 네크워크를 사용하는 방식을 실습하였다. (항목 3)
  • 유선랜이 아닌 무선 아이피를 사용해 라즈베리파이에 접근하는 방식을 실습하였다(항목4)

 

이 방법을 통해 카페나 도서관과 같은 곳에서 아래와 같은 유선랜을 사용하는 방식을 생각해 볼 수 있다.

 

1. 우선 맥북과 라즈베리파이를 랜선으로 연결

2. ssh를 통해 라즈베리파이에 접근

3. 라즈베리파이 내에서 네트워크 매니저를 사용해 무선랜을 감지하고 연결

4. 무선아이피를 사용하여 라즈베리파이와 연결

5. 유선랜 제거

 

이런 번거로운 일을 왜 했는지 궁금할 것이다.

 

결론부터 말하자면 클라우드 사용료를 절약하기 위해서이다. 테스트를 위해 DB와 웹앱을 올릴 환경이 필요했다. 현재 내가 사용하는 맥북은 메모리가 작아서 모든 환경을 설치하고 구동하기에는 무리가 있다. 클라우를 사용하는 방법이 있지만, AWS는 라이트세일이라고 하더라도 위 조건을 충족하려면 한 달에 5만원은 나가야 한다. 오라클은 무료로 제공한다지만 가입 자체가 안 된다(해 본 사람들은 알 것).

 

그래서 집에 놀고 있는 라즈베리파이4(메모리 8GB, ssd(250GB))를 부리기로 한 것이다.

 

이 글을 볼 사람이 있는 줄 모르겠다. 라즈베리파이나 미니pc를 사용해 프로젝트를 진행하고자 하는 사람들에게 도움이 되었으면 좋겠다.

 

Comments