配置Linux網絡屬性:ip命令
ip命令:
ip - show / manipulate routing, devices, policy routing and tunnels ip [ OPTIONS ] OBJECT { COMMAND | help }OBJECT := { link | addr | route }
link OBJECT:
ip link - network device configuration
set
dev IFACE 可設置屬性:up and down:激活或禁用指定接口;
ip link set eth0 up
[root@localhost ~]# ip link set eth0 up
ip link set eth0 down
[root@localhost ~]# ip link set eth0 down
show
[dev IFACE]:指定接口 [up]:僅顯示處于激活狀態的接口
ip link show eth0
[root@localhost ~]# ip link show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:47:be:80 brd ff:ff:ff:ff:ff:ff
ip link show up eth0
[root@localhost ~]# ip link show up eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:47:be:80 brd ff:ff:ff:ff:ff:ff
ip address – protocol address management
ip addr { add | del } IFADDR dev STRING[label LABEL]:添加地址時指明網卡別名 [scope {global|link|host}]:指明作用域 global: 全局可用; link: 僅鏈接可用; host: 本機可用; [broadcast ADDRESS]:指明廣播地址
ip addr add 10.0.0.10 dev eth0
[root@localhost ~]# ip addr add 10.0.0.10 dev eth0
ip addr add 192.168.2.10/24 dev eth0 label eth0:0
[root@localhost ~]# ip addr add 192.168.2.10/24 dev eth0 label eth0:0
ip addr add 10.0.0.11 dev eth0 scope link
[root@localhost ~]# ip addr add 10.0.0.11 dev eth0 scope link
ip addr add 10.0.0.11 dev eth0 broadcast 10.0.0.240
[root@localhost ~]# ip addr add 10.0.0.11 dev eth0 broadcast 10.0.0.240
ip address show – look at protocol addresses
[dev DEVICE] [label PATTERN] [primary and secondary]
ip address show dev eth0
[root@localhost ~]# ip address show dev eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:47:be:80 brd ff:ff:ff:ff:ff:ff inet 10.0.0.2/8 brd 10.255.255.255 scope global eth0 inet6 fe80::20c:29ff:fe47:be80/64 scope link valid_lft forever preferred_lft forever
ip address show primary
[root@localhost ~]# ip address show primary 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 inet6 ::1/128 scope host valid_lft forever preferred_lft forever2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:47:be:80 brd ff:ff:ff:ff:ff:ff inet 10.0.0.2/8 brd 10.255.255.255 scope global eth0 inet6 fe80::20c:29ff:fe47:be80/64 scope link valid_lft forever preferred_lft forever
ip address flush – flush protocol addresses 使用格式同show
ip address flush eth0
[root@localhost ~]# ip address flush eth0
ip route add
添加路由:ip route add TARGET via GW dev IFACE src SOURCE_IPTARGET: 主機路由:IP 網絡路由:NETWORK/MASK 添加網關:ip route add defalt via GW dev IFACE
ip route add 10.0.0.1 via 10.0.0.2 dev eth0
[root@localhost ~]# ip route add 10.0.0.1 via 10.0.0.2 dev eth0
ip route add default via 10.0.0.1 dev eth0
[root@localhost ~]# ip route add default via 10.0.0.1 dev eth0
ip route delete
刪除路由:ip route del TARGET
[root@localhost ~]# ip route del 10.0.0.0/8
ip route show
[root@localhost ~]# ip route show 10.0.0.1 via 10.0.0.2 dev eth0 10.0.0.0/8 dev eth0 proto kernel scope link src 10.0.0.2 metric 1 default via 10.0.0.1 dev eth0
ip route flush
[dev IFACE]
[via PREFIX]
[root@localhost ~]# ip route flush dev eth0
-
ss命令:
-
格式:ss [OPTION]… [FILTER]
-
選項:
-t: tcp協議相關-u: udp協議相關-w: 裸套接字相關-x:unix sock相關-l: listen狀態的連接-a: 所有-n: 數字格式-p: 相關的程序及PID-e: 擴展的信息-m:內存用量-o:計時器信息FILTER := [ state TCP-STATE ] [ EXPRESSION ]
TCP的常見狀態: tcp finite state machine: LISTEN: 監聽 ESTABLISHED:已建立的連接 FIN_WAIT_1:主動關閉 FIN_WAIT_2:主動關閉 SYN_SENT:等待連接請求 SYN_RECV:確認連接請求 CLOSED:連接結束 EXPRESSION: dport = sport = 示例:’( dport = :ssh or sport = :ssh )’
常用組合:
-tan, -tanl, -tanlp, -uan
ss -tal
[root@localhost ~]# ss -tal State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:38941 *:* LISTEN 0 128 :::39596 :::* LISTEN 0 128 :::sunrpc :::* LISTEN 0 128 *:sunrpc *:* LISTEN 0 128 :::ssh :::* LISTEN 0 128 *:ssh *:* LISTEN 0 128 127.0.0.1:ipp *:* LISTEN 0 128 ::1:ipp :::* LISTEN 0 100 ::1:smtp :::* LISTEN 0 100 127.0.0.1:smtp *:*
ss -ual
[root@localhost ~]# ss -ual State Recv-Q Send-Q Local Address:Port Peer Address:Port UNCONN 0 0 *:787 *:* UNCONN 0 0 *:49202 *:* UNCONN 0 0 127.0.0.1:849 *:* UNCONN 0 0 *:sunrpc *:* UNCONN 0 0 *:ipp *:* UNCONN 0 0 :::787 :::* UNCONN 0 0 :::51988 :::* UNCONN 0 0 :::sunrpc :::*
Linux網絡屬性配置(3): 修改配置文件
IP、MASK、GW、DNS相關配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE 路由相關的配置文件:/etc/sysconfig/network-scripts/route-IFACE/etc/sysconfig/network-scripts/ifcfg-IFACE: DEVICE:此配置文件應用到的設備; HWADDR:對應的設備的MAC地址; BOOTPROTO:激活此設備時使用的地址配置協議,常用的dhcp, static, none, bootp; NM_CONTROLLED:NM是NetworkManager的簡寫;此網卡是否接受NM控制;CentOS6建議為“no”; ONBOOT:在系統引導時是否激活此設備; TYPE:接口類型;常見有的Ethernet, Bridge; UUID:設備的惟一標識; IPADDR:指明IP地址; NETMASK:子網掩碼;GATEWAY: 默認網關; DNS1:第一個DNS服務器指向; DNS2:第二個DNS服務器指向; USERCTL:普通用戶是否可控制此設備; PEERDNS:如果BOOTPROTO的值為“dhcp”,是否允許dhcp server分配的dns服務器指向信息直接覆蓋至/etc/resolv.conf文件中;
/etc/sysconfig/network-scripts/route-IFACE
兩種風格: (1) TARGET via GW (2) 每三行定義一條路由 ADDRESS#=TARGETNETMASK#=maskGATEWAY#=GW
Linux網絡屬性配置的tui(text user interface):
ystem-config-network-tui 也可以使用setup找到; 注意:記得重啟網絡服務方能生效; 配置當前主機的主機名: hostname [HOSTNAME]/etc/sysconfig/network HOSTNAME= 網絡接口識別并命名相關的udev配置文件:/etc/udev/rules.d/70-persistent-net.rules 卸載網卡驅動: modprobe -r e1000 lsmod 裝載網卡驅動: modprobe e1000
CentOS 7網絡屬性配置
傳統命名:以太網eth[0,1,2,...], wlan[0,1,2,...] 可預測功能 udev支持多種不同的命名方案: Firmware, 拓撲結構 (1) 網卡命名機制 systemd對網絡設備的命名方式: (a) 如果Firmware或BIOS為主板上集成的設備提供的索引信息可用,且可預測則根據此索引進行命名,例如eno1; (b) 如果Firmware或BIOS為PCI-E擴展槽所提供的索引信息可用,且可預測,則根據此索引進行命名,例如ens1; (c) 如果硬件接口的物理位置信息可用,則根據此信息進行命名,例如enp2s0; (d) 如果用戶顯式啟動,也可根據MAC地址進行命名,enx2387a1dc56; (e) 上述均不可用時,則使用傳統命名機制; 上述命名機制中,有的需要biosdevname程序的參與;
(2) 名稱組成格式
en: ethernet :以太網接口 wl: wlan :無線局域網設備 ww: wwan:無線廣域網設備 名稱類型: o<index>: 集成設備的設備索引號; s<slot>: 擴展槽的索引號; x<MAC>: 基于MAC地址的命名; p<bus>s<slot>: enp2s1 pci總線上第二個總線上第一個插槽設備
網卡設備的命名過程:
第一步: udev, 輔助工具程序/lib/udev/rename_device, /usr/lib/udev/rules.d/60-net.rules第二步: biosdevname 會根據/usr/lib/udev/rules.d/71-biosdevname.rules第三步: 通過檢測網絡接口設備,根據/usr/lib/udev/rules.d/75-net-descriptionID_NET_NAME_ONBOARD, ID_NET_NAME_SLOT, ID_NET_NAME_PATH
回歸傳統命名方式:
(1) 編輯/etc/default/grub配置文件 GRUB_CMDLINE_LINUX="net.ifnames=0 rhgb quiet"(2) 為grub2生成其配置文件 grub2-mkconfig -o /etc/grub2.cfg (3) 重啟系統
地址配置工具:nmcli
nmcli [ OPTIONS ] OBJECT { COMMAND | help } device - show and manage network interfaces connection - start, stop, and manage network connections 如何修改IP地址等屬性:#nmcli connection modify IFACE [+|-]setting.property valuesetting.property: ipv4.addresses ipv4.gateway ipv4.dns1 ipv4.methodmanual
將 NetworkManager 的所有狀態都打印出來
[root@localhost ~]# nmcli general status狀態 CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN 已連接(只在本地) 全部 已啟用 已啟用 已啟用 已啟用
顯示所有連接
[root@localhost ~]# nmcli connection show 名稱 UUID 類型 設備 virbr0 34523c12-6df4-4f6e-80cf-0159d8837b87 bridge virbr0 有線連接 1 ddc20fc4-543d-49c4-8fef-b3d325b39b61 802-3-ethernet -- eno16777728 af4505d8-c76c-4cd9-b9d7-1bedf3df789d 802-3-ethernet eno16777728
僅顯示當前活動的連接
[root@localhost ~]# nmcli connection show -a 名稱 UUID 類型 設備 virbr0 34523c12-6df4-4f6e-80cf-0159d8837b87 bridge virbr0 eno16777728 af4505d8-c76c-4cd9-b9d7-1bedf3df789d 802-3-ethernet eno16777728
列出 NetworkManager識別出的設備列表及他們的狀態
[root@localhost ~]# nmcli device status 設備 類型 狀態 CONNECTION virbr0 bridge 連接的 virbr0 eno16777728 ethernet 連接的 eno16777728 virbr0-nic ethernet 已斷開 -- lo loopback 未管理 --
停止某個接口
[root@localhost ~]# nmcli device disconnect eno16777728
啟動接口
[root@localhost ~]# nmcli device connect eno16777728
添加一個靜態IP地址的以太網連接
nmcli connection add type ethernet con-name NAME_OF_CONNECTION ifname interface-name ip4 IP_ADDRESS gw4 GW_ADDRESS [root@localhost ~]# nmcli connection add type ethernet con-name NEW ifname eno16777736 ip4 192.168.1.141 gw4 192.168.1.1
設置DNS服務器
[root@localhost ~]# nmcli connection modify NEW ipv4.dns "8.8.8.8 8.8.4.4"
啟動新的 Ethernet 連接
[root@localhost ~]# nmcli connection up NEW ifname eno16777729
查看新連接的配置信息
[root@localhost ~]# nmcli -p connection show NEW
原創文章,作者:N21_ Dominic,如若轉載,請注明出處:http://www.www58058.com/26480
排版不錯,但內容可以再充實一點,加油。