配置主機網絡
安裝完成linux 系統後,我們需要爲主機配置一個可用的網絡地址
下面以配置eth0接口爲例來說明下
說明 在RHEL7中重新定義了Linux網卡的命名規則,不再遵循原來的eth[0,1,……]。下面的例子中全部使用RHEL6的示例。 |
關於RHEL7的網卡命名原則
在進行centos7的pxe安裝測試中發現了網卡命名不再遵從來有的命名規則而啓用了最新的命名方式,官網文檔描述如下: 在 Red Hat Enterprise Linux 7 中,systemd 和 udevd 支持大量不同的命名方案。默認行爲是根據固件、拓撲及位置信息分配固定名稱。這個命名方法的優點是完全自動且可預測,即使添加或者刪除硬件也不會變化(未 發生重新列舉),且可以在不產生任何影響的情況下替換破壞的硬件。這個行爲的缺點是名稱有時比之前使用的名稱難讀,例如使用 enp5s0 替換 eth0。 目前 udevd 本身就支持下列命名方案。
合併固件或者 BIOS 的名稱爲板載設備提供索引號的名稱,例如:eno1。如果固件信息適用且可用,則 systemd 默認情況下根據這個方案命名接口,同時使用方案 2 作爲備選。
合併固件或者 BIOS 的名稱提供 PCI 快捷熱插拔插槽索引號的名稱,例如 ens1。如果固件信息適用且可用,則 systemd 默認情況下根據這個方案命名接口,同時使用方案 3 作爲備選。
合併硬件連接器物理位置的名稱,例如:enp2s0。如果固件信息適用且可用,則 systemd 默認情況下根據這個方案命名接口,同時使用方案 5 作爲備選。
合併接口 MAC 地址的名稱,例如:enx78e7d1ea46da。默認情況下 systemd 不會根據這個方案命名接口,但如果需要可以啓用這個功能。
傳統的不可預測內核屬性 ethX 命名,例如:eth0。如果其他所有方法都失敗,systemd 就根據這個方案命名接口。 如果該系統啓用了 BIOSDEVNAME,或者用戶已添加更改內核設備名稱的 udevd 規則,則這些規則將替代默認的 systemd 策略。 |
說到這裏,估計大家都知道了,那麼如果對於懷舊的人們來說,想讓RHEL7繼續使用eth0這種人類可以理解的方式的話如何修改呢,方法如下
編輯/etc/sysconfig/grub文件內容,增加“net.ifnames=0”,如下—— GRUB_CMDLINE_LINUX="vconsole.keymap=us crashkernle=auto vconsole.font=latarcyrheb-sun16 net.ifnames=0 rhgb quiet" 執行:grub2-mkconfig -o /boot/grub2/grub.cfg 然後重命名配置文件—— mv /etc/sysconfig/network-scripts/ifcfg-enp0s3 ifcfg-eth0 注意把配置文件裏面的“NAME=enp0s3”修改成“eth0”。 最後重啓系統,就一切OK了! |
Shell># vi/etc/sysconfig/network-script/ifcfg-eth0
DEVICE=eth0 HWADDR=00:0C:29:C9:F2:34 TYPE=Ethernet UUID=f7710b52-b28d-4435-8ae3-8c095a094677 ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=static IPADDR=10.10.2.31 NETMASK=255.255.255.0 GATEWAY=10.10.2.254 DNS1=10.10.2.250 DNS2=8.8.8.8 |
因ifcfg-ethx中的信息較多,大部分我們用不到,下表中我們來說明下網卡配置文件中的選項和其意義。
選項 | 說明 | 備註 |
DEVICE | 物理設備的邏輯名稱,如eth0,或者eno16777736,如果是ppp設備,可以沒有這個選項。 | |
NAME | 網絡鏈接的名稱,可以爲任意字符串,不包含特殊符號,一般與DEVICE名稱一致,也可以根據現實情況修改。 | 可以不填寫 |
HWADDR | 物理設備的MAC地址 | 可以不填寫 |
MACAADR | 物理設備MAC地址,可以不設定,也可以與HWADDR同時設定,同時設定時,必須一致 | 可以不填寫 |
TYPE | 物理設備類型,可以選下面中的任意一種。
| 寫了這一片,我都想吐槽自己,這個東西真心沒必要去寫入到配置文件中。系統在啓用網卡的時候會自動的判斷這個設備是啥類型的,如果這點都做不到,就可以去死了。 |
UUID | 全球唯一標識符,幹啥用的???? | 可以不填寫 |
ONBOOT | 是否開機時啓用該設備,布爾型輸入
| 不用網絡就填no |
NM_CONTROLLED | NetManager服務控制,當NetManager服務啓用時,當修改網卡配置文件時,系統自動應用網卡配置文件,布爾型輸入
說明:默認值是no | 推薦設定成no或者不輸入,更推薦關閉NetManger服務,避免領導找你喝茶,哈哈。 |
USERCTL | 是否允許非root用戶控制該設備,布爾型輸入
| 推薦設定成no, |
BOOTPROTO | 啓動協議。這個是針對DHCP來說的,
| 看需要吧,對於服務器更多是時none或者static,也可以不寫。 |
PEERDNS | 是否指定DNS,如果使用dhcp協議,默認爲yes。布爾型輸入
| 可以不輸入,dhcp時默認爲yes,其它推薦設置爲no |
IPV6INIT | 是否初始化IPv6,布爾型輸入
| 默認爲yes |
DEFROUTE | 默認路由 | |
PEERROUTES | 布爾型輸入
| |
IPV4_FAILURE_FATAL | ||
IPV6_AUTOCONF | ||
IPV6_DEFROUTE | ||
IPV6_PEERDNS | ||
IPV6_FAILURE_FATAL | ||
IPADDR | 網卡IPv4地址設定,格式爲點分十進制,示例如下 IPADDR=192.168.1.1 | |
NETMASK | 網卡IPv4子網掩碼設定,格式爲點分十進制,示例如下 NETMASK=255.255.255.0 | |
PREFIX | 子網掩碼長度,可以單獨使用,也可以與NETMASK一起使用。推薦不要寫入這個,偶爾會出問題!哈哈。示例如下 PREFIX=24 | 推薦不使用 |
NETWORK | 網卡IPv4網絡地址設定,格式爲點分十進制 | 可以不設定 |
BROADCAST | 網卡IPv4廣播地址設定,格式爲點分十進制 | 可以不設定 |
GATEWAY | 網卡IPv4網關設定,格式爲點分十進制 | 可以不設定 |
IPV6ADDR | 網卡IPv6地址,格式爲十六進制 | |
IPV6DEFAULTGW | 網卡IPv6網關地址, | |
DNS1 | 網卡主DNS服務器地址設定 | |
DNS2 | 網卡輔DNS服務器地址設定 | |
MASTER | 這個不屬於網絡配置選項,在雙網卡綁定時使用 | |
SLAVE | 這個不屬於網絡配置選項,在雙網卡綁定時使用 |
配置完成後,重新啓動網絡服務
RHEL6 | Shell># service network restart |
RHEL7 | Shell># service network restart 或者 Shell># systemctl restart network.service |
驗證
RHEL6 | Shell># ip addr Shell># ifconfig –a |
RHEL7 | Shell># ip addr Shell># ifcfg –a |
說到這裏了,我們說下linux下動態修改ip和其它網絡配置的命令及其方法吧。
說明: RHEL7中最小化安裝時不在包括ifconfig命令了,在RHEL7中,可以使用ifcfg命令來實現部分ifconfig的功能接口地址全部使用eth0 作爲示例,如RHEL7中有明顯不同的,會特別指出。 |
查看接口詳細信息
Shell># ifconfig [ ] [ -a ] [ -v ]
輸出如下
eth0 Link encap:Ethernet HWaddr 00:0C:29:A4:9A:76 inet addr:192.168.8.140 Bcast:192.168.8.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fea4:9a76/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:983 errors:0 dropped:0 overruns:0 frame:0 TX packets:456 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:77387 (75.5 KiB) TX bytes:62593 (61.1 KiB) Interrupt:19 Base address:0x2000
lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) |
查看接口數據包統計
RHEL6 | Shell># ifconfig –s [device]
| |
RHEL7 | Shell>#ifstat [device]
|
關閉接口
Shell># ifconfig eth0 down
Shell># ifcfg eth0 down
開啓接口
Shell># ifconfig eth0 up
Shell># ifcfg eth0 up
配置或者修改網絡地址(以IPv4爲例)
Shell># ifconfig eth0 192.168.8.145/24
Shell># ifcfg eth0 192.168.8.145/24(存在疑問?好像在RHEL7中有問題)
添加第二(或更多)地址
Shell># ifconfig eth0 add192.168.8.140/24
刪除第二(或更多)地址
Shell># ifconfig eth0 del192.168.8.140/24
修改子網掩碼
Shell># ifconfig eth0 netmask 255.255.254.0
修改默認網關(僅RHEL6可用)
Shell>#route add default gw192.168.8.2
修改DNS
shell># vi /etc/resolv.conf
內容如下 nameserver ip_addr 示例 nameserver 8.8.8.8 可以填寫多個,一般填兩個就好了。 |
修改主機名稱
Shell># hostname your_new_hostname
永久化保存
Shell># vi /etc/sysconfig/network
NETWORKING=yes HOSTNAME=your_new_hostname |
好了,說多了,就先這樣了,RHEL7的後期在補充吧。