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
設定好後, 移到最下面按 “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
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
- DEVICE=eth0
- BOOTPROTO=dhcp
- ONBOOT=yes
- NM_CONTROLLED=yes
固定 IP
當伺服器已經超過一台以上,這時我們會希望每台電腦都能有一個固定的內部 IP。
ifcfg-eth0
- DEVICE=eth0
- ONBOOT=yes
- NM_CONTROLLED=yes
- BOOTPROTO=static
- IPADDR=192.168.0.4
- GATEWAY=192.168.0.10
- 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
- # Generated by NetworkManager
- #search me
- nameserver 192.168.0.1
沒有留言:
張貼留言