iproute2

iproute2

iproute2 是 Linux 提供的一组管理网络连接的用户态工具。

ip [link|addr|route|rule] help
man ip [link|addr|route|rule]

ip link

ip link # Show information for all interfaces
ip link show dev em1 # Display information only for device em1
ip -s link # Display interface statistics

ip link set em1 up # Bring em1 online
ip link set em1 down # Bring em1 offline
ip link set em1 mtu 1492 # Set the MTU on em1 to 1492
ip link set em1 promisc on # Enable promiscuous mode for em1

ip addr

ip addr #Show information for all addresses
ip addr show dev em1

ip addr add 192.168.1.1/24 dev em1
ip addr del 192.168.1.1/24 dev em1

ip rule

ip rule # show all route rules
ip rule add from 192.168.1.0/24 table main prio 10
ip rule add fwmark 0x1/0x1 table 4 prio 4 # match fwmark bit(s) mark/mask
# 可以使用的所有条件:
# [ not ] [ from PREFIX ] [ to PREFIX ] [ tos TOS ] [ fwmark FWMARK[/MASK] ] [ iif STRING ] [ oif STRING ] [ pref NUMBER ] [ l3mdev ]

ip route

PS. "route" 可以简写为 "r"

ip route show table main # == ip route

ip route add default via 192.168.1.1 dev em1 # Add a default route (for all addresses) via the local gateway 192.168.1.1 that can be reached on device em1
ip route add 192.168.1.0/24 via 192.168.1.1 #Add a route to 192.168.1.0/24 via the gateway at 192.168.1.1
ip route add 192.168.1.0/24 dev em1 #Add a route to 192.168.1.0/24 that can be reached on
device em1
ip route add default via 192.168.1.1 [dev em1] [src 192.168.1.3] [table main]
ip route delete 192.168.1.0/24 via 192.168.1.1
ip route replace 192.168.1.0/24 dev em1 # Replace the defined route for 192.168.1.0/24 to use
device em1
ip route get 192.168.1.5 # Display the actual route taken for IP 192.168.1.5

More

 # Display the actual route for a dst ip and fwmark
ip route get 1.2.3.4 mark 0x2

ip neigh

ip neigh # Display neighbour objects
ip neigh show dev em1 # Show the ARP cache for device em1

ip neigh add 192.168.1.1 lladdr 1:2:3:4:5:6 dev em1 # Add address 192.168.1.1 with MAC 1:2:3:4:5:6 to em1
ip neigh del 192.168.1.1 dev em1 # Invalidate the entry for 192.168.1.1 on em1
ip neigh replace 192.168.1.1 lladdr 1:2:3:4:5:6 dev em1 # Replace the entry for address 192.168.1.1 to use MAC 1:2:3:4:5:6 on em1

ip maddr

ip maddr # Display multicast information for all devices
ip maddr show dev em1 # Display multicast information for device em1

ip maddr add 33:33:00:00:00:01 dev em1 # Add mutlicast address 33:33:00:00:00:01 to em1
ip maddr del 33:33:00:00:00:01 dev em1 # Delete address 33:33:00:00:00:01 from em1

Other ethtools

arping

arping -I eth0 192.168.1.1 # Send ARP request to 192.168.1.1 via interface eth0
arping -D -I eth0 192.168.1.1 # Check for duplicate MAC addresses at 192.168.1.1 on eth0

ethtool

ethtool -g eth0 # Display ring buffer for eth0
ethtool -i eth0 # Display driver information for eth0
ethtool -p eth0 # Identify eth0 by sight, typically by causing LEDs to blink on the network port
ethtool -S eth0 # Display network and driver statistics for eth0

ss

Display socket statistics. The below options can be combined

ss -a # Show all sockets (Without this flag, will only show non-listening sockets)
ss -e # Show detailed socket information
ss -o # Show timer information
ss -n # Do not resolve addresses
ss -p # Show process using the socket
ss -neopa # show above all

Compare NET-TOOLS vs. IPROUTE commands

NET-TOOLS IPROUTE
arp -a ip neigh
arp -v ip -s neigh
arp -s 192.168.1.1 1:2:3:4:5:6 ip neigh add 192.168.1.1 lladdr 1:2:3:4:5:6 dev eth1
arp -i eth1 -d 192.168.1.1 ip neigh del 192.168.1.1 dev eth1
ifconfig -a ip addr
ifconfig eth0 down ip link set eth0 down
ifconfig eth0 up ip link set eth0 up
ifconfig eth0 192.168.1.1 ip addr add 192.168.1.1/24 dev eth0
ifconfig eth0 netmask 255.255.255.0 ip addr add 192.168.1.1/24 dev eth0
ifconfig eth0 mtu 9000 ip link set eth0 mtu 9000
ifconfig eth0:0 192.168.1.2 ip addr add 192.168.1.2/24 dev eth0
netstat ss
netstat -neopa ss -neopa
netstat -g ip maddr
route ip route
route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0 ip route add 192.168.1.0/24 dev eth0
route add default gw 192.168.1.1 ip route add default via 192.168.1.1

Last update: 2018-06-22 08:00:42 UTC