Login

Navigation

This articles is published 445 days ago and last updated 64 days ago, some information may be out of date.

Linux設置靜態IP地址

Cover.jpg

image from unsplash

前言:
通常,在大多數網路裝置,IP 地址由路由器 DHCP 伺服器動態分配。但在伺服器上使用靜態IP地址,使提供的服務更穩定。假如DHCP伺服器不工作,會影響到區域網路的電腦穫取IP地址,從而影響服務的存取,而設定了靜態IP的伺服器則不受影響,所以靜態IP也是必需的(在提供服務的裝置)。
在RHEL/CentOS/Fedora中配置靜態IP地址:

要在RHEL / CentOS / Fedora中設定靜態IP地址

首先查看本機的網絡界面名稱:

2022-03-18_121212.png

上圖示,本機的網路介面名稱是eth0,代表編輯的網絡文件是ifcfg-eth0

使用nano或者vim編輯:

vim /etc/sysconfig/network-scripts/ifcfg-eth0

ifcfg-eth0檔案中,根據自身網絡進行更改:

DEVICE="eth0"
BOOTPROTO="static"
DNS1="8.8.8.8"
DNS2="1.1.1.1"
GATEWAY="192.168.0.1"
HOSTNAME="linux.kingtam.win"
HWADDR="00:19:99:A4:46:AB"
IPADDR="192.68.0.100"
NETMASK="255.255.255.0"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="8105c095-799b-4f5a-a445-c6d7c3681f07"

需要編輯以下各項的設定:

  • BOOTPROTO 是使用dhcp(預設) 或者 static(靜態)
  • DNS1 和 DNS2 可以使用公共DNS服務如8.8.8.8, 1.1.1.1
  • 閘道(GATEWAY) 即路由或者防火牆的IP
  • 主機名(HOSTNAME) 自定義
  • 網路掩碼(NETMASK) 通常是255.255.255.0 (/24) 根據自身網絡參數修改
  • IP地址(IPADDR) 本機的IP地址
  • ONBOOT 是否開機自啟動 是yes或者no

接着編輯:resolve.conf

resolve.conf用來設定 DNS 用戶端要求名稱解析時,所定義的各項內容。
vim /etc/resolv.conf
nameserver 8.8.8.8 # 修改自定的DNS地址
nameserver 1.1.1.1 # 修改自定的DNS地址

使用以下命令重新啟動網路(套用所有設定):2選1

/etc/init.d/network restart
systemctl restart network
在 Debian / Ubuntu(17.10以前版本) 中設置靜態 IP 地址:

要在 Debian/Ubuntu(17.10以前版本) 中設定靜態 IP 地址,請打開以下檔:

vim /etc/network/interfaces

預設是dhcp

 no-auto-down eth0 # 也可能是 auto eth0
 iface eth0 inet dhcp

使用nano或者vim編輯,根據自身網絡進行更改:

no-auto-down eth0
iface eth0 inet static 
  address 192.168.0.100
  netmask 255.255.255.0
  gateway 192.168.0.1
  dns-nameservers 1.1.1.1
  dns-nameservers 8.8.8.8

需要編輯以下各項的設定:

  • iface eth0 inet dhcp(預設) 修改為iface eth0 inet static(靜態)
  • dns-nameservers 可以是多組,如使用公共DNS服務如8.8.8.8, 1.1.1.1
  • gateway (閘道) 即路由或者防火牆的IP
  • netmask (網路掩碼) 通常是255.255.255.0 (/24) 根據自身網絡參數修改
  • address 本機的IP地址

儲存interfaces設定後,接着進行編輯:/etc/resolv.conf

vim /etc/resolv.conf
nameserver 8.8.8.8 # 修改自定的DNS地址
nameserver 1.1.1.1 # 修改自定的DNS地址

使用以下命令重新啟動網路(套用所有設定):2選1

/etc/init.d/network restart
systemctl restart network
在Ubuntu(較新版本) 中設置靜態 IP 地址:
Ubuntu 在17.10 及更高版本開始使用 Netplan 作為預設的網路管理工具。

網絡配置文件存放在/etc/netplan/目錄內的*.yaml文件

我這裡是/etc/netplan/00-installer-config.yaml,預設內容是:

network:
  ethernets:
    eth0:
      dhcp4: true
  version: 2

使用nano或者vim編輯00-installer-config.yaml配置文件:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
     dhcp4: no
     addresses: [192.168.1.2/24]
     routes:
      - to: default
        via: 192.168.1.1
     nameservers:
       addresses: [8.8.8.8,1.1.1.1]

需要編輯以下各項的設定:

  • renderer: networkd 指定此接口由systemd-networkd服務接管
  • dhcp4: no 轉為手動設置靜態 IP 地址
  • addresses 本機的IP地址及網段
  • nameservers DNS伺服器

    • addresses [8.8.8.8,1.1.1.1] 可以是多組IP地址

儲存00-installer-config.yaml設定

使用以下命令套用網絡設定

netplan apply


在Ubuntu 中設置VLAN:
這裡以N1刷入Armbian作範例,網口是連接交換機的Trunk口。

動態穫取 IP 地址

網絡配置文件存放在/etc/netplan/目錄內的*.yaml文件

/etc/netplan/armbian-default.yaml,預設內容是:

network:
  version: 2
  renderer: NetworkManager

使用nano或者vim編輯/etc/netplan/armbian-default.yaml配置文件:

network:
  version: 2
  renderer: NetworkManager
  ethernets:
      eth0:
          dhcp4: true
  vlans:
      vlan.3:
          id: 3
          link: eth0
          dhcp4: true

使用 YAML 格式編寫的配置文件,各項的設定

  • 第一行中的「version:2」指定了在此文件中使用的 YAML 版本。
  • 「renderer」字段指定要使用的網路管理工具,在本例中為「NetworkManager」,這是一種流行的用於管理 Linux 系統上網路的工具。
  • 在「ethernets」部分中,對「eth0」物理介面進行了配置,該介面設置為通過 DHCP 獲取 IPv4 地址。
  • 在「vlans」部分中,對網路介面「eth0」上的 VLAN(虛擬區域網路)介面進行了配置。 VLAN 的 ID 為 3,並通過「link」字段連接到物理介面「eth0」。 VLAN 介面也配置為通過 DHCP 獲取 IPv4 地址。

    這個配置文件設置了一個網路連接,其中物理介面「eth0」和 VLAN 介面都通過 DHCP 獲得動態 IP 地址。

設定靜態 IP 地址

  version: 2
  renderer: NetworkManager
  ethernets:
      eth0:
        dhcp4: false
  vlans:
      vlan.3:
          id: 3
          link: eth0
          dhcp4: no
          addresses: [10.3.3.3/24]
          routes:
           - to: default
             via: 10.3.3.1
          nameservers:
            addresses: [8.8.8.8,1.1.1.1]
VLAN 配置設置了一個新的介面 vlan.3,ID 為 3,與 eth0 相關聯。它的 dhcp4 設置為 no,具有靜態 IP 地址 10.3.3.3 和子網掩碼 24。通過 IP 地址 10.3.3.1 指定了默認路由,並將 8.8.8.8 和 1.1.1.1 設置為DNS服務器。

結語:
每個Linux的發行版在設定靜態 IP 地址位置會有所不一樣,但都是大同小異。

參考資料:

How to Set Static IP Address and Configure Network in Linux (tecmint.com)

如何在Ubuntu Server 18.04 LTS中配置靜態IP地址 - soso101 - 博客園 (cnblogs.com)