노트북을 우분투 서버로 사용하기

리눅스 서버가 있으면 좋을 듯한데 데스크탑을 하나 사기는 너무 비싸고, 라즈베리파이도 요즘 비싸네요. 마침 놀고 있는 노트북이 떠오릅니다. 이 친구를 우분투 서버로 사용하면 적당할 듯합니다.

우분투를 설치 후, 서버로 사용하기 위해 몇 가지 설정을 했습니다. 😆

네트워크 설정

고정 IP

서버로 사용할 건데 아이피가 가끔씩 바뀌어버리면 귀찮을 일이 많습니다. 고정 아이피로 사용하기 위한 설정을 해줍니다.

공유기 설정

웹 브라우저에서 공유기 아이피에 접속하시면 공유기를 설정할 수 있습니다. 저는 LGU+ 공유기를 사용했고, 공유기 주소는 192.168.219.1입니다. (iptime은 192.168.0.1 입니다.) 공유기에서 서버로 사용할 노트북의 이더넷 맥 주소에 고정 IP를 할당합니다. 저는 192.168.219.111을 할당해 줬습니다. 이때 주의할 점은, 할당할 IP 주소의 앞 9자리는 공유기의 IP 주소와 일치해야 합니다. (192.168.219.xxx)

network-config-1

우분투 설정

화면 오른쪽 맨 위 클릭 - Settings - Network - Wired의 톱니바퀴 클릭 - IPv4에서 설정해줍니다.

network-config-2

  1. Address 공유기에서 할당한 IP 주소를 적어줍니다.
  2. Netmask 255.255.255.0을 적어줍니다.
  3. Gateway 공유기의 IP 주소를 적어줍니다.
  4. DNS 인터넷 공급 회사(KT, SKT, LGU+)의 DNS를 적어줍니다. 모르겠으면 구글의 DNS인 8.8.8.8, 8.8.4.4를 적어도 됩니다.

Wake on LAN

조금의 전기라도 아끼기 위해 서버를 사용할 때만 켜서 사용하고 싶습니다. 그런데 직접 서버의 버튼을 누르지 않고 원격으로 전원을 켜는 방법이 있을까요? 이럴 때 Wake on Lan 기능을 사용하면, 서버에 연결된 랜선을 통해 전원을 켤 수 있습니다. wol(wake on lan)을 사용하기 위해서는 BIOS, 공유기, NIC(랜카드)에서 해당 기능을 지원해야 합니다.

BIOS 설정

이 부분은 마더보드 제조사별로 다를 수 있습니다. 저의 경우 아래와 같이 설정했습니다.

  • Boot > UEFI Setting > UEFI Boot > [Enabled]
    • Network stack > [Enabled]
    • Ipv4 PXE Support> [Enabled]
    • Ipv6 PXE Support > [Enabled]

공유기 설정

이 부분도 공유기마다 설정이 다를 수 있습니다. 저는 아래와 같은 화면에서 설정했습니다.

network-config-3

NIC 설정

https://help.ubuntu.com/community/WakeOnLan을 참고했습니다.

  1. 필요한 패키지를 설치합니다.

    $sudo apt-get install net-tools ethtool
    
  2. Ifconfig 명령어를 통해 NIC 장치 이름을 알아냅니다. 저의 장치 이름은 enp58s0f1입니다.

    $ifconfig
    enp58s0f1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.219.111  netmask 255.255.255.0  broadcast 192.168.219.255
            inet6 fe80::57b:5577:b95a:73a7  prefixlen 64  scopeid 0x20<link>
            ether xx:xx:xx:xx:xx:xx  txqueuelen 1000  (Ethernet)
            RX packets 910  bytes 407775 (407.7 KB)
            RX errors 0  dropped 169  overruns 0  frame 0
            TX packets 648  bytes 98785 (98.7 KB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
       
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
            loop  txqueuelen 1000  (Local Loopback)
            RX packets 403  bytes 32531 (32.5 KB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 403  bytes 32531 (32.5 KB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
  3. systemd service를 만듭니다. https://wiki.archlinux.org/title/Wake-on-LAN을 참고했습니다.

    $which ethtool
    /usr/sbin/ethtool
    $sudo vi /etc/systemd/system/wol@.service
    

    아래와 같이 작성합니다. 본인의 장치 이름과 ethtool 위치를 사용하세요.

    [Unit]
    Description=Wake-on-LAN for %i
    Requires=network.target
    After=network.target
       
    [Service]
    ExecStart=/usr/sbin/ethtool -s %i wol g
    Type=oneshot
       
    [Install]
    WantedBy=multi-user.target
    
  4. 실행합니다.

    $sudo ethtool -s enp58s0f1 wol g
    $sudo systemctl enable wol@enp58s0f1.service
    

DDNS

DDNS는 Dynamic Domain Name System입니다. 외부(집 밖)에서 집에 있는 서버에 접근하기 위해서는 집에 있는 공유기의 IP 주소를 알아야 합니다. 그런데 집에 있는 공유기의 IP는 유동 IP입니다. 사용하다가 도중에 인터넷 공급 회사에서 바꿔버릴 수도 있는 거죠. 이를 해결하기 위해 고정적인 도메인 주소(.com 또는 .net 등)를 사용해 집에 있는 공유기에 접근할 수 있게 해주는 서비스가 DDNS입니다.

  1. DDNS에 domain을 등록합니다. 무료 또는 유료로 제공하는 업체들이 있습니다. 저는 https://noip.com를 사용했습니다.
  2. 공유기의 ddns 설정 부분에서 설정을 마무리합니다.
  3. 포트포워딩을 설정합니다.
  4. 외부에서도 공유기를 제어할 수 있도록 (wol을 위해) 원격제어를 enable 합니다.

노트북을 닫았을 때 절전모드가 안되도록 설정

노트북을 닫아서 구석에 놓고 사용하려 합니다. 그런데 노트북 덮개를 닫았더니 절전모드로 들어가 버리면 안 되겠죠? 노트북을 닫아도 절전모드가 되지 않도록 설정했습니다.

  1. logind.conf 파일을 엽니다.

    $sudo vi /etc/systemd/logind.conf
    
  2. HandleLidSwitch을 ignore로 설정합니다. 주석 처리(#) 되어있지 않도록 주의합니다.

    ...
    HandleLidSwitch=ignore
    ...
    
  3. System daemon을 재시작 합니다.

    sudo systemctl restart systemd-logind
    

결과

이제 공유기에 접속해서 Wake On LAN에서 켜기 버튼을 누르면 서버에 전원이 들어옵니다.

network-config-4

끌 때는 아래의 명령어를 통해 끕니다.

$sudo shutdown now

Categories:

Updated:

Leave a comment