安裝與設定 Arch Linux ARM for Raspberry Pi 2

運用 VirtualBox 虛擬機來載入 Arch Linux ARM 的 Live CD,將提供給 Raspberry Pi 2 使用的 Arch Linux ARM 系統安裝至「記憶卡」,與首次使用的一些設定,如更新系統、主機名稱、時區、時間同步、語系、新增使用者、sudo,和有線與無線網路設定。

raspberry-pi

使用 pacman -S 指令安裝套件發生失敗或錯誤時,請先執行 pacman -Sy 更新套件列表資料

使用的材料

  1. Raspberry Pi 2(中文「樹莓派」,簡稱 RPi2
  2. Micro SD 8G 記憶卡
  3. Micro SD 讀卡機
  4. USB 轉 Serial 轉接板
  5. 杜邦接頭 * 3
  6. USB 無線網卡(ZyXEL NWD2105)
  7. 5V/2A 電源組
  8. USB A 型(公)轉 Mini USB(公)30cm
  9. 網路線
install-setup-arch-linux-for-raspberry-pi-2_01

建置安裝環境

下載 Live CD

前往 Arch Linux 下載 Live CD 的映像檔。

透過 Live CD 的方式,來製作一個全新的 Arch Linux
install-setup-arch-linux-for-raspberry-pi-2_02 install-setup-arch-linux-for-raspberry-pi-2_03 install-setup-arch-linux-for-raspberry-pi-2_04

建置虛擬機載入 Live CD

使用 VirtualBox 來啟動 Live CD。

須先安裝 VirtualBox,可至 Oracle VM VirtualBox 下載並安裝
請先將「記憶卡」插入「讀卡機」,並插入電腦

新增虛擬機

install-setup-arch-linux-for-raspberry-pi-2_05

選擇作業系統類型、與版本,後續步驟都使用預設設定即可。

install-setup-arch-linux-for-raspberry-pi-2_06

設定虛擬機,游標停在「Aarch Linux」上,點擊滑鼠右鍵 → 設定值。

install-setup-arch-linux-for-raspberry-pi-2_07

選取剛下載的 .iso 映像檔。

install-setup-arch-linux-for-raspberry-pi-2_08

設定網路卡,將「附加到(A)」變更為「橋接介面卡」(原 NAT),這樣虛擬機才可取得實體 IP(網際網路協定),後續就可使用 PieTTY 這套軟體以 SSH(安全殼協定)方式遠端登入,方便操作。

install-setup-arch-linux-for-raspberry-pi-2_09

加入並選取剛插入電腦的「讀卡機」。

install-setup-arch-linux-for-raspberry-pi-2_10

啟動虛擬機。

install-setup-arch-linux-for-raspberry-pi-2_11

選擇 Boot Arch Linux (i686),進入系統。

install-setup-arch-linux-for-raspberry-pi-2_12

設定 SSH

Live CD 預設未啟用 SSH 服務,所以要先啟用:

root@archiso ~ # systemctl start sshd.service

要使用 SSH 遠端登入 root 帳號必須設定密碼,但 Live CD 預設沒有密碼,所以須先設定:

root@archiso ~ # passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

SSH 遠端連線

必須知道主機的 IP 才能夠遠端連線,使用 ip addr show 指令顯示所有網路介面的資訊:

enp0s3 如未顯示 IP,表示您的分享器無提供 DHCP(動態主機設定協定) 功能,因此無法自動取得 IP
root@archiso ~ # ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP&rt; mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP&rt; mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:43:00:be brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.155/24 brd 192.168.0.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::3e06:d2ce:57c5:4c57/64 scope link
       valid_lft forever preferred_lft forever

開啟 PieTTY 軟體 →「主機名稱或 IP 位址(N)」輸入您的 IP(小傑的是 192.168.0.155) →「Port」SSH 預設為 22 Port → 點擊「連線」。

PieTTY 軟體,可至 PieTTY (pputty) 下載
install-setup-arch-linux-for-raspberry-pi-2_13

第一次使用 SSH 連線的主機,會提示是否儲存憑證,點擊「是(Y)」即可。

install-setup-arch-linux-for-raspberry-pi-2_14

輸入先前設定的 root 密碼後 → 點擊「ENTER」登入。

install-setup-arch-linux-for-raspberry-pi-2_15

安裝 Arch Linux

進入系統後,使用 lsblk 指令來列出系統上所有的磁碟列表,必須顯示 sdb,才表示有存取到「記憶卡」:

root@archiso ~ # lsblk
MAME    MAJ:MIN RM  SIZE    RO  TYPE    MOUNTPOINT
sda       8:0    0    8G     0  disk
sdb          8:16   1  7.4G     0  disk
sr0      11:0    1  701M     0  rom     /run/archiso/bootmnt
loop0     7:0    0 304.3M    1  loop    /run/archiso/sfs/airootfs

磁碟分割

使用 cfdisk 指令來進行「記憶卡」的磁碟分割:

root@archiso ~ # cfdisk /dev/sdb
install-setup-arch-linux-for-raspberry-pi-2_16
磁碟分割配置表
分割區 容量 分割類型 Type 描述
/dev/sdb1 100M primary e W95 FAT16 (LBA) 開機載入程式(boot loader)
/dev/sdb2 7.3G primary Linux 系統

/dev/sdb1 分割步驟:

  1. 點選 [New]
  2. Parttion size:輸入「100M」→ 點擊「ENTER」
  3. 點選 [primary]
  4. 點選 [Type]
  5. 點選「e W95 FAT16 (LBA)」

/dev/sdb2 分割步驟:

  1. 點選 [New]
  2. Parttion size:7.3G(預設,也就是剩餘空間)→ 點擊「ENTER」
  3. 點選 [primary]
  4. 點選 [Type]
  5. 點選「83 Linux」

分割完成後,點選 [Write] → 系統詢間,是否要將分割設定寫入,輸入 yes → 點擊「ENTER」→ 點選 [Quit] → 點擊「ENTER」離開磁碟分割介面 。

install-setup-arch-linux-for-raspberry-pi-2_17

格式化磁碟

使用 mkfs 指令來格式化剛建立的二個分割糟,並用 -F 參數指定文件系統大小:

因容量有 7.3G,所以格式化時間約需 2 分鐘
root@archiso ~ # mkfs.vfat -F 16 /dev/sdb1
mkfs.fat 3.0.28 (2015-05-16)

root@archiso ~ # mkfs.ext4 /dev/sdb2
mke2fs 1.42.13 (17-May-2015)
/dev/sdb2 contains a ext4 file system
        last mounted on / on Thu Jan  1 00:00:04 1970
Proceed anyway? (y,n) y
Creating filesystem with 1914624 4k blocks and 479552 inodes
Filesystem UUID: 7c836576-0ae2-4c95-bceb-35ba2a9984e4
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

掛載磁碟

  1. 使用 mkdir 指令新增二個要掛載的目錄
  2. 使用 mount 指令將「記憶卡」建立的二個分割糟,掛載至新增的目錄
  3. 使用 cd 指令切換至要安裝 Arch Linux 系統的掛載目錄,也就是 /mnt/rootfs
  4. 確定是否已切換至 /mnt/rootfs 目錄
在 Linux 系統裡,要對裝置進行存取時,必須先進行掛載的動作
root@archiso ~ # mkdir /mnt/boot /mnt/rootfs
root@archiso ~ # mount /dev/sdb1 /mnt/boot
root@archiso ~ # mount /dev/sdb2 /mnt/rootfs
root@archiso ~ # cd /mnt/rootfs
root@archiso /mnt/rootfs # 

安裝系統

使用 wget 指令,從網路下載 Arch Linux 的安裝檔:

root@archiso /mnt/rootfs # wget http://archlinuxarm.org/os/ArchLinuxARM-rpi-2-latest.tar.gz

...(前面省略)...

ArchLinuxARM-rpi-2-latest.tar 100%[==================================================>] 276.32M   729KB/s   in 6m 29s

2016-03-02 22:06:53 (728 KB/s) - ‘ArchLinuxARM-rpi-2-latest.tar.gz’ saved [289740413/289740413]

wget http://archlinuxarm.org/os/ArchLinuxARM-rpi-2-latest.tar.gz  2.76s user 44.38s system 12% cpu 6:32.25 total

使用 bsdtar 指令將下載完成的 Arch Linux 安裝檔,解壓縮至欲安裝的掛載目錄,也就是 /mnt/rootfs

解壓縮動作,就是在進行 Arch Linux 的安裝
解壓縮時間約需 8 分鐘
root@archiso /mnt/rootfs # bsdtar -xpf ArchLinuxARM-rpi-2-latest.tar.gz -C /mnt/rootfs
bsdtar -xpf ArchLinuxARM-rpi-2-latest.tar.gz -C /mnt/rootfs  13.91s user 6.26s system 8% cpu 4:07.68 total
  1. 使用 mv 指令將開機載入程式(boot loader)移動至對應的掛載目錄,也就是 /dev/sdb1
  2. 使用 sync 指令來手動強迫將記憶體(RAM) 的資料,寫入磁碟
  3. 使用 cd 指令切換至家目錄
  4. 使用 umount 將已掛載的檔案系統卸載
  5. 使用 poweroff 將系統關機
root@archiso /mnt/rootfs # mv /mnt/rootfs/boot/* /mnt/boot/
root@archiso /mnt/rootfs # sync
root@archiso /mnt/rootfs # cd ~
root@archiso ~ # umount /mnt/boot /mnt/rootfs
root@archiso ~ # poweroff

Raspberry Pi 2 首次開機

首次使用系統,因為還無法得知網路 IP,所以須使用 Serial 的方式連線,來查詢 IP

硬體連結

RPi2 與「USB to Serial 板」連結圖。

TX 連結「USB to Serial 板」 的 RX;RX 則連結 TX
install-setup-arch-linux-for-raspberry-pi-2_18
  1. 將「記憶卡」插入「RPi2
  2. RPi2 連結「網路線」(須與電腦在同一網域)
  3. 使用「杜邦接頭」將 RPi2 與「USB to Serial 板」連結(參考上圖)
  4. 使用「USB A to Mini USB 線」將「USB to Serial 板」與電腦連結
  5. 將「電源組」插入 RPi2,並過電

Serial 連線

開啟 PieTTY 軟體 → 點擊「PuTTY 模式」。

install-setup-arch-linux-for-raspberry-pi-2_19

點擊「是(Y)」。

install-setup-arch-linux-for-raspberry-pi-2_20

確認電腦「USB to Serial 板」連結 COM Port 的位置

install-setup-arch-linux-for-raspberry-pi-2_21

輸入設定值:

  1. Connection type:點擊「Serial」
  2. Serial line:輸入電腦的 COM Port 位置(小傑的環境為 COM9)
  3. Speed:115200
  4. 點擊「Open」進行連結
install-setup-arch-linux-for-raspberry-pi-2_22

登入帳號 root,預設密碼 root:

使用 Serial 方式連結,須先點擊「ENTER」,才會顯示輸入帳密的文字
alarmpi login: root
Password:

使用 ip addr show 指令來取得網路 IP

[root@alarmpi ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether b8:27:eb:86:49:0c brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.156/24 brd 192.168.0.255 scope global dynamic eth0
       valid_lft 6961sec preferred_lft 6961sec
    inet6 fe80::ba27:ebff:fe86:490c/64 scope link系統更新
       valid_lft forever preferred_lft forever

SSH 遠端連線

開啟 PieTTY 軟體 →「主機名稱或 IP 位址(N)」輸入您的 IP(小傑的是 192.168.0.156) →「Port」SSH 預設為 22 Port → 點擊「連線」。

因安全性考量,Arch Linux 預設無法使用 SSH 來遠端登入 root 帳號,如預設不是 alarm 帳號登入,須使用「alarm@ + IP」方式登入(例 alarm@192.168.0.156)
Arch Linux 預設提供 root 與 alarm(表示 Arch Linux ARM) 這二個帳號,密碼同帳號
install-setup-arch-linux-for-raspberry-pi-2_23

輸入 alarm 帳號的預設密碼 alarm

Using username "alarm".
alarm@192.168.0.156's password: *****
Welcome to Arch Linux ARM

     Website: http://archlinuxarm.org
       Forum: http://archlinuxarm.org/forum
         IRC: #archlinux-arm on irc.Freenode.net
Last login: Thu Mar  3 02:31:07 2016

登入後可使用 su - rootsu 指令,來切換至「超級用戶」root 帳號(預設密碼 root)。

[alarm@alarmpi ~]$ su - root
Password:

基本設定

更新系統

使用 pacman(套件管理工具)來,-S 同步、y 更新套件列表資料到最新,並進行 u 系統更新,完成後重新啟動:

[root@alarmpi ~]# pacman -Syu
[root@alarmpi ~]# reboot

主機名稱

修改主機名稱,預設為 alarmpi:

須重啟系統後才會生效
[root@alarmpi ~]# echo arch > /etc/hostname

設定時區

修改為台北的時區,並使用 -sf 參數來強制更改內容,不然有時會因檔案已存在而失敗:

[root@alarmpi ~]# ln -sf /usr/share/zoneinfo/Asia/Taipei /etc/localtime

時間同步

檢查是否有啟用 systemd-timesyncd 這個時間同步服務,預設為啟用且開機自動啟用:

[root@alarmpi ~]# systemctl status systemd-timesyncd

新增三部台灣 NTP 的主機:

[root@alarmpi ~]# nano /etc/systemd/timesyncd.conf

[Time]
# 設定 NTP Server 主機位址,使用空白鍵定義多個
NTP=tick.stdtime.gov.tw watch.stdtime.gov.tw tw.pool.ntp.org

檢查服務狀態的時間與區域是否與現狀相符:

[root@alarmpi ~]# timedatectl status
      Local time: Tue 2016-03-08 00:33:02 CST
  Universal time: Mon 2016-03-07 16:33:02 UTC
        RTC time: n/a
       Time zone: Asia/Taipei (CST, +0800)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no

也可使用 date 指令來檢查當前系統時間:

[root@alarmpi ~]# date
Tue Mar  8 00:39:42 CST 2016

語系設定

預設的語系為「英文(美國)」,若要安裝其他語系,可在 /etc/locale.gen 檔案,移除需要語系前面的 # 註解符號。

保留原設定,並取消以下所列四個項目前面的註解符號,以符合「繁體中文」:

[root@alarmpi ~]# nano /etc/locale.gen

en_US.UTF-8 UTF-8
en_US ISO-8859-1
zh_TW.UTF-8 UTF-8
zh_TW BIG5

立即下載安裝字型:

[root@alarmpi ~]# locale-gen
Generating locales...
  en_US.UTF-8... done
  en_US.ISO-8859-1... done
  zh_TW.UTF-8... done
  zh_TW.BIG5... done
Generation complete.

新增使用者

新增使用者 smalljacky,Arch Linux 預設不會自動建立使用者的家目錄,使用 -m 參數可建立使用者的家目錄 /home/[使用者名稱]

[root@alarmpi ~]# useradd -m smalljacky

設定密碼:

[root@alarmpi ~]# passwd smalljacky
Enter new UNIX password:
Retype new UNIX password:

sudo

Arch Linux 預設沒有安裝 sudo,所以先安裝:

[root@alarmpi ~]# pacman -S sudo

sudo 的配置文件是 /etc/sudoers,如下加入可使用 sudo 的使用者 smalljacky:

[root@alarmpi ~]# nano /etc/sudoers
## Uncomment to allow members of group sudo to execute any command
# %sudo ALL=(ALL) ALL
%smalljacky ALL=(ALL) ALL

切換至使用者 smalljacky,檢查是否可正確使用 sudo 指令,這裡安裝 vsftpd 軟體來測試。

首次使用 sudo 會提醒一些注意事項,接著會要求在次輸入密碼:

[root@alarmpi ~]# su - smalljacky
[smalljacky@alarmpi ~]$ sudo pacman -S vsftpd

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for smalljacky:

有線網路設定

設定固定 IP

Arch Linux 預設網路介面方式為 DHCP,但做為 Server 通常都會設定一組固定 IP

有二種方式可以設定固定 IP,選擇一種即可,小傑環境所要設定的 IP 為 192.168.0.170。

建議使用 systemd 這種方式,比 netctl 更好控管

使用 netctl

先從 /etc/netctl/examples 複製一份樣本設定檔至 /etc/netctl,這裡複製靜態(固定)IP 檔,而 my_network_eth0 為自訂名稱:

[root@alarmpi ~]# cp /etc/netctl/examples/ethernet-static /etc/netctl/my_network_eth0

編輯設定檔:

[root@alarmpi ~]# nano /etc/netctl/my_network_eth0

Description='A basic static ethernet connection'
# 網路介面名稱
Interface=eth0
# 連接方式
Connection=ethernet
# 靜態 IP
IP=static
# IP 位址,/24 代表 255.255.255.0 子網路遮罩
Address=('192.168.0.170/24')
#Routes=('192.168.0.0/24 via 192.168.1.2')
# 預設閘道
Gateway=192.168.0.1
DNS=('8.8.8.8')

## For IPv6 autoconfiguration
#IP6=stateless

## For IPv6 static address configuration
#IP6=static
#Address6=('1234:5678:9abc:def::1/64' '1234:3456::123/96')
#Routes6=('abcd::1234')
#Gateway6='1234:0:123::abcd'

啟用上面建立的設定檔,並於開機自動啟用:

[root@alarmpi ~]# netctl start my_network_eth0
[root@alarmpi ~]# netctl enable my_network_eth0

使用 systemd

禁用 DHCP,並設定 Address(IP)與 Gateway:

[root@alarmpi ~]# nano /etc/systemd/network/eth0.network

[Match]
# 網路介面名稱
Name=eth0

[Network]
# 將預設啟用的 DHCP 註解
#DHCP=yes

# 新增要指定的固定 IP
Address=192.168.0.170/24
Gateway=192.168.0.1

重新啟動網路設定:

[root@alarmpi ~]# systemctl restart systemd-networkd.service

無線網路設定

在關機狀態,將「USB 無線網卡」插入 RPi2 後,使用 iw dev 來偵測無線網路介面的名稱:

若沒看到相似的輸出,代表尚未載入無線網路驅動,這時就必須手動將驅動載入
[root@alarmpi ~]# iw dev
phy#0
        Interface wlan0
                ifindex 3
                wdev 0x1
                addr 28:28:5d:fe:77:76
                type managed

啟用介面並驗證是否啟用:

<> 出現 UP 代表已啟用,不用理會 state DOWN
[root@alarmpi ~]# ip link set up wlan0
[root@alarmpi ~]# ip addr show
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 28:28:5d:fe:77:76 brd ff:ff:ff:ff:ff:ff

安裝連上無線網路所需的一些軟體:

  • dialog:新增無線網路
  • wpa_supplicant:提供 WPA/WPA2 加密支持
[root@alarmpi ~]# pacman -S dialog wpa_supplicant

設定符合台灣的頻段:

[root@alarmpi ~]# nano /etc/conf.d/wireless-regdom

# 將前面的 # 去掉
WIRELESS_REGDOM="TW"

自動取得 IP

以下提供二種方式,選擇一種即可:

使用 wifi-menu

使用 wifi-menu 指令進入選擇 APSSID 選單,完成連結後驗證是否取得 IP

[root@alarmpi ~]# wifi-menu wlan0
[root@alarmpi ~]# ip addr show
3: wlan0:  mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 28:28:5d:fe:77:76 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.154/24 brd 192.168.0.255 scope global wlan0
       valid_lft forever preferred_lft forever
    inet6 fe80::2a28:5dff:fefe:7776/64 scope link
       valid_lft forever preferred_lft forever

設定開機自動連線,將 apname 更改成欲連接 APSSID(服務設定識別碼)名稱

[root@alarmpi ~]# netctl enable wlan0-apname

使用 netctl

先從 /etc/netctl/examples 複製一份樣本設定檔至 /etc/netctl,這裡複製 DHCP 檔,而 my_network_wlan0 為自訂名稱:

[root@alarmpi ~]# cp /etc/netctl/examples/wireless-wpa /etc/netctl/my_network_wlan0

編輯設定檔:

[root@alarmpi ~]# nano /etc/netctl/my_network_wlan0

Description='A simple WPA encrypted wireless connection'
# 網路介面名稱
Interface=wlan0
# 連接方式
Connection=wireless

# 加密方式
Security=wpa
# 自動取得 IP
IP=dhcp

# 無線基地台的 ID
ESSID='JackyHome_2.4G'
# Prepend hexadecimal keys with \"
# If your key starts with ", write it as '""<key>"'
# See also: the section on special quoting rules in netctl.profile(5)
# 連結 wifi 密碼
Key='aaaa530358superP@ssword'
# Uncomment this if your ssid is hidden
#Hidden=yes
# Set a priority for automatic profile selection
#Priority=10

啟用上面建立的設定檔,並於開機自動啟用:

[root@alarmpi ~]# netctl start my_network_wlan0
[root@alarmpi ~]# netctl enable my_network_wlan0

設定固定 IP

Arch Linux 預設網路介面方式為 DHCP,但做為 Server 通常都會設定一組固定 IP

使用 netctl

小傑環境所要設定的 IP 為 192.168.0.180。

先從 /etc/netctl/examples 複製一份樣本設定檔至 /etc/netctl,這裡複製靜態(固定)IP 檔,而 my_network_static_wlan0 為自訂名稱:

[root@alarmpi ~]# cp /etc/netctl/examples/wireless-wpa-static /etc/netctl/my_network_static_wlan0

編輯設定檔:

[root@alarmpi ~]# nano /etc/netctl/my_network_static_wlan0

Description='A simple WPA encrypted wireless connection using a static IP'
# 網路介面名稱
Interface=wlan0
# 連接方式
Connection=wireless
# 加密方式
Security=wpa
# 無線基地台的 ID
ESSID='JackyHome_2.4G'
# 連結 wifi 密碼
Key='aaaa530358superP@ssword'
# 靜態 IP
IP=static
# IP 位址,/24 代表 255.255.255.0 子網路遮罩
Address='192.168.0.180/24'
# 預設閘道
Gateway='192.168.0.1'
DNS=('8.8.8.8')
# Uncomment this if your ssid is hidden
#Hidden=yes

啟用上面建立的設定檔,並於開機自動啟用:

[root@alarmpi ~]# netctl start my_network_static_wlan0
[root@alarmpi ~]# netctl enable my_network_static_wlan0

常用指令

服務

這裡將操作 systemd-networkd 這個服務。

啟動服務:

[root@alarmpi ~]# systemctl start systemd-networkd.service

重新啟動服務:

[root@alarmpi ~]# systemctl restart systemd-networkd.service

[啟動] 開機自動啟動服務:

[root@alarmpi ~]# systemctl enable systemd-networkd.service

[禁用] 開機自動啟動服務:

[root@alarmpi ~]# systemctl disable systemd-networkd.service

[查看所有] 開機自動啟動服務:

[root@alarmpi ~]# systemctl list-unit-files | grep enable

autovt@.service                        enabled
dbus-org.freedesktop.network1.service  enabled
dbus-org.freedesktop.resolve1.service  enabled
getty@.service                         enabled
haveged.service                        enabled
nginx.service                          enabled
php-fpm.service                        enabled
sshd.service                           enabled
systemd-networkd.service               enabled
systemd-resolved.service               enabled
systemd-timesyncd.service              enabled
vsftpd.service                         enabled
systemd-networkd.socket                enabled
remote-fs.target                       enabled

網路

啟用與禁用網路介面

啟用網路並驗證,在 <> 出現 UP 代表已啟用:

[root@alarmpi ~]# ip link set eth0 up
[root@alarmpi ~]# ip addr show
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether b8:27:eb:86:49:0c brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.152/24 brd 192.168.0.255 scope global dynamic eth0
       valid_lft 7178sec preferred_lft 7178sec
    inet6 fe80::ba27:ebff:fe86:490c/64 scope link
       valid_lft forever preferred_lft forever

禁用網路並驗證,在 <> 內無出現 UP 代表已禁用:

禁用網路介面,本機 ping 仍可正常回應(這有點怪…)
[root@alarmpi ~]# ip link set eth0 down
[root@alarmpi ~]# ip addr show
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether b8:27:eb:86:49:0c brd ff:ff:ff:ff:ff:ff

檢查連線

執行下列指令檢查網路是否正常:

[root@alarmpi ~]# ping -c 3 www.google.com
PING www.google.com (202.39.143.59) 56(84) bytes of data.
64 bytes from 202-39-143-59.HINET-IP.hinet.net (202.39.143.59): icmp_seq=1 ttl=61 time=20.4 ms
64 bytes from 202-39-143-59.HINET-IP.hinet.net (202.39.143.59): icmp_seq=2 ttl=61 time=20.5 ms
64 bytes from 202-39-143-59.HINET-IP.hinet.net (202.39.143.59): icmp_seq=3 ttl=61 time=24.9 ms

--- www.google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 20.452/21.964/24.926/2.094 ms

列出所有網路介面

使用以下指令來列出所有網路介面:

[root@alarmpi ~]# networkctl list
IDX LINK             TYPE               OPERATIONAL SETUP
  1 lo               loopback           carrier     unmanaged
  2 eth0             ether              routable    configured

2 links listed.

顯示所有介面資訊:

[root@alarmpi ~]# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether b8:27:eb:86:49:0c brd ff:ff:ff:ff:ff:ff

更詳細的介面資訊:

[root@alarmpi ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether b8:27:eb:86:49:0c brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.170/24 brd 192.168.0.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::ba27:ebff:fe86:490c/64 scope link
       valid_lft forever preferred_lft forever

發表迴響