Centos的網路配置命令和檔案
阿新 • • 發佈:2018-11-02
一、ifcongfig
Centos6之前最常用的配置網路命令就是ifconfig,使用ifconfig命令時最好切換到root使用者的身份
1、直接使用ifconfig可以檢視當前配置的網路裝置的資訊
例如
[[email protected] ~]# ifconfig eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.16.9.9 netmask 255.255.0.0 broadcast 172.16.255.255 inet6 fe80::20c:29ff:fe83:15cb prefixlen 64 scopeid 0x20<link> ether 00:0c:29:83:15:cb txqueuelen 1000 (Ethernet) RX packets 120796 bytes 20258545 (19.3 MiB) RX errors 0 dropped 1418 overruns 0 frame 0 TX packets 28466 bytes 47363344 (45.1 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 0 (Local Loopback) RX packets 20 bytes 1780 (1.7 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 20 bytes 1780 (1.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
這裡可以看到我目前有一個網路裝置eno16777728和一個網路迴環介面lo,常見的網路介面有以下幾個
eth0: ethernet的簡寫,一般用於乙太網介面。在centos7上是eno16777728 wifi0:wifi是無線區域網,因此wifi0一般指無線網路介面。 ath0: Atheros的簡寫,一般指Atheros晶片所包含的無線網路介面。
2、用ifconfig啟動或關閉指定網絡卡
ifconfig up 啟動指定的網路裝置 ifconfig down 關閉指定的網路裝置
網絡卡名稱一定要寫在down或up之前
[[email protected] ~]# ifconfig eno16777728 down [[email protected] ~]# ifconfig eno16777728 up
3、用ifconfig配置網路地址和閘道器
比如這裡我配置eth0網絡卡的ip地址為:172.16.7.254子網掩碼為255.255.0.0
注意用ifconfig改網路配置會立即生效
[[email protected] ~]# ifconfig eth0 172.16.7.254 netmask 255.255.0.0 [[email protected] ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:5E:4B:1F inet addr:172.16.7.254 Bcast:172.16.255.255 Mask:255.255.0.0 inet6 addr: fe80::20c:29ff:fe5e:4b1f/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1372221 errors:2 dropped:0 overruns:0 frame:0 TX packets:3465 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:119202924 (113.6 MiB) TX bytes:334330 (326.4 KiB) Interrupt:19 Base address:0x2000
還可以給一個網絡卡配上多個地址,例如
[[email protected] ~]# ifconfig eth0:0 172.16.7.225 netmask 255.255.0.0 [[email protected] ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:5E:4B:1F inet addr:172.16.7.254 Bcast:172.16.255.255 Mask:255.255.0.0 inet6 addr: fe80::20c:29ff:fe5e:4b1f/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1375940 errors:2 dropped:0 overruns:0 frame:0 TX packets:3579 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:119494875 (113.9 MiB) TX bytes:348430 (340.2 KiB) Interrupt:19 Base address:0x2000 eth0:0 Link encap:Ethernet HWaddr 00:0C:29:5E:4B:1F inet addr:172.16.7.225 Bcast:172.16.255.255 Mask:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:19 Base address:0x2000
如果還想增加更多則可以eth0:1 eth0:2依次繼續增加
其他的一些引數:
-arp 開啟或關閉指定介面上使用的ARP協議。前面加上一個負號用於關閉該選項。 -allmuti 關閉或啟動指定介面的無區別模式。前面加上一個負號用於關閉該選項。 -promisc 關閉或啟動指定網路裝置的promiscuous模式。前面加上一個負號用於關閉該選項。 add<地址> 設定網路裝置IPv6的IP地址。 del<地址> 刪除網路裝置IPv6的IP地址。 media<網路媒介型別> 設定網路裝置的媒介型別。 mem_start<記憶體地址> 設定網路裝置在主記憶體所佔用的起始地址。 metric<數目> 指定在計算資料包的轉送次數時,所要加上的數目。 mtu<位元組> 設定網路裝置的MTU。 netmask<子網掩碼> 設定網路裝置的子網掩碼。 tunnel<地址> 建立IPv4與IPv6之間的隧道通訊地址。 -broadcast<地址> 將要送往指定地址的資料包當成廣播資料包來處理。 -pointopoint<地址> 與指定地址的網路裝置建立直接連線,此模式具有保密功能。
二、route
route命令用於管理本機路由表,路由表就是指,本機訪問指定的主機或網路需要通過的網路介面,簡單點理解,你的閘道器就是通往所有其他網路所必須要經過的網路介面。
[[email protected] ~]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 172.16.0.0 * 255.255.0.0 U 0 0 0 eth0 Destination代表目標網路 Gateway代表閘道器地址,*代表目標是本機網路不需要閘道器 Genmask代表你要訪問的網路的子網掩碼 Flags為路由標誌,標記當前網路節點的狀態。 Flags標誌說明: U Up表示此路由當前為啟動狀態 H Host,表示此閘道器為一主機 G Gateway,表示此閘道器為一路由器 R Reinstate Route,使用動態路由重新初始化的路由 D Dynamically,此路由是動態性地寫入 M Modified,此路由是由路由守護程式或導向器動態修改 ! 表示此路由當前為關閉狀態 Metric代表路由距離,到達指定網路所需的中轉數 Ref代表路由項引用次數 Use代表此路由項被路由軟體查詢的次數 Iface 該路由表項對應的輸出介面
route常用命令:
add : 新增一條路由規則 del : 刪除一條路由規則 -net : 目的地址是一個網路 -host : 目的地址是一個主機 target : 目的網路或主機 netmask : 目的地址的網路掩碼 gw : 路由資料包通過的閘道器 dev : 為路由指定的網路介面
1、新增一個主機路由到eth0
[[email protected] ~]# route add -host 172.16.1.2 dev eth0 [[email protected] ~]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 172.16.1.2 * 255.255.255.255 UH 0 0 0 eth0 172.16.0.0 * 255.255.0.0 U 0 0 0 eth0
2、刪除路由
[[email protected] ~]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 172.16.1.2 * 255.255.255.255 UH 0 0 0 eth0 192.168.122.0 * 255.255.255.0 U 0 0 0 virbr0 172.16.0.0 * 255.255.0.0 U 0 0 0 eth0 [[email protected] ~]# route del -net 192.168.122.0 netmask 255.255.255.0 virbr0 [[email protected] ~]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 172.16.1.2 * 255.255.255.255 UH 0 0 0 eth0 172.16.0.0 * 255.255.0.0 U 0 0 0 eth0
3、新增預設閘道器
[[email protected] ~]# route add default gw 172.16.0.1 [[email protected] ~]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 172.16.1.2 * 255.255.255.255 UH 0 0 0 eth0 172.16.0.0 * 255.255.0.0 U 0 0 0 eth0 default 172.16.0.1 0.0.0.0 UG 0 0 0 eth0
4、刪除預設閘道器
[[email protected] ~]# route del default eth0 [[email protected] ~]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 172.16.1.2 * 255.255.255.255 UH 0 0 0 eth0 172.16.0.0 * 255.255.0.0 U 0 0 0 eth0
5、新增網路到路由
[[email protected] ~]# route add -net 172.16.9.9 netmask 255.255.255.255 gw 172.16.0.1 eth0 [[email protected] ~]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 172.16.9.9 172.16.0.1 255.255.255.255 UGH 0 0 0 eth0 172.16.1.2 * 255.255.255.255 UH 0 0 0 eth0 172.16.0.0 * 255.255.0.0 U 0 0 0 eth0
三、DNS伺服器指定
編輯/etc/resolv.conf
這裡我配置三個DNS為例
[[email protected] ~]# vim /etc/resolv.conf #開啟後的內容 # Generated by NetworkManager # No nameservers found; try putting DNS servers into your # ifcfg files in /etc/sysconfig/network-scripts like so: # # DNS1=xxx.xxx.xxx.xxx # DNS2=xxx.xxx.xxx.xxx # DOMAIN=lab.foo.com bar.foo.com #下面是三個DNS DNS1=172.16.0.1 DNS2=8.8.8.8 DNS3=114.114.114.114
四、ip
ip命令的功能和ifconfig類似,但是功能更加強大,所以centos7之後的系統有得包組是不帶ifconfig而只帶ip命令了
1、檢視當前配置的所有網路裝置的資訊
[[email protected] ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:83:15:cb brd ff:ff:ff:ff:ff:ff inet 172.16.9.9/16 brd 172.16.255.255 scope global eno16777728 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe83:15cb/64 scope link valid_lft forever preferred_lft forever
後面接上指定的網絡卡也可以檢視指定網絡卡的資訊,也可使用ip address show
2、新增刪除地址
新增
[[email protected] ~]# ip addr add 172.16.9.10 dev eno16777728:1 [[email protected] ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:83:15:cb brd ff:ff:ff:ff:ff:ff inet 172.16.9.9/16 brd 172.16.255.255 scope global eno16777728 valid_lft forever preferred_lft forever inet 172.16.9.10/32 scope global eno16777728 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe83:15cb/64 scope link valid_lft forever preferred_lft forever
刪除
[[email protected] ~]# ip addr del 172.16.9.10 dev eno16777728:1 [[email protected] ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:83:15:cb brd ff:ff:ff:ff:ff:ff inet 172.16.9.9/16 brd 172.16.255.255 scope global eno16777728 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe83:15cb/64 scope link valid_lft forever preferred_lft forever
3、檢視現有的路由表
[[email protected] ~]# ip route show default via 172.16.0.1 dev eno16777728 proto static metric 100 172.16.0.0/16 dev eno16777728 proto kernel scope link src 172.16.9.9 metric 100
4、新增刪除路由和閘道器
新增路由
[[email protected] ~]# ip route add 172.16.200.51 via 172.16.0.1 dev eno16777728 src 172.16.9.9 [[email protected] ~]# ip route show default via 172.16.0.1 dev eno16777728 proto static metric 100 172.16.0.0/16 dev eno16777728 proto kernel scope link src 172.16.9.9 metric 100 172.16.200.51 via 172.16.0.1 dev eno16777728 src 172.16.9.9 #172.16.200.51為目標ip #172.16.0.1為路由 #172.16.9.9為源ip
刪除路由
[[email protected] ~]# ip route del 172.16.200.51 [[email protected] ~]# ip route default via 172.16.0.1 dev eno16777728 proto static metric 100 172.16.0.0/16 dev eno16777728 proto kernel scope link src 172.16.9.9 metric 100
新增預設閘道器
[[email protected] ~]# ip route add default via 172.16.0.1 dev eno16777728 [[email protected] ~]# ip route show default via 172.16.0.1 dev eno16777728 default via 172.16.0.1 dev eno16777728 proto static metric 100 172.16.0.0/16 dev eno16777728 proto kernel scope link src 172.16.9.9 metric 100
刪除剛才新增的閘道器
[[email protected] ~]# ip route del default via 172.16.0.1 dev eno16777728 [[email protected] ~]# ip route default via 172.16.0.1 dev eno16777728 proto static metric 100 172.16.0.0/16 dev eno16777728 proto kernel scope link src 172.16.9.9 metric 100
5、關閉網絡卡修改網絡卡名稱
[[email protected] ~]# ip link set eno16777728 down [[email protected] ~]# ip link set eno16777728 name eth0 [[email protected] ~]# ip link set show [[email protected] ~]# ip link set eth0 up #這樣就把eno16777728改為了eth0,但是因為/etc/sysconfig/network-scripts/ifcfg-eno16777728還是原來的 #名字所以,配置不會跟著到eth0上,所以要完整的改名需要改變此配置檔案中NAME=eth0,並將此檔名改為 #ifcfg-eth0
五、netstat
netstat命令主要用來檢視整個系統的網路情況
1、選項
-a或--all:顯示所有連線中的埠; -A<網路型別>或--<網路型別>:列出該網路型別連線中的相關地址; -c或--continuous:持續列出網路狀態; -C或--cache:顯示路由器配置的快取資訊; -e或--extend:顯示網路其他相關資訊; -F或--fib:顯示FIB; -g或--groups:顯示多重廣播功能群組組員名單; -h或--help:線上幫助; -i或--interfaces:顯示網路介面資訊表單; -l或--listening:顯示監控中的伺服器的Socket; -M或--masquerade:顯示偽裝的網路連線; -n或--numeric:直接使用ip地址,而不通過域名伺服器; -N或--netlink或--symbolic:顯示網路硬體外圍裝置的符號連線名稱; -o或--timers:顯示計時器; -p或--programs:顯示正在使用Socket的程式識別碼和程式名稱; -r或--route:顯示Routing Table; -s或--statistice:顯示網路工作資訊統計表; -t或--tcp:顯示TCP傳輸協議的連線狀況; -u或--udp:顯示UDP傳輸協議的連線狀況; -v或--verbose:顯示指令執行過程; -V或--version:顯示版本資訊; -w或--raw:顯示RAW傳輸協議的連線狀況; -x或--unix:此引數的效果和指定"-A unix"引數相同; --ip或--inet:此引數的效果和指定"-A inet"引數相同。
2、常用的組合
-tan, -uan, -tnl, -unl
顯示連線的tcp埠
[[email protected] network-scripts]# netstat -tan Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 52 172.16.9.9:22 172.16.7.211:54886 ESTABLISHED tcp6 0 0 :::80 :::* LISTEN tcp6 0 0 :::22 :::* LISTEN tcp6 0 0 ::1:25 :::* LISTEN
顯示連線中的udp埠
[[email protected] network-scripts]# netstat -uan
顯示所有處於監聽(LISTEN)狀態的tcp埠
[[email protected] network-scripts]# netstat -tnl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp6 0 0 :::80 :::* LISTEN tcp6 0 0 :::22 :::* LISTEN tcp6 0 0 ::1:25 :::* LISTEN
顯示所有處於監聽狀態的udp埠
[[email protected] network-scripts]# netstat -unl
六、ss
ss和netstat類似,但是顯示的資訊更詳細,速度更快,在連線數上萬的情況下用ss比netstat更快更高效,所以推薦使用ss
1、選項
-t: tcp協議相關 -u: udp協議相關 -w: 裸套接字相關 -x:unix sock相關 -l: listen狀態的連線 -a: 所有 -n: 數字格式 -p: 相關的程式及PID -e: 擴充套件的資訊 -m:記憶體用量 -o:計時器資訊
2、常用組合
-tan:顯示所有連線的tcp埠 -tanl:顯示處於監聽狀態的tcp埠 -tanlp:顯示監聽狀態的tcp埠並顯示對應程式的PID -uan:顯示所有連線的udp埠 -uanl:顯示處於監聽狀態的udp埠 -uanlp:顯示監聽狀態的udp埠並顯示對應程式的PID
例如:
[[email protected] network-scripts]# ss -tan State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:22 *:* LISTEN 0 100 127.0.0.1:25 *:* ESTAB 0 52 172.16.9.9:22 172.16.7.211:54886 LISTEN 0 128 :::80 :::* LISTEN 0 128 :::22 :::* LISTEN 0 100 ::1:25 :::* [[email protected] network-scripts]# ss -tanl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:22 *:* LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 128 :::80 :::* LISTEN 0 128 :::22 :::* LISTEN 0 100 ::1:25 :::* [[email protected] network-scripts]# ss -tanlp State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:22 *:* users:(("sshd",pid=1250,fd=3)) LISTEN 0 100 127.0.0.1:25 *:* users:(("master",pid=2365,fd=13)) LISTEN 0 128 :::80 :::* users:(("httpd",pid=2824,fd=4),("httpd",pid=2823,fd=4),("httpd",pid=2822,fd=4),("httpd",pid=2821,fd=4)) LISTEN 0 128 :::22 :::* users:(("sshd",pid=1250,fd=4)) LISTEN