一、讓配置永久有效的辦法:修改配置文件
-
與網卡相關(課配置網卡的IP,掩碼,網關,DNS)
/etc/sysconfig/network-scripts/ifcfg-INTERFACE
字段解釋:
TYPE #接口類型 常見Ethernet,Bridge BOOTPROTO #分配ip時候采用的協議,一般有dhcp或者static。設定為static的時候,還要提供IPADDR和NETMASK DNS1 #在這個文件里面,我們也可以指定dns服務器,局域網內一般是填網關的ip,可以定義3個。 NM_CONTROLED #是否由NetworkManager控制,Centos6上建議為no。 USERCTL #是否可由用戶激活該設備,建議為no ONBOOT #是否開機啟動 PEERDNS #如果BOOTPROTO為dhcp,是否允許dhcp服務器分配的dns服務器指向信息直接覆蓋至/etc/resolv.conf
網卡命名機制
systemd對網絡設備的命名方式 CentOS7
a.如果固件(Firmware)或BIOS為主板上集成的設備(即,板載設備),如eno1。如果不成立,則方案b備選生效。 #集成網卡 b.如果Firmware或BIOS為PCI-E擴展槽,如ens1。如果也不成立,則方案c備選生效。 #獨立網卡 c.如果硬件接口的物理位置拓撲信息可用,如enp2s0。如果也不成立,則方案e備選生效。 #usb網卡 d.如果用戶顯式啟動,也可根據MAC地址進行命名,如enx237a1dc56 #默認關閉 e.以上都不成立,傳統命名方式,如eth0
延伸:通過配置文件來給網卡,配置多IP地址
配置文件:新建一個ifcfg-別名 (注意:需要關閉NetworkManager)
如cp ifcfg-eth0 ifcfg-eth0:0
首先我們復制一份網卡的配置,用作修改。
接著使用vim刪除一些不必要的信息,添加一行onparent=yes來表示設備附屬于eno16777736
然后使用service network restart 來重啟一下服務。
我們可以看見接口那里多了一個eno16777736:0,而且物理地址和eno16777736相同。
接著我們使用ping命令來嘗試一個能不能使用端口連通外網
ping命令
-c #指定次數 -I #指定源ip
甚至ssh連上去再ping
不過需要注意的是給網卡拿多一個ip(ip別名)不支持dhcp自動獲取,要手動指定靜態ip。
2.路由相關的配置文件 (路由就是指路,告訴別人路怎么走)
/etc/sysconfig/network-scripts/route-INTERFACE (route-eth0)#默認不存在 兩種定義路由的風格: 1. Target via GW #要訪問Target的ip,就要走GW這個網關。 #按照格式來說的話就是,如果你的目標是Target,那么你的下一跳(via)就去找GW這個ip。 2.每三行定義一條路由 ADDRESS0=192.168.0.0 NETMASK0=255.255.255.0 GATEWAY0=192.168.0.1 #這三行的意思是:想要與這個網段(ipAddress+Netmask)的ip通信的話,就要從指定的網關(GATEWAY)走 #所以就是每三條定義一個路由。
首先,我們使用route -n來查看當前的路由有哪些。
我們可以看見,
第一行表示,假如目標是外部網絡(Destination 0.0.0.0),則走192.168.2.1這個網關(Gateway)。U表示啟用,G是網關。
第二行表示,如果目的地是192.168.2.0/24的這個私有地址網段,則不需要網關。則可以進行內部通信。
3.dns服務器指定
/etc/resolv.conf #最多可以出現三次,不僅可以在這里配置,也可以在網卡那里單獨指定DNS服務器 nameserver DNS_SERVER_IP1 nameserver DNS_SERVER_IP2 nameserver DNS_SERVER_IP3 resolv.conf的關鍵字主要有四個,分別是: nameserver #定義DNS服務器的IP地址 domain #定義本地域名 search #定義域名的搜索列表 sortlist #對返回的域名進行排序
因為網卡那里開啟了PEERDNS,所以網卡啟動的時候讀取到的DNS服務器已經輸入到這個文件中。
4.主機名相關
/etc/hostname
二、讓配置即時(臨時)生效的辦法:使用命令管理
ip命令 #功能強大,可以用于替換ifconfig和nmcli
使用ip help來獲得幫助。而且這個命令,可以省略輸入,或者使用tab鍵來補全,所以忘記的時候,可以盡情地按tab鍵。
常用的子選項
link #管理網絡設備的
常用組合
ip link set DEVICE [ up | down ]
需要注意的是,如果把ip別名設置為down的話,整個設備都會變成down。
ip link set eno16777736:0 down
那么eno16777736這個網卡也會down掉。
在練習使用ip命令的時候,推薦直接使用虛擬機,不要用xshell等工具連接。
因為使用ip link和ip addr flush等命令會經常斷線。
addr #配置ip地址
Usage: ip addr {add|change|replace} IFADDR dev STRING [ LIFETIME ] [ CONFFLAG-LIST ] ip addr del IFADDR dev STRING [mngtmpaddr] ip addr {show|save|flush} [ dev STRING ] [ scope SCOPE-ID ] [ to PREFIX ] [ FLAG-LIST ] [ label PATTERN ] [up] ip addr {showdump|restore} 名詞解釋: #|表示多選一,[]表示可選選項 IFADDR := PREFIX | ADDR peer PREFIX [ broadcast ADDR ] [ anycast ADDR ] [ label STRING ] [ scope SCOPE-ID ] SCOPE-ID := [ host | link | global | NUMBER ] FLAG-LIST := [ FLAG-LIST ] FLAG FLAG := [ permanent | dynamic | secondary | primary | tentative | deprecated | dadfailed | temporary | CONFFLAG-LIST ] CONFFLAG-LIST := [ CONFFLAG-LIST ] CONFFLAG CONFFLAG := [ home | nodad | mngtmpaddr | noprefixroute ] LIFETIME := [ valid_lft LFT ] [ preferred_lft LFT ] LFT := forever | SECONDS
常用組合:
1.給設備添加ip,并設置ip別名。
ipaddr add IP_ADDRESS dev DEVICE label IP_ALIAS ip別名可以通過ifconfig看到。
2.刪除指定的ip
3.指定并查看特定狀態的設備
ip addr show表示顯示全部設備的ip地址,可以簡寫成ip a。
或者用選項來篩選,如上面這條命令則是表示顯示第二子網,scope類型為global的ip。
scope 作用域(一般很少主動設置)
global #ip全局有效#ip在內核上,能相應外部的請求 link #僅配置的那個設備有相應#ip只在設備上,接受請求的網卡有這個ip才會響應,否則不會轉發。 host #僅本機內部有有響應#ip只在本機通信中有用,就像被人ping不到我們的127.0.0.1一樣
4.替換IP地址
5..清空所有ip
ip addr flush dev DEVICE
注意:連接了xshell做ip命令的練習的話,會經常斷開很麻煩。
所以練習的時候還是不要用xshell,直接在虛擬機那里做試驗。
route #配置路由
常用組合:
add TARGET via GW dev INTERFACE src SOURCE_IP #添加路由條目 add default via GW dev INTFACE #設置默認網關 1.添加默認路由。
這個案例中,我們可以看出只有兩個私有地址地址的路由
Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eno16777736 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eno16777736 #第一條是,訪問192.168.0.0/24這個網段的ip,往eno16777736這個接口走。 #第二條是,訪問192.168.2.0/24這個網段的ip,往eno16777736這個接口走。 所以訪問外網地址的時候,我們便無處可走。 所以要添加一條路由,訪問外網要怎么走。 #添加ip route add default via 192.168.2.1 dev eno16777736則是告訴大家: #如果不是訪問上面兩個私有網段的地址,則其余的都讓192.168.2.1這個ip作為網關幫忙轉發。
2.刪除特定路由條目
三、查看網絡狀態的工具
網絡狀態查看
1.netstat
-n #num,不解析域名,顯示為ip狀態 -t #顯示tcp相關的狀態 -u #顯示udp相關的狀態 -l #listen,顯示狀態為監聽的鏈接 -p #program,顯示相關進程 -e #擴展格式 -r #raw socket,裸套接字 -a #顯示監聽狀態和非監聽狀態
常用組合:
netstat -tnl #把以tcp協議傳輸且處于監聽狀態的端口,以ip形式輸出。 netstat -unl #把以udp協議傳輸且處于監聽狀態的端口,以ip形式輸出。
netstat -tan #輸出tcp協議的端口狀態 netstat -uan #輸出udn協議的端口狀態
顯示路由表
-r #顯示路由表
-n #ip格式
2.ifconfig
-a #什么都不加,或者-a的時候,表示顯示當前所有設備的ip,包括ip別名。 DEVICE IPADDRESS #為設備指定ip地址,立即生效。但重啟網絡之后還是按配置文件來。
重啟網卡之后,ip別名還是取回網卡設置192.168.2.133這個ip。
3.nmcli (NetworkManager的rpm安裝而來)
如果關了NetworkManager服務的話,是不能用的。
這個命令有一個很有趣的地方,就是子命令可以省略輸入
而且我們可以看到,這個device子命令,顯示的是實體的設備。
之前配置的eno16777736:0的IP別名,在這里只會顯示成設備的一個ip。
這點與ifconfig的不一樣。
4.hostnamectl,hostname查看主機名或獲得本機的IP
原創文章,作者:菠菜,如若轉載,請注明出處:http://www.www58058.com/13528