Arch Linux已弃用"net-tools",转而使用"iproute2"
弃用命令 替换命令
arp ip neighbor
ifconfig ip address, ip link
netstat SS
route ip route

如下原文:https://dougvitale.wordpress.com/2011/12/21/deprecated-linux-networking-commands-and-their-replacements/

注意:如下使用自动翻译,部分命令也被翻译为中文,修正了一部分,估计还有。具体请通过上方链接查看原文。

Doug Vitale技术博客

不推荐使用的Linux网络命令及其替代品

在我的文章中详细介绍了可用于在Windows和Linux上配置和排除网络属性的命令行实用程序,我提到了一些Linux工具虽然仍然包含在许多Linux发行版中并且在许多Linux发行版中都有用,但实际上被认为弃用,因此应该逐步取消更现代的替代品。

具体来说,不推荐使用的Linux网络命令是:arpifconfig,  iptunneliwconfignameifnetstatroute这些程序(iwconfig除外)包含在多年未维护net-tools包中。新的iproute2套件中已经复制和改进了其中几个实用程序提供的功能,主要是通过使用其新的ip命令。iproute2的软件代码可以从Kernel.orgiproute2的文档可从Linux FoundationPolicyRouting.org获得

弃用命令

更换命令

arp ip n (ip neighbor)
ifconfig ip a (ip addr), ip linkip -sip -stats)
iptunnel ip tunnel
iwconfig iw
nameif ip linkifrename
netstat ssip route (for netstat -r), ip -s link (for netstat -i), ip maddr (for netstat -g)
route ip rip route


现在让我们仔细看看这些已弃用的命令及其替换。

 

本文不会详细介绍iproute2ip命令; 相反,它只是简单地给出已弃用命令与新对应命令之间的一对一映射。对于列为“不明显”的替换命令,如果您不知道,请与我联系

跳到:

请注意,此处单独介绍nslookupdig

地址解析协议

弃用的arp命令

替换

arp -a [host]所有[host]  显示指定主机名或IP地址的条目。如果未使用[host]参数,则将显示所有条目。 --


ip n(或ip neighbor),或ip n show
arp -d [ip_addr]--删除[ip_addr] 

删除指定主机的ARP缓存条目。
ip n del [ip_addr](这使“邻居条目无效”)

ip nf [ip_addr]
(或ip n flush [ip_addr]
arp -Duse-device  使用与指定接口关联的硬件地址。 --

不明显
arp -e 

以默认(Linux)样式显示条目。
不明显
arp -f [filename]文件[filename]  与-s选项类似,此时地址信息仅取自[filename]设置的文件如果未指定[filename]则使用/ etc / ethers作为默认值。 --

不明显
arp -Hhw-type [type]-t [type]  设置或读取ARP缓存时,此可选参数告诉arp应检查哪个条目类。此参数的默认值为ether(即IEEE 802.3 10Mbps以太网的硬件代码0x01)。 --

不明显
arp -i [int]device [int]  选择一个接口。转储ARP缓存时,仅打印与指定接口匹配的条目。例如,arp -i eth0 -s 10.21.31.41 A321。ABCF.321A创建一个静态ARP条目,将IP地址10.21.31.41与MAC地址A321相关联。关于eth0的ABCF.321A --

ip n [add | chg | del | repl] dev [name]
arp -n数字 显示IP地址,而不是尝试确定域名。 --

不明显
arp -s [ip_addr] [hw_addr]设置[ip_addr]  手动为主机[ip_addr]创建静态ARP地址映射条目,硬件地址设置为[hw_addr] --

ip n add [ip_addr] lladdr [mac_address] dev [device] nud [nud_state](参见下面的例子)
arp -v 

使用详细模式提供更多详细信息。
ip -sn(或ip -stats n


一些ip neighbor示例如下:

# ip n del 10.1.2.3 dev eth0

使设备eth0上的主机10.1.2.3的ARP缓存条目无效

# ip neighbor show dev eth0

显示接口eth0的ARP缓存

# ip n add 10.1.2.3 lladdr 1:2:3:4:5:6 dev eth0 nud perm

为主机10.1.2.3设备eth0添加“永久”ARP缓存条目Neighbor Unreachability Detection(nud)状态可以是以下之一:

  • noarp - 条目有效。不会尝试验证此条目,但可以在其生命周期到期时将其删除。
  • permanent永久 - 进入永久有效,只能在行政上删除。
  • reachable可达 - 条目在可达性超时到期之前有效。
  • stale - 入境有效但可疑。

IFCONFIG

不推荐使用ifconfig命令

替换

ifconfig 

显示所有网络接口的详细信息。
ip a(或ip addr
ifconfig [interface] 

接口的名称。这通常是一个驱动程序名称后跟一个单元号; 例如,第一个以太网接口的eth0Eth0通常是PC的主要网络接口卡(NIC)。
ip show dev [interface]
ifconfig [address_family] 

为了能够解释各种协议使用的不同命名方案,[address_family]用于解码和显示所有协议地址。当前支持的地址族包括inet(TCP / IP,默认),inet6(IPv6),ax25(AMPR分组无线电),ddp(Appletalk阶段2),ipx(Novell IPX)和netrom(AMPR分组无线电)。
ip -f [family] a 

[family]
可以是inet(IPv4),inet6(IPv6)或link另外,-4-f inet-6 = -f inet6
ifconfig [interface] add [address / prefixlength 

将IPv6地址添加到[interface]
ip a add [ip_addr / mask] dev [interface]
ifconfig [interface] address [address] 

将指定的IP [地址]分配给指定的[接口]。
ip a add [ip_addr / mask] dev [interface]
ifconfig [interface] allmulti-allmulti 

启用或禁用全组播模式。如果选中,网络上的所有组播数据包都将由指定[接口]接收这启用或禁用将传入帧发送到内核的网络层。
ip mr iif [name]ip mroute iif [name],其中[name]是接收组播数据包的接口。
ifconfig [interface] arp-arp 

启用或禁用此[接口]上ARP协议的使用
ip link set arp onarp off
ifconfig [interface] broadcast [address] 

指定用于广播传输的地址。默认情况下,子网的广播地址是子网地址主机部分中所有1的IP地址(即/ 24子网的abc255)。
ip添加广播[ip_address] 

ip link set dev [interface] broadcast [mac_address](设置链路层广播地址)
ifconfig [interface] del [address / prefixlength] 

[interface]中删除IPv6地址,例如eth0
ip a del [ipv6_addripv4_addr] dev [interface]
ifconfig [interface] down 

禁用[interface],例如eth0
ip link set dev [interface] down
ifconfig [interface] hw [class] [address] 
如果设备驱动程序支持此操作,则
设置此[接口]的硬件(MAC)地址关键字必须后跟硬件[class]的名称和硬件地址的可打印ASCII等效项。目前支持的硬件类包括ether(以太网),ax25(AMPR AX.25),ARCnetnetrom(AMPR NET / ROM)。
ip link set dev [interface] address [mac_addr]
ifconfig [interface] io_addr [address] 

设置启动[地址]I / O空间此设备。
不明显; 可能是ethtool
ifconfig [interface] irq [address] 

设置网络接口使用的中断线
不明显; 可能是ethtool
ifconfig [interface] mem_start [address] 

设置接口共享内存的起始地址
不明显; 可能是ethtool
ifconfig [interface] media [type] 

设置物理端口或介质类型。[type]的示例10baseT10base2AUI[类型]的值自动将告诉接口驱动程序,以自动确定的媒体类型(驱动程序支持该命令而异)。
不明显; 可能是ethtool
ifconfig [interface] mtu [n] 
将接口
的最大传输单位(MTU设置[n]
ip link set dev [interface] mtu [n]
ifconfig [interface] multicast 
在接口上
设置多播标志(通常不需要,因为驱动程序自己正确设置标志)。
ip link set dev [interface] multicast打开关闭
ifconfig [interface] netmask [mask_address] 

设置[interface]子网掩码(不是IP地址)此值默认为标准的A,B或C类子网掩码(基于接口IP地址),但可以使用此命令进行更改。
不明显
ifconfig [interface] pointopoint-pointopoint 
[[interface]
启用或禁用点对点模式
不明显; 可能是  ipppd [设备]命令ip a add peer [address]指定点对点接口的远程端点的地址。
ifconfig [interface] promisc-promisc 
[interface]
启用或禁用混杂模式
ip link set dev [interface] promisc onoff
ifconfig [interface] txquelen [n] 
[interface]
设置传输队列长度对于具有高延迟的连接(即拨号调制解调器,ISDN等),建议使用较小的值。
ip link set dev [interface] txqueuelen [n]txqlen [n]
ifconfig [interface] tunnel [address] 

创建一个简单的Internet转换(IPv6-in-IPv4)设备,该设备通过隧道传送到提供的IPv4 [地址]
ip tunnel mode sit(其他可能的模式是ipipgre)
ifconfig [interface] up 

激活(启用)指定[interface]
ip link set [interface] up


说明ip命令的一些例子如下:使用上面的表格,你应该能够弄清楚他们做了什么。

# ip link show dev eth0

# ip a add 10.11.12.13/8 dev eth0

# ip link set dev eth0 up

# ip link set dev eth0 mtu 1500

# ip link set dev eth0 address 00:70:b7:d6:cd:ef

Iptunnel

不推荐使用的iptunnel命令

替换

iptunnel [add | change del | show] ip tunnel aadd
ip tunnel chgchange
ip tunnel ddel 
ip tunnel lsshow
iptunnel add [name] [mode {ipip | gre | sit}] remote [remote_addr] local [local_addr] ip tunnel add [name] [mode {ipip | gre | 坐| isatap | ip6in6 | ipip6 | any}] remote [remote_addr] local [local_addr]
iptunnel -V--version 不明显

这些示例显示了iptunnelip隧道
之间的语法非常相似。

# [iptunnel | ip tunnel] add ipip-tunl1 mode ipip remote 83.240.67.86ipip-tunl1是隧道的名称,83.240.67.86是远程端点的IP地址)。

# [iptunnel | ip tunnel] add ipi-tunl2 mode ipip remote 104.137.4.160 local 104.137.4.150 ttl 1

# [iptunnel | ip tunnel] add gre-tunl1 mode gre remote 192.168.22.17 local 192.168.10.21 ttl 255

Iptunnel这里有更深入的介绍

iwconfig的

Iwconfig的继任者,iw,仍处于开发阶段。iw的官方文档在此处此处获得

不推荐使用的iwconfig命令

替换

iwconfig 

显示有关无线接口​​的基本详细信息,例如支持的协议(802.11a / b / g / n),扩展服务集ID(ESSID),模式和接入点。要查看有关特定接口的这些详细信息,请使用iwconfig [interface],其中接口是设备名称,例如wlan0
iw dev [interface]link
iwconfig [interface] ap [地址] 
如果可能,
强制无线适配器注册[地址]给出的接入点该地址是接入点的小区标识(由无线扫描报告),其可能与其MAC地址不同。
不明显
iwconfig提交

某些无线适配器可能不会立即应用更改(它们可能会等待聚合更改,或仅在通过ifconfig启动卡时应用它们)。此命令(如果可用)强制适配器立即应用所有挂起的更改。
不明显
iwconfig [interface] essid [name] 

使用提供的ESSID [名称]连接到WLAN 随着一些无线适配器,您可以禁用ESSID检查(ESSID混杂)关闭任何(与重新启用它)。
iw [interface] connect [name]
iwconfig [interface] frag [num] 

设置最大片段大小始终低于最大数据包大小。此参数还可以控制某些无线适配器上可用的帧突发(能够一起发送多个IP数据包)。如果片段大小大于最大包大小,则将启用此机制。autoonoff的其他有效frag参数
不明显
iwconfig [interface] [freq | 频道] 

设置无线设备上的工作频率或通道。低于1000的值表示通道编号,大于1000的值是以Hz为单位的频率。您可以将后缀kMG附加到该值(例如,对于2.46 GHz频率,为“2.46G”)。你也可以使用 关闭自动让适配器获取最佳通道(支持时)。
iw dev [interface] set freq [freq] [HT20 | HT40 + | HT40-] 

iw dev [interface] set channel [chan] [HT20 | HT40 + | HT40-]
iwconfig [interface] key [key] [mode] [on | 关闭] 

要设置当前加密[密钥],只需输入十六进制数字的密钥为XXXX-XXXX-XXXX-XXXX或XXXXXXXX。您还可以使用s:前缀将密钥作为ASCII字符串输入打开关闭 re =启用和禁用加密。安全模式可以是开放的受限制的,其含义取决于所使用的卡。对于大多数卡,在开放模式下不使用认证,并且卡也可以接受非加密会话,而在受限模式中,仅接受加密会话,并且如果可用,卡将使用认证。
iw [interface] connect [name] keys [key](用于WEP)

要使用WPA或WPA2加密连接到AP,必须使用wpa_supplicant
iwconfig [interface] mode [mode] 

设置无线设备的操作模式。[模式]可以是点对点自动管理万事达监视器,中继器,或二次

Ad-Hoc
:网络只由一个小区组成,没有接入点。
托管:无线节点通过漫游连接到由许多接入点组成的网络。
主站:无线节点是同步主站,或者它充当接入点。
监控:无线节点不与任何小区关联,并被动监视频率上的所有数据包。
中继器:无线节点在其​​他无线节点之间转发数据包。
辅助:无线节点充当备用主/中继器。
不明显
iwconfig [interface] modu [modulation] 

强制无线适配器使用一组特定的调制。现代适配器支持各种调制,例如802.11b或802.11g。可用调制列表取决于适配器/驱动程序,可以使用iwlist调制显示一些选项是11gCCK OFDMaauto
不明显
iwconfig [interface] nick [name] 

设置昵称(或站名称)。
不明显
iwconfig [interface] nwid [name] 

设置WLAN的网络ID。此参数仅用于802.11之前的硬件,因为802.11协议使用此功能的ESSID和接入点地址。随着一些无线适配器,您可以禁用网络ID检查(NWID混杂)关闭(和 重新启用它)。
不明显
iwconfig [interface] power [option] 
iwconfig [interface] power min | 最大[secondsu | secondsm] 
iwconfig [interface] power mode [mode] 
iwconfig [interface] power on | 关闭

配置电源管理方案和模式。有效[options]包括:period [value](设置唤醒之间的时间间隔),timeout [value](设置返回休眠之前的超时),保存[value](设置通用的省电级别)。
最小最大修饰符在默认秒,但追加就足够ü在毫秒或微秒指定值。
有效[mode]选项包括:all(接收所有数据包),单播(仅接收单播数据包,丢弃多播和广播)和多播(仅接收多播和广播,丢弃单播数据包)。
打开关闭重新启用或禁用电源管理。
不明显; 一些电源命令是:

iw dev [interface] set power_save 

iw dev [interface] get power_save
iwconfig [interface] rate / bit [rate] 

设置支持多个比特率的卡的比特率,以每秒比特数为单位。比特率是通过介质传输比特的速度,由于媒体共享和各种开销链路的用户速度较低。可以将kMG加到数字[速率](十进制乘数) :10 ^ 3,10 ^ 6和10 ^ 9 b / s),或添加' 0 '足够。[速率],也可以自动选择自动比特率模式(回退到上噪声信道更低的速率),或固定到恢复到固定设置。如果指定比特率数值并附加auto,驱动程序将使用低于和等于此值的所有比特率。
iw [interface] set bitrates legacy-2.4 12 18 24
iwconfig [interface] retry [option] [value] 

要设置最大重试次数(MAC重新传输),请输入limit [value]要设置MAC应重试的最长时间,请输入lifetime [value]默认情况下,此值以秒为单位; 附加足够的mu来指定以毫秒或微秒为单位的值。您还可以添加最小最大修饰符。
不明显
iwconfig [interface] rts [threshold] 

设置节点发送RTS的最小数据包的大小; 等于最大数据包大小的值将禁用该机制。您也可以将阈值参数设置为自动固定关闭
不明显
iwconfig [interface] sens [threshold] 

设置灵敏度阈值(定义无线适配器对不良操作条件的敏感程度,如低信号,信号干扰等)。现代适配器设计似乎自动控制这些阈值。
不明显
iwconfig [interface] txpower [value] 

对于支持多个发射功率的适配器,这将以dBm为单位设置发射功率。如果W是以瓦特为单位的功率,则以dBm为单位的功率为P = 30 + 10.log(W)。如果[value]后缀为mW,它将自动转换为dBm。此外,打开关闭启用和禁用无线电,以及自动固定启用和禁用电源控制(如果这些功能可用)。
iw dev [interface] set txpower [auto | fixed| | limit] [tx power in  mBm] 

iw phy [phyname] set txpower [auto | fixed| limit] [tx power in mBm]
iwconfig --help

显示iwconfig帮助消息。
iw help
iwconfig --version

显示已安装的iwconfig的版本。
iw --version

iw命令语法的
一些示例如下。

# iw dev wlan0 link

# iw wlan0 connect CoffeeShopWLAN

# iw wlan0 connect HomeWLAN keys 0:abcde d:1:0011223344
 (对于WEP)

Nameif

不推荐使用的nameif命令

替换

nameif [name] [mac_address] 

如果未提供名称和MAC地址,则会尝试从中读取地址/etc/mactab每行mactab应包含接口名称和MAC地址(或以#开头的注释)。
ip link set dev [interface] name [name] 

ifrename -i [interface] -n [newname]
nameif -c [config_file] 

[config_file]读取而不是/etc/mactab
ifrename -c [config_file]
nameif -s 

错误消息将发送到syslog。
不明显

用netstat

不推荐使用的netstat命令

替换

netstat -a全部显示侦听和非侦听套接字 --


ss -a或 --all
netstat -A [family]protocol = [family]  指定要为其显示连接的地址系列。[family]是逗号分隔的地址族关键字列表,如inetunixipxax25netromddp这与使用inetunix(-x)ipxax25netromddp选项具有相同的效果 --

------------
ss -f [family]-family = [family] 

家庭:unixinetinet6linknetlink
netstat -c或者--continuous

配置netstat每秒刷新显示的信息直到停止。
不明显
netstat -C 

从路由缓存中打印路由信息。
ip route list cache
netstat -e--extend 

显示更高级别的细节。可以输入两次(作为--ee)以获得最大细节。
ss -e--extended
netstat -F 

从转发信息数据库(FIB打印路由信息
不明显
netstat -g--groups

显示IPv4和IPv6的组播组成员信息。
ip maddrip maddr show [interface]
netstat -iinterface = [name]  显示所有网络接口或指定[name]的表。 --


ip -s link
netstat -l或--listeniing 仅显示侦听套接字(默认情况下netstat省略)。 --

ss -l --listening
netstat -M--masquerade

显示伪装连接列表(通过网络地址转换更改的连接)。
不明显
netstat -n或numeric 显示数字地址,而不是尝试确定符号主机,端口或用户名(跳过DNS转换)。 --

ss -n--numeric
netstat --nuberic-hosts

显示数字主机地址,但不影响端口或用户名的分辨率。
不明显
netstat --nuberic ports

显示数字端口号但不影响主机或用户名的分辨率。
不明显
netstat --nuberic-users

显示数字用户ID,但不影响主机或端口名称的分辨率。
不明显
netstat -N--symbolic

显示符号主机,端口或用户名,而不是数字表示。Netstat默认执行此操作。
ss -r--resolve
netstat -o--timers

包括与网络计时器相关的信息。
ss -o--options
netstat -p--program

显示进程ID(PID)和每个套接字所属程序的名称。
ss -p
netstat -rroute  显示内核路由表。 --

ip routeip route show all
netstat -s或--statistics 显示每个协议的摘要统计信息。 --

ss -s
netstat -ttcp  过滤结果仅显示TCP。 --

ss -t或 --tcp
netstat -Tnotrim  停止修剪长地址。 --

不明显
netstat -uudp  过滤结果仅显示UDP。 --

ss -u或 --udp
netstat -vverbose  产生详细输出。 --

不明显
netstat -w--raw 

过滤结果显示原始套接字
ss-w--raw
netstat -Z上下文如果启用 了SELinux,打印SELinux上下文。在运行SELinux的主机上,所有进程和文件都以表示安全相关信息的方式进行标记。此信息称为SELinux上下文。 --

不明显

路线

不推荐的路由命令

替换

route

显示主机的路由表。
ip route
route -A [family] [add]route --[family] [add] 

使用adddel指定的地址族有效系列是inet(DARPA Internet),inet6(IPv6),ax25(AMPR AX.25),netrom(AMPR NET / ROM),ipx(Novell IPX),ddp(Appletalk DDP)和x25(CCITT X.25) 。
ip -f [family] route 

[family]可以是inet(IP),inet6(IPv6)或链接另外,-4 = -f inet-6 = -f inet6
route-C--cache 在内核的路由缓存而不是转发信息库(FIB)路由表上运行。 --

不明显; ip route show cache转储路由缓存。
route -e-ee 

使用netstat -r格式显示路由表。-ee将生成一个包含路由表中所有参数的非常长的行。
ip route show
route-Ffib  在内核的转发信息库(FIB)路由表上运行(默认行为)。 --

不明显
route-h--help 打印帮助信息。 --

ip route help
route-n 

显示数字IP地址和旁路主机名称解析。
不明显
route -vverbose  启用详细命令输出。 --

ip -s route
route-V版本 支持net-toolsroute命令的版本。 --

ip -V
route adddel 

在路由表中添加或删除路由。
ip route [add| chg | repl | del [ip_addr] via [ip_addr]
route [add or del] dev [interface] 

将路由与特定设备关联。如果dev [interface]是命令行中的最后一个选项,则可以省略单词dev。
ip route [add| chg | repl | del] dev [gw]
route [add or del] [default] gw [gw] 

通过指定的网关IP地址路由数据包。
ip route add default via [gw]
route [add or del] -host 

指定目标是主机(不是网络)。
不明显
route [add or del] -irtt [n] 
将此路由上TCP连接
的初始往返时间(IRTT)设置为[n]毫秒(1-12000)。这通常仅用于AX.25网络。如果省略,则使用RFC 1122默认值300ms。
不明显; ip route [add| chg | repl | del] rtt [number]设置RTT估计值; rttvar [number]设置初始RTT方差估计。
route [add or del] -net 

指定目标是网络(不是主机)。
不明显
route [add or del] [-host-net] netmask [mask] 

设置子网[掩码]
不明显
route [add or del] metric [n] 

将路由表中的度量标准字段(由路由守护程序使用)设置为[n]的值
ip route [add| chg | repl | del] metric [number]或者 perference [number]
route [adddel] mod,dynrestore 

安装动态或修改的路线。这些标志用于诊断目的,通常仅通过路由守护进程设置。
不明显
route [adddel] mss [bytes] 
将此路由上的连接
的TCP最大段大小(MSS)设置为指定[字节数]
ip route [add| chg | repl | del] advmss [number](MSS在建立TCP连接时向这些目的地做广告)。
route [adddel] reject 

安装阻塞路由,这将强制路由查找失败。这用于在使用默认路由之前屏蔽网络。这不是为了提供防火墙功能。
ip route add prohibit [network_addr]
route [add or del] window [n] 
将此路由上的连接
TCP窗口大小设置[n]字节的值这通常仅用于AX.25网络,并且驱动程序无法处理背对背帧。
ip route [add| chg | repl | del] windows [W]

ip route命令语法的
一些示例如下。

# ip route add 10.23.30.0/24 via 192.168.8.50

# ip route del 10.28.0.0/16 via 192.168.10.50 dev eth0

# ip route chg default via 192.168.25.110 dev eth1

# ip route get [ip_address]
 (显示用于访问远程主机的接口和网关。此命令对于解决具有大型路由表和/或具有多个网络接口的主机上的路由问题特别有用)。

讨论

本文和已弃用的Linux网络命令主题已经对Reddit产生了许多有趣的评论

推荐阅读

如果您发现本文的内容有用并希望进一步扩展您的知识,请考虑使用以下链接购买相关书籍。谢谢!

亚马逊上的Linux内核网络 Linux内核网络 Linux网络内部亚马逊上的Linux网络内部

Linux Networking Cookbook   Linux网络管理员指南

Linux in a Nutshell,第6版 Linux命令实用指南亚马逊上的Linux命令,编辑器和Shell编程实用指南

亚马逊Linux上的TCP / IP架构,设计和实现 Linux Linux网络体系结构中的TCP / IP实现亚马逊上的Linux网络架构