RHEL / CentOS 7 超簡單 設定網路固定 IP 1分鐘搞定!

RHEL 及 CentOS 會自動偵測 DHCP 取得 IP, 如果要改成使用固定 IP, 除了可以像以前一樣修改設定檔外, 在 CentOS 7 也可以用內建的 Network Manager 設定網路。
以下會提供兩種設定固定 IP 的方法, 並以網卡 “eno16777736” 作為例子。
使用 Network Manager 設定固定 IP
雖然 RHEL / CentOS 7 預設啟動了 Network Manager, 但在設定前也可以先確定 Network Manager 有啟動:
$ systemctl status NetworkManager.service
看到綠色的 active (running), 那便表示 Network Manager 正在執行。
要檢查那一張網卡由 Network Manager 管理, 可以用 nmcli 指令:
$ nmcli dev status
由 Network Manager 管理的網卡會顯示 “connected”.
使用 Network Manager 前, 先安裝 nmtui (Network Manager Text User Interface):
# yum install NetworkManager-tui
然後就可以使用 “nmtui” 指令, 例如要設定 eno16777736 網卡, 輸入:
# nmtui edit eno16777736
然後用鍵盤的方向鍵, 移到 “IPv4 CONFIGURATION” 的 “Automatic”, 按 Enter 設定為 Manual, 按 “Show” 便會顯示設定內容。


在 Address 及 Gateway 設定網路:
設定好後, 移到最下面按 “OK”, 最後重新啟動網路便可以了:
# systemctl restart network.service
要檢查設定是否生效, 可以用以下指令:
# ip add
不使用 Network Manager 設定固定 IP
由於 CentOS 7 預設使用 Network Manager 管理網路, 以下除了設定固定 IP 外, 也會設定該網卡不受 Network Manager 管理。
開啟檔案 /etc/sysconfig/network-scripts/ifcfg-eno16777736, ifcfg-eno16777736 名稱會根據網卡名稱有所不同, 其中 eno16777736 是網卡名稱:
# vi /etc/sysconfig/network-scripts/ifcfg-eno16777736
首先將 BOOTPROTO=dhcp 改成 BOOTPROTO=static, 以及加入以下三行:
IPADDR=192.168.0.100
NETMASK=255.255.255.0
NM_CONTROLLED=no
上面的 IPADDR 是需要使用的固定 IP, 而 NM_CONTROLLED=no 是設定這張網卡不受 Network Manager 管理, 而直接讀取這個設定檔內容。
改成類似這樣:
最後重新啟動網路便可以了:
# systemctl restart network.service


實際內網設置方式 新增一個 eth1




























傳統文字設定方式
/etc/sysconfig/network-scripts/ifcfg-eth1
到此路逕下做設定




DHCP

使用 DHCP 功能的設定如下,電腦取得 IP 後,就會自動連上網,但是缺點是每次取得的 IP 都不同。
/etc/sysconfig/network-scripts/ifcfg-eth0
  1. DEVICE=eth0
  2. BOOTPROTO=dhcp
  3. ONBOOT=yes
  4. NM_CONTROLLED=yes
  5.  

固定 IP

當伺服器已經超過一台以上,這時我們會希望每台電腦都能有一個固定的內部 IP。
ifcfg-eth0
  1. DEVICE=eth0
  2. ONBOOT=yes
  3. NM_CONTROLLED=yes
  4.  
  5. BOOTPROTO=static
  6. IPADDR=192.168.0.4
  7. GATEWAY=192.168.0.10
  8. Netmask=255.255.255.0

DNS Search

Linux CentOS 內建有個 Network Manager ,這個軟體會控制 DNS 的設定,打開 /etc/resolv.conf 就可以知道設定有什麼,如果這個檔案的設定有錯,那麼機器就不能透過 Domain Name 的上網。
resolv.conf 的設定如果有錯,我們還是可用使用 ping ip 的功能。
例如我可以用 telnet 120.54.1.x 80 連到外部的伺服器,可是卻無法用 telnet www.google.com 80 的方式連上 Google ,解決方式就是修改 /etc/resolv.conf,然後將 nameserver 設定成 Router 的 IP ,設定成功後,你可以用 nslookup www.google.com 的指令,測試 DNS Search 是否正常。
/etc/resolv.conf
  1. # Generated by NetworkManager
  2. #search me
  3. nameserver 192.168.0.1

網卡代號

網卡代號會根據不同廠商,而有不同的代號,如 Realtek => ra0 , Ethernet => eth0 , 「0」代號第一張網卡,如果你有兩張網卡,第二張就會變成 eth1。