全部產品
Search
文件中心

:Alibaba Cloud Linux 2執行個體修改網路服務的方法及影響說明

更新時間:Oct 22, 2024

概述

本文主要介紹在Alibaba Cloud Linux 2系統的執行個體中,網路服務使用傳統的network-scripts與使用systemd-networkd產生的影響說明,以及進行相關配置變更的方法。

詳細資料

說明

阿里雲提醒您:

  • 如果您對執行個體或資料有修改、變更等風險操作,務必注意執行個體的容災、容錯能力,確保資料安全。

  • 如果您對執行個體(包括但不限於ECS、RDS)等進行配置與資料修改,建議提前建立快照或開啟RDS記錄備份等功能。

  • 如果您在阿里雲平台授權或者提交過登入帳號、密碼等安全資訊,建議您及時修改。

Alibaba Cloud Linux 2執行個體使用的網路服務

Alibaba Cloud Linux 2執行個體從下列鏡像開始,預設網路服務從systemd-networkd切換為network-scripts,以符合大多數使用者的網路設定習慣,實現更好的相容性。由於存量執行個體無法執行自動切換操作,目前存量Alibaba Cloud Linux 2執行個體仍然保持systemd-networkd的網路設定模式,若您希望將存量執行個體的網路類型切換為network-scripts,請參見進行從systemd-networkd切換至network-scripts的方法操作。

  • 基礎鏡像:aliyun_2_1903_x64_20G_alibase_20210208.vhd

  • AMD版鏡像:aliyun_2_1903_x64_20G_uefi_alibase_20210218.vhd

  • 本地鏡像:aliyun_2_1903_x64_20G_nocloud_alibase_20210218.vhd

  • 可信版鏡像:aliyun_2_1903_x64_20G_secured_alibase_20210218.vhd

  • 快速啟動版鏡像:aliyun_2_1903_x64_20G_qboot_alibase_20210218.vhd

  • 等保2.0三級版鏡像:aliyun_2_1903_x64_20G_dengbao_alibase_20210218.vhd

從systemd-networkd切換至network-scripts的方法

切換網路服務所產生的影響說明

  • 對原有執行個體的影響

    如果同時購買了新執行個體,則新執行個體和之前執行個體的網路設定模式將會不一致。因此建議您將存量執行個體的網路類型從systemd-networkd切換為network-scripts。

  • 開機啟動速度的變化

    • 傳統的network-scripts網路服務,使用Shell指令碼直接進行網路設定,執行效率較低。執行個體的網卡在無特殊配置的前提下,在整個系統啟動過程中,即從執行個體建立到通過SSH遠端連線過程中,相比使用systemd-networkd網路服務的執行個體多出2~4秒的啟動時間。

    • 如果接受不了執行個體的啟動速度變慢,且使用者可以接受不相容network-scripts的網路設定方式,請參見從network-scripts切換至systemd-networkd的方法,切換網路服務為systemd-networkd,若遇到systemd-networkd相關的問題,請參見systemd-networkd常見問題及處理進行修複。

  • 網路設定檔路徑的更改

    沒有切換網路服務之前,原路徑為/etc/systemd/network ,現在需要切換回傳統的 /etc/sysconfig/network-scripts/路徑。若您想瞭解兩個設定檔常見的配置項差異,具體資訊請參見network-scripts與systemd-networkd配置項的差異

  • 網路服務重啟命令的變化

    • 使用systemd-networkd網路服務,使用以下命令重啟網路服務。

      sudo systemctl restart systemd-networkd

    • 切換至network-scripts網路服務後,使用以下命令重啟網路服務。

      sudo systemctl restart network

將存量執行個體的網路服務切換為network-scripts

執行下列操作之前,請確保已知悉切換網路服務所產生的影響,方可執行下列操作。

說明

注意:本次操作涉及網路設定,操作不當可能會導致網路不通。為了避免誤操作引發資料安全和網路風險,請為Linux執行個體的系統硬碟建立快照。關於如何建立快照,請參見建立快照

  1. 根據您是否沿用舊的resolv.conf設定檔,參考以下內容完成配置:

    • 如果沿用舊的resolv.conf設定檔,請參考以下步驟:

      1. 執行以下命令,對resolv.conf軟連結檔案進行備份。

        mv /etc/resolv.conf /etc/resolv.conf.bak
      2. 執行以下命令,將備份檔案的內容寫入新的resolv.conf設定檔中。

        cat /etc/resolv.conf.bak > /etc/resolv.conf
      3. 執行以下命令,鎖定resolv.conf設定檔,對resolv.conf設定檔進行保護。

        chattr +i /etc/resolv.conf
    • 如果不需要沿用舊的resolv.conf設定檔,請執行以下命令,刪除舊的resolv.conf設定檔。

      rm /etc/resolv.conf
      說明

      說明

  2. 依次執行以下命令,切換網路管理服務。

    systemctl enable network
    systemctl disable systemd-networkd
    systemctl disable systemd-resolved
  3. 執行以下命令,重啟機器。

    reboot
  4. 執行以下命令,確認啟動network-scripts網路服務成功。

    systemctl status network

從network-scripts切換至systemd-networkd的方法

如果您比較在意系統的啟動速度,並已知悉sytemd-networkd存在的已知問題及風險,您可參見下列步驟,將網路服務從network-scripts切換至systemd-networkd。

說明

注意:本次操作涉及網路設定,操作不當可能會導致網路不通。為了避免誤操作引發資料安全和網路風險,請為Linux執行個體的系統硬碟建立快照。關於如何建立快照,請參見建立快照

  1. 根據您是否沿用舊的resolv.conf設定檔,參考以下內容完成配置:

    • 如果沿用舊的resolv.conf設定檔,請參考以下步驟:

      1. 執行以下命令,對resolv.conf軟連結檔案進行備份。

        cp /etc/resolv.conf /etc/resolv.conf.bak
      2. 執行以下命令,鎖定resolv.conf設定檔,對resolv.conf設定檔進行保護。

        chattr +i /etc/resolv.conf
    • 如果不需要沿用舊的resolv.conf設定檔,請參考以下步驟:

      1. 請執行以下命令,刪除舊的resolv.conf設定檔。

        rm /etc/resolv.conf
      2. 執行以下命令,產生resolv.conf設定檔的軟連結。

        ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
  2. 執行以下命令,確認網路介面設定檔存在且有效。

    cat /etc/systemd/network/10-eth0.network

    系統顯示類似如下。

    [Match]
    Name=eth0
    
    [Network]
    DHCP=yes
    
    [DHCP]
    UseDNS=yes
  3. 依次執行以下命令,切換網路管理服務。

    systemctl disable network.service
    systemctl enable systemd-networkd
    systemctl enable systemd-resolved
  4. 執行以下命令,重啟機器。

    reboot
  5. 執行以下命令,確認啟動systemd-networkd網路服務成功。

    systemctl status systemd-networkd

systemd-networkd常見問題及處理

以下內容為使用systemd-networkd網路服務常見的問題及處理方法,請根據現場情況,選擇下列對應的步驟。

多網卡預設路由配置

問題描述

解決方案

如果在/etc/systemd/network/XX-ethN.network設定檔中,[Match]地區使用如下通配方式的網路設定,systemd-networkd會自動為所有網卡添加預設路由,從而會覆蓋使用者指定的路由配置, 導致網路不通等問題。

[Match]
Name=eth*

[Network]
DHCP=yes

[DHCP]
UseDNS=yes

請參見配置彈性網卡中的為Alibaba Cloud Linux 2系統配置彈性網卡章節,按需求為每個網卡單獨配置,避免使用通配方式為特定網卡自動設定上預設路由。

systemd-resolved佔用5355連接埠

問題描述

解決方案

預設配置下,systemd-resolved服務會開啟DNS服務監聽,佔用UDP的5355連接埠。

若需要關閉5355連接埠,請將/etc/systemd/resolved.conf 設定檔中的LLMNR=yes配置項,更改為LLMNR=no

[Resolve]
#DNS=
#FallbackDNS=XXXXX
LLMNR=yes
說明

說明:

  • LLMNR=yes配置項為注釋狀態,則刪除配置項前面的(#)符號。

  • 如果在該檔案中沒有LLMNR=yes配置項,請在[Resolve]地區,添加LLMNR=yes配置項。

DNS網域名稱解析間歇逾時的問題

問題描述

問題原因

解決方案

  • Alibaba Cloud Linux 2執行個體或其他執行個體,例如,CentOS執行個體,存在DNS網域名稱解析間接逾時的問題,,系統會提示Name or service not known報錯,該問題是已知問題,並提供了相應的解決方案,解決方案請參見鏡像FAQ如何處理CentOS DNS解析逾時章節。

  • etc/resolv.conf檔案中,添加阿里雲options配置options timeout:2 attempts:3 rotate single-request-reopen的方法,在使用systemd-resolved網路服務的Alibaba Cloud Linux 2執行個體中無法持久化,一旦重啟系統,或者重啟systemd-resolved服務後,該配置就會失效。

  • systemd-networkd網路管理工具依賴systemd-resolved管理DNS網域名稱解析配置,但是systemd-resolved服務無法自動設定上述options參數,只能手動在/etc/resolv.conf檔案中配置該參數。

  • 預設/etc/resolv.conf檔案是/run/systemd/resolve/resolv.conf檔案的軟連結檔案,無法通過chattr +i命令的方式鎖定檔案,重啟系統或網路服務,會導致寫入到/etc/resolv.conf檔案中的資訊丟失。

IP轉寄配置失效

問題描述

問題原因

解決方案

在系統內sysconfig的網路轉寄預設配置為default.forwarding==1的情況下,建立網卡的forwarding配置被自動更改為0,導致新增網卡IP轉寄失效。

systemd-networkd的配置缺少IPForward=no ,導致inetdev_init正常初始化 forwarding=$default 後被設定為 forwarding=0

您可以通過以下步驟新增一條IP轉寄配置,開啟IP轉寄功能:

  1. 在設定檔 /etc/systemd/network/10-eth0.network 中, [Network] 地區增加 IPForward=yes 配置項,如下所示。

    [Match]
    Name=eth0
    
    [Network]
    DHCP=yes
    IPForward=yes
    
    [DHCP]
    UseDNS=yes
  2. 執行以下命令,重啟systemd-networkd服務。

    systemctl restart systemd-networkd

network-scripts與systemd-networkd配置項的差異

配置項

network-scripts

systemd-networkd

備忘

IP

設定檔為:/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0 #裝置別名
BOOTPROTO=dhcp #IP擷取方式:
·    static: 靜態IP
·    dhcp: dhcp協議
·    bootp: bootp協議
ONBOOT=yes #系統啟動時是否啟用此裝置

設定檔為:/etc/systemd/network/10-eth0.network

[Match]
·    Name=eth0
[Network]
·    DHCP=yes
[DHCP]
·    UseDNS=yes

  • network-scripts啟動網路設定服務後,會自動產生預設設定檔。

  • systemd-networkd需要使用者添加預設設定檔。

網關

設定檔為:/etc/sysconfig/network

NETWORKING=yes
HOSTNAME=xxx
GATEWAY=192.168.X.X

設定檔為:/etc/systemd/network/10-eth0.network

[Network]
·    Gateway=192.168.X.X
·    DNS=

N/A

DNS

設定檔為:/etc/resolv.conf

nameserver

設定檔為:/etc/resolv.conf

說明

說明:此檔案為指向/run/systemd/resolve/resolv.conf檔案的軟串連,請參見DNS網域名稱解析間歇逾時的問題,關注檔案持久化的問題。

nameserver

修改DNS的方法,請參見如何在Alibaba Cloud Linux 2執行個體中通過“/etc/resolv.conf”檔案自訂配置DNS

適用於

  • Elastic Compute Service