您好,登錄后才能下訂單哦!
今天小編就為大家帶來一篇總結了Linux所有網絡管理命令的文章。小編覺得挺實用的,為此分享給大家做個參考。一起跟隨小編過來看看吧。
ip命令
配置Linux網絡屬性:ip命令,不過該命令的操作只是臨時操作,重啟以后配置丟失
ip-show / manipulate routing, devices, policy routing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route }
示例:
ip link - network device configuration
set dev IFACE
可設置屬性:
up and down:激活或禁用指定接口
ifup/ifdown
show [dev IFACE]:指定接口
[up]:僅顯示處于激活狀態的接口
示例1:顯示所有接口的狀態
示例2:關閉eth2口,然后顯示eth2接口的狀態,而后顯示其他狀態是up的接口
ip addr { add | del | change } IFADDR dev STRING
[label LABEL]:添加地址時指明網卡別名
[scope {global|link|host}]:指明作用域
global: 全局可用;
link: 僅鏈接可用;
host: 本機可用;
[broadcast ADDRESS]:指明廣播地址
ip address show -look at protocol addresses
[dev DEVICE]
[label PATTERN]
[primary and secondary]
ip address flush -使用格式同show
ip addr add 172.16.0.100/16 dev eth3 label eth3
ip addr del 172.16.0.100/16 dev eth3 label eth3
ip addr flush dev eth3 label eth3
示例1:使用ip addr命令添加一個ip
示例2:改變eth3的ip地址
示例3:刪除eth3的ip信息
示例4:此命令不會保存在配置文件中,只是暫時存放在內存里面,使用請注意
ip route - routing table management
添加路由:ip route add
ip route add TARGET via GW dev IFACE srcSOURCE_IP
TARGET:
主機路由:IP
網絡路由:NETWORK/MASK
ip route add 192.168.0.0/24 via 172.16.0.1
ip route add 192.168.1.13 via 172.16.0.1
添加網關:ip route add default via GW dev IFACE
ip route add default via 172.16.0.1
刪除路由:ip route delete
ip route del TARGET
顯示路由:ip route show|list
清空路由表:ip route flush [dev IFACE] [via PREFIX]
ip route flush dev eth0
示例1:添加172.16.0.0/16的路由
示例2:添加一個網關
示例3:刪除默認網關路由
示例4:刪除相關的所有路由
netstat命令:
顯示網絡鏈接
Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships、
常用選項:
-t: tcp協議相關
-u: udp協議相關
-w: raw socket相關
-l: 處于監聽狀態
-a: 所有狀態
-n: 以數字顯示IP和端口;
-e:擴展格式
-p: 顯示相關進程及PID
常用組合:
-tan, -uan, -tnl, -unl,-rn,tnlp
顯示路由表:
netstat {--route|-r} [--numeric|-n]
-r: 顯示內核路由表
-n: 數字格式
顯示接口統計數據:
netstat{--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]
# netstat -i
# netstat -IIFACE
示例1:查看所有tcp協議的狀態
示例2:查看所有udp的協議狀態
示例3:查看所有正在監聽的tcp協議
示例4:查看所有正在監聽的udp協議
示例5:查看所有tcp和udp協議狀態以及進程號
ss命令
格式:ss[OPTION]... [FILTER]
netstat通過遍歷proc來獲取socket信息,ss使用netlink與內核tcp_diag模塊通信獲取socket信息。
選項:
-t: tcp協議相關
-u: udp協議相關
-w: 裸套接字相關
-x:unixsock相關
-l: listen狀態的連接
-a: 所有
-n: 數字格式
-p: 相關的程序及PID
-e: 擴展的信息
-m:內存用量
-o:計時器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
TCP的常見狀態:
tcpfinite state machine:
LISTEN: 監聽
ESTABLISHED:已建立的連接
FIN_WAIT_1
FIN_WAIT_2
SYN_SENT
SYN_RECV
CLOSED
EXPRESSION:
dport=
sport =
示例: ’( dport= :sshor sport = :ssh)’
常用組合:
-tan, -tanl, -tanlp, -uan,tunl
常見用法示例:
ss -l 顯示本地打開的所有端口
ss -pl 顯示每個進程具體打開的socket
ss -t -a 顯示所有tcp socket
ss -u -a 顯示所有的UDP Socekt
ss -o state established '( dport = :ssh or sport = :ssh )' 顯示所有已建立的SSH連接
ss -s 列出當前socket詳細信息:
ss -o state established '( dport = :smtp or sport = :smtp )' 顯示所有已建立的SMTP連接
ss -o state established '( dport = :http or sport = :http )' 顯示所有已建立的HTTP連接ss -x src /tmp/.X11-unix/* 找出所有連接X服務器的進程
nmcli命令(注意,此命令只適用于CentOS 7的版本,6版本的這個命令并不好使)
地址配置工具:nmcli
nmcli[ OPTIONS ] OBJECT { COMMAND | help }
device -show and manage network interfaces
nmcli device help
connection -start, stop, and manage network connections
nmcli connection help
修改IP地址等屬性:
nmcli connection modify IFACE [+|-] setting.property value
setting.property:
ipv4.addressesipv4.gateway
ipv4.dns1 ipv4.methodmanual | dhcp
修改配置文件執行生效:systemctl restart network
nmcli con reload
nmcli命令生效:nmcli con down eth0 ;nmcli con up eth0
示例1:新增網卡,設置它的IP地址
添加了一個新的網卡,系統自動識別為eth2,網卡名字Wired connetion 1,此處作用的是NetworkManager,否則新建一個網卡的時候應該沒有名字。
此處我清理掉上圖的信息,此時查看接口的狀態
添加網卡信息,設置該網卡為手動設置,配置ip地址,網關,dns,開機自動啟動,此處會生成配置文件
配置完看了一下,ip已經起來了,連服務都沒重啟呢。并且測試過連通性也是沒問題
示例2:新增綁定一個新的配置文件home和ip地址,但是我們發現,此處文件并沒有綁定接口
此處用nmcli device status可以看見接口eht1已經是工作中,但是此命令不能看見接口綁定的是哪個配置文件,我們發現ip還是以前的ip
此處用nmcli con up home的命令啟用接口,然后我們發現eth2接口此時用的是home的配置文件,這樣的話就可以把接口切換過來
也可以用nmcli con down +conf文件這樣方式來切換
如果對以上的配置文件有需要自己改動的地方,則手動編輯之,然后輸入nmcli con reload命令重新導入配置文件即可。例如編輯ip地址和網卡的NAME
編輯完,配置文件并不會馬上生效,我們可以用nmcli con reload的命令重新加載配置文件,發現網卡的NAME屬性已經生效,但是ip還是沒有改變
此處重啟網絡服務,ip已經起來了。
相關工具
網絡接口配置tui工具:nmtui(nmcli的圖形化工具,個人還是建議用命令的,此處不再演示)
使用nmcli配置網絡
NeworkManager是管理和監控網絡設置的守護進程
設備即網絡接口,連接是對網絡接口的配置。一個網絡接口可有多個連接配置,但同時只有一個連接配置生效。
顯示所有包括不活動連接
nmclicon show
顯示所有活動連接
nmclicon show –active
顯示網絡連接配置
nmclicon show "home"
顯示設備狀態
nmcli dev status
顯示網絡接口屬性
nmclidev show eno16777736(CentOS7的網卡的命名)
創建新連接home,IP自動通過dhcp獲取
nmclicon add con-name home type Ethernet ifname eth2
刪除連接
nmclicon del home
創建新連接eth2 ,指定靜態IP,不自動連接
nmcticon add con-name static ifname eth2 autoconnect no type Ethernet ip4 10.1.156.71/16 gw4 10.1.0.1
啟用home連接配置
nmcli con up home
啟用eth2連接配置
nmclicon up eth2
查看幫助
nmclicon add help
修改連接設置
nmcli con mod “eth2” connection.autoconnect no
nmcli con mod “eth2” ipv4.dns 10.1.0.1
nmcli con mod “eth2” +ipv4.dns 8.8.8.8
nmcli con mod “eth2” -ipv4.dns 8.8.8.8
nmcli con mod “eth2” ipv4.addresses “172.16.0.100 172.16.0.1”
nmcli con mod “eth2” +ipv4.addresses 10.10.10.10/16
設備配置被保存在文本文件中
/etc/sysconfig/network-scripts/ifcfg-<name>
幫助文檔列出完整選項列表:/usr/share/doc/initcripts-*/sysconfig.txt
修改連接配置后,需要重新加載配置
nmcli con reload
nmcli con down “system eth0” 可被自動激活
nmcli con up “system eth0”
nmcli dev dis eth0 禁用網卡,訪止被自動激活
示例2:新增綁定一個新的配置文件home和ip地址,但是我們發現,此處文件并沒有綁定接口
此處用nmcli device status可以看見接口eht1已經是工作中,但是此命令不能看見接口綁定的是哪個配置文件,我們發現ip還是以前的ip
此處用nmcli con up home的命令啟用接口,然后我們發現eth2接口此時用的是home的配置文件,這樣的話就可以把接口切換過來
也可以用nmcli con down +conf文件這樣方式來切換
如果對以上的配置文件有需要自己改動的地方,則手動編輯之,然后輸入nmcli con reload命令重新導入配置文件即可。例如編輯ip地址和網卡的NAME
編輯完,配置文件并不會馬上生效,我們可以用nmcli con reload的命令重新加載配置文件,發現網卡的NAME屬性已經生效,但是ip還是沒有改變
此處重啟網絡服務,ip已經起來了。
刪除home的配置文件
修改網卡開機自動鏈接為no
nmcli con mod “work” connection.autoconnect no
設置DNS地址
nmcli con mod “work” ipv4.dns 10.1.0.1
增加一組DNS地址
nmcli con mod “work” +ipv4.dns 8.8.8.8
刪除掉8.8.8.8的dns
nmcli con mod “work” -ipv4.dns 8.8.8.8
修改ip到其他地址
nmcli con mod “work” ipv4.addresses “172.16.0.100/24 ipv4.gateway 172.16.0.1”
增加一個ip地址
nmcli con mod “work” +ipv4.addresses 10.1.156.71
注意:以上的修改操作并不會馬上生效,生效需要重啟網卡服務systemctl restart network
圖形工具(此工具只能在圖形界面下面啟動)
nm-connection-editor
網絡組Network Teaming(同樣只適用于CentOS 7)
網絡組:是將多個網卡聚合在一起方法,從而實現冗錯和提高吞吐量
網絡組不同于舊版中bonding技術,提供更好的性能和擴展性
網絡組由內核驅動和teamd守護進程實現.
多種方式runner
broadcast 廣播
roundrobin 循環
activebackup 備份
loadbalance 負載均衡
lacp 接口聚合(implements the 802.3ad Link Aggregation Control Protocol)
網絡組
啟動網絡組接口不會自動啟動網絡組中的port接口
啟動網絡組接口中的port接口不會自動啟動網絡組接口
禁用網絡組接口會自動禁用網絡組中的port接口
沒有port接口的網絡組接口可以啟動靜態IP連接
啟用DHCP連接時,沒有port接口的網絡組會等待port接口的加入
創建網絡組接口
nmclicon add type team con-name CNAME ifname INAME [config JSON]
CNAME為連接名,INAME為接口名
JSON為指定runner方式
格式:'{"runner": {"name": "METHOD"}}'
METHOD可以是broadcast,roundrobin,activebackup,loadbalance,lacp.
創建網絡組接口實例
首先創建網絡組接口,名為team0的接口,模式為備份模式
nmcli con add type team con-name team0 ifname team0
config ‘{"runner": {"name": "activebackup"}}'
給接口配置ip地址等信息
nmcli con mod team0 ipv4.addresses 10.1.156.156/16
nmcli con mod team0 ipv4.method manual
創建port接口
nmcli con add type team-slave con-name CNAME ifname INAME master TEAM
CNAME連接名,INAME網絡接口名,TEAM網絡組接口名.
連接名若不指定,默認為team-slave-IFACE.
nmcli device disconnect INAME 關閉指定的真實接口
nmcli connection up CNAME 指定配置文件的接口up
INAME設備名CNAME網絡組接口名或port接口
網絡組實例
nmcli con add type team-slave ifname eth0 master team0
nmcli con add type team-slave ifname eth2 master team0 con-name team0-eth2
nmcli con up team0 啟用team0接口
nmcli dev dis eth0 關閉掉原來的接口
teamdctl team0 state
完整示例:創建網絡組
首先創建網絡組接口,名為team0的接口,模式為備份模式
nmcli con add type team con-name team0 ifname team0
config ‘{"runner": {"name": "activebackup"}}'
給接口配置ip地址等信息
nmcli con mod team0 ipv4.addresses 10.1.156.156/16
nmcli con mod team0 ipv4.method manual
創建port接口
nmcli con add type team-slave con-name team0-eth0 ifname eth0 master team0
nmcli con add type team-slave con-name team0-eth2 ifname eth2 master team0
啟用team0接口,但是可以看見port的接口的配置文件還沒有生效
使port接口生效,有兩種方法
第一種:直接關閉掉原來的接口
第二種:直接nmcli connection up 指定port接口配置文件,此處用第二種
可以看見接口已經起來了
此時可以用teamdctl team0 state的命令來查看網絡組接口的狀態,發現接口已經起來了
此時的主端口是eth2
首先測試一下ping team0口來看看連通性,發現是通的
此時斷開eth2,然后再查詢teamdctl team0 state命令
可以看見eth2已經斷開,此時作用的是eth0
重新鏈接eth2,再斷開eth0,然后再查詢teamdctl team0 state命令
可以看見eth0已經斷開,此時作用的是eth2
最后,重新鏈接eth0,然后再查詢teamdctl team0 state命令
可以看見eth0已經鏈接上,此時作用的是eth2,此時實驗完畢
寫在最后:由于虛擬機的關系,對此命令實現的效果有問題,所以后面測試的就不截圖了,只保存接口狀態的的截圖了。
如果需要測試接口的話,也可以用watch -n1 'netstat -Ieth0'和watch -n1 'netstat -Ieth2'同時查看接口的流量狀態,可以發現是,只有active port的接口才會有流量,當actice port接口斷開切換到另外一個接口的時候,另外一個接口才會有流量
此時作用的是eth0,可以對比兩個圖,可以發現只有eth0接口的流量有變化
此處關擦eth0接口的接收RX和發送TX流量變化
使用nmcli配置主機名
rhel6之前主機名配置文件:/etc/sysconfig/network
rhel7.0主機名配置文件:/etc/hostname ,默認沒有這個文件,通過DNS反向解析獲取主機名,主機名默認為:localhost.localdomain
顯示主機名信息
hostname
hostnamectl status
創建并修改文件并生效
hostnamectlset-hostname desktopX.example.com
刪除文件,恢復主機名localhost.localdomain
DNS設置,存放在/etc/resolv.conf文件中
PEERDNS=no 表示當IP通過dhcp自動獲取時,dns仍是手動設置,不自動獲取。等價于下面命令:
nmclicon mod “system eth0” ipv4.ignore-auto-dns yes
示例:設置主機名
查看此時計算機名狀態,此時是centos.localdomain
改一個主機名,可以看見,馬上生效了,這點比起CentOS6上面還是要方便不少
測試網絡命令
在命令行下測試網絡的連通性
顯示主機名
hostname
測試網絡連通性
ping
mtr
顯示正確的路由表
ip route
確定名稱服務器使用:
nslookup
host
dig
跟蹤路由
traceroute
Tracepath
網絡客戶端工具
lftp, ftp, lftpget, wget
lftp [-p port] [-u user[,password]] SERVER
子命令:
get、mget、ls、help
lftp
put 單個文件上傳
get 單個文件下載,可以補全,ftp的不能
mget 多個東西下載,也可以支持補全,支持通配符
mput 多個上傳
ftp FTP
如果需要匿名登陸,可以使用anonymous或者ftp,密碼是空密碼或者隨便一個
pwd 顯示在ftp里面的目錄
lcd 顯示本機當前的位置
lcd PATH:切換到其他的下載目錄
在ftp里面下載的東西的話默認會下載到lcd的目錄
get 文件名:下載文件指令,如果文件名有空格,需要在文件名前后加上“”雙引號
cd 切換目錄
passive 切換ftp的工作模式,默認是主動模式,通信時候使用端口20傳文件,21收文件。
被動模式的時候使用一個大端口號。
help 列出所有的在ftp里面的命令,非本地
quit 退出
ftp和lftp都是交互式
在ftp里面,需要對本地操作,可以再命令前面加上嘆號!,如!pwd,作用同在ftp里面輸入lcd
ftp 支持通配符
ftp和lftp都是交互式,不能卸載腳本里面
lftpget URL 下文件,并且支持多點續傳,多線程下載
wget 可以下載ftp資源和http資源
wget [option]... [URL]...
NAME_A TO NAME_B 改名
-q: 靜默模式
-c: 斷點續傳
-O: 保存位置
--limit-rates=: 指定傳輸速率
links 連接,可以當瀏覽器
links url [option]
--dump 抓取網站文字 ex. links a.com > a.txt
--source 抓取網站源碼
curl 網址 直接看源碼
-I 查看網站各種信息
以上就是Linux網絡管理命令的匯總,內容較為全面,小編相信有部分知識點可能是我們日常工作可能會見到或用到的。希望你能通過這篇文章學到更多知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。