Linux設置靜態IP地址

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

上圖示,本機的網路介面名稱是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
(閘道) 即路由或者防火牆的IPnetmask
(網路掩碼) 通常是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)