2012/02/28

網路相關的 Linux 指令

此篇筆記主要是參照以下文章:
http://dougvitale.wordpress.com/2011/12/21/deprecated-linux-networking-commands-and-their-replacements/

文中提到,很多舊的網路相關指令雖然還是可以使用(而且很常用),但其實過時了(Deprecated)。
特別點出的老舊指令有:arp, ifconfig, iptunnel, iwconfig, nameif, netstat, route

作者將推薦的替代指令做成了表格給大家參考,非常用心。
我將自己常用的整理一下,完整的列表請閱讀原作者的 blog。

[arp]

ARP stands for Address Resolution Protocol. ARP is used to find the media access control address of a network neighbour for a given IPv4 Address. arp command manipulates or displays the kernel's IPv4 network neighbour cache. arp command can add entries to the table, delete one or display the current content.

簡單說,ARP 網路協定就是 MAC address 與 IP address 的 mapping,
而 arp 指令就是用來管理 Linux 主機上的 ARP table(或說 ARP cache)。

arp -a [host] 建議用 ip n 來取代,其中 n 代表 neighbor 的意思,應該很好理解。
arp -d [ip] 建議用 ip n del [ip] 來取代,就是刪除 ARP 表內指定的 IP 記錄。
arp -s 建議用 ip -stat n
arp -e

[ifconfig]

ifconfig 建議使用 ip a
ifconfig [interface] 建議使用 ip a show dev [interface]
ifconfig [interface] up 建議使用 ip link set [interface] up
ifconfig [interface] address [address] 建議使用 ip a add [ip_addr/mask] dev [interface]

[netstat]

ss:utility to investigate sockets.
通常預設 ss 會安裝,或使用 sudo yum install iproute 安裝。

netstat -a 換成 ss -a
netstat -l 換成 ss -l
netstat -t 換成 ss -t
netstat -u 換成 ss -u
netstat -s 換成 ss -s
netstat -n 換成 ss -n
netstat -N 換成 ss -r
netstat -r 換成 ip route
netstat -C 換成 ip route list cache

[route]

[iptunnel]

Reference:
http://dougvitale.wordpress.com/2011/11/28/troubleshooting-faulty-network-connectivity-part-1/
http://dougvitale.wordpress.com/2011/12/11/troubleshooting-faulty-network-connectivity-part-2-essential-network-commands/
http://www.study-area.org/network/network_ip_arp.htm
http://www.cyberciti.biz/tips/linux-investigate-sockets-network-connections.html
http://www.cyberciti.biz/files/ss.html