Linux网络控制命令

2024-04-27 01:38
文章标签 linux 命令 网络 控制

本文主要是介绍Linux网络控制命令,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 1.ifconfig
  • 2.ip
  • 3.route
  • 4 ping
  • 5 telnet
  • 6 traceroute
  • 7 tcpdump
  • 8 netstat
  • 9 nc
  • 10 ss

1.ifconfig

  • 1.1 查看已被激活的网卡的详细信息
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:30:67:F2:10:CF
inet addr:10.0.0.253 Bcast:10.0.255.255 Mask:255.255.0.0
inet6 addr: fe80::230:67ff:fef2:10cf/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4663517 errors:0 dropped:0 overruns:0 frame:0
TX packets:6122850 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1852734274 (1.7 GiB) TX bytes:1487018040 (1.3 GiB)

HWaddr :网卡的硬件地址,即MAC地址
inet addr:IPv4的IP 地址
Bcast:广播地址
mask:子网掩码
inet6 addr:IPv6地址
MTU:最大传输单元
Metric:用于计算路由的成本
RX:表示网络启动到现在的封包接受情况 (Receive)
packets:表示接包数
errors:表示接包发生错误的数量
dropped:表示丢弃的包数量
overruns:表示接收时因过速而丢失的数据包数
frame:表示发生frame错误而丢失的数据包数
TX:从网络启动到现在传送的情况 (Transmit)
collisions:冲突信息包的数目
txqueuelen:发送队列的大小
RX byte、TX byte:总传送/接受的量

注:由RX和TX可以了解网络是否非常繁忙
注:errors:0 dropped:0 overruns:0 frame:0,都为0 说明网络比较稳定
注:collisions发生太多次表示网络状况不太好

  • 1.2. 临时IP配置
# ifconfig eth0 172.16.0.118 netmask 255.255.0.0
# ifconfig eth0 172.16.0.118/16
# ifconfig eth0:1 172.16.0.119/16  指定子接口
  • 1.3. 配置临时MAC地址(配置文件中的mac地址不可直接改,要不就不写)
# ifconfig eth0 hw ether B8:97:5A:00:4E:3A
  • 1.4. 简单的启动和关闭网络接口
# ifdown eth0 ; ifup eth0
  • 1.5. 关闭临时的网络接口
# ifconfig eth0:1 down
  • 1.6. 启用和关闭arp协议
# ifconfig eth0  arp
# ifconfig eth0  -arp
  • 1.7. 设置传输单元mtu的值
#ifconfig  eth0  mtu  1000

2.ip

  • 2.1. 关于额外IP的相关设定:ip add 临时增加/删除IP地址
# ip add add 192.168.1.126/24  dev eth0:0
# ip add del  192.168.1.126/24  dev eth0:0
# ip add  show
# ip add  show eth0
  • 2.2. 关于接口设备的相关设置:ip link
# ip link set eth0 up        //开启网卡
# ip link set eth0 down      //关闭网卡
# ip link set eth0 name lyj  //网卡改名
# ip link set eth0 mtu 1000  //改mtu值
# ip link show   //显示所有接口信息
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
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:d6:81:26 brd ff:ff:ff:ff:ff:ff
# ip -s link show eth0  //显示接口流量信息
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:d6:81:26 brd ff:ff:ff:ff:ff:ff
RX: bytes  packets  errors  dropped overrun mcast
107193541  1118624  0       0       0       0
TX: bytes  packets  errors  dropped carrier collsns
116799818  1093559  0       0       0       0
# ip -s -s link show eth0  //多一个-s表示更详细的信息
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:d6:81:26 brd ff:ff:ff:ff:ff:ff
RX: bytes  packets  errors  dropped overrun mcast
107031087  1116940  0       0       0       0
RX errors: length  crc     frame   fifo    missed
0        0       0       0       0
TX: bytes  packets  errors  dropped carrier collsns
116526036  1091941  0       0       0       0
TX errors: aborted fifo    window  heartbeat
0        0       0       0
  • 2.3. 关于路由的相关设置:ip route
# ip route show  //查看路由信息
10.0.0.0/16 dev eth0  proto kernel  scope link  src 10.0.10.158
169.254.0.0/16 dev eth0  scope link  metric 1002
default via 10.0.0.254 dev eth0
# ip route add 10.10.10.0/24 via 172.16.0.254  dev eth0  //添加一条路由
# ip route del 10.10.10.0/24                             //删除一条路由
# ip route add default via 172.16.0.254  dev eth0     //添加默认路由
# ip route del default  via 172.16.0.254   dev eth0   //删除默认路由
  • 2.4. 其他
# ip monitor all   //所在局域网的一台电脑根据它的状态可以被分类成REACHABLE或者STALE
[NEIGH]10.104.64.1 dev eth0 lladdr fe:ee:ff:ff:ff:ff STALE
[NEIGH]10.104.64.1 dev eth0 lladdr fe:ee:ff:ff:ff:ff REACHABLE
[NEIGH]10.104.64.1 dev eth0 lladdr fe:ee:ff:ff:ff:ff STALE
[NEIGH]10.104.64.1 dev eth0 lladdr fe:ee:ff:ff:ff:ff REACHABLE
[NEIGH]10.104.64.1 dev eth0 lladdr fe:ee:ff:ff:ff:ff STALE
[NEIGH]10.104.64.1 dev eth0 lladdr fe:ee:ff:ff:ff:ff REACHABLE
# ip neighbour  //查看接入你所在的局域网的设备的MAC地址
10.104.64.1 dev eth0 lladdr fe:ee:ff:ff:ff:ff REACHABLE

3.route

  • 3.1. 查看路由状态
# route  -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.104.64.0     0.0.0.0         255.255.192.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
0.0.0.0         10.104.64.1     0.0.0.0         UG    0      0        0 eth0

Destination:目的地
Genmask:路由的网络掩码
Gateway:该网络通过哪个网关连接出去的(下一跳)
      0.0.0.0:表示路由直接由本机传送,即局域网的MAC直接发送的
      IP:表示该路由需要路由器(网关)的转发才能发送
Flags:标志
      U Up表示此路由当前为启动状态
      H Host,表示此网关为一主机
      G Gateway,表示此网关为一路由器
      R Reinstate Route,使用动态路由重新初始化的路由
      D Dynamically,此路由是动态性地写入
      M Modified,此路由是由路由守护程序或导向器动态修改
      ! 表示此路由当前为关闭状态
Iface:这个路由传递数据包的接口

  • 3.2.增删/设置路由
# route add -net  172.16.0.0/16  netmask 255.255.0.0  gw 172.16.0.254  dev eth0    //增加一条路由 -net后面接的路由为一个网络# route del  -net  172.16.0.0/16  netmask 255.255.0.0  gw 172.16.0.254  dev eth0   //删除一条路由# route  add  -host  172.16.10.10 gw 192.168.1.1   //-host连接到单部主机的路由# route  add  default  gw  192.168.1.1             //增加默认路由 gw指定下一跳# route  del   default  gw 192.168.1.1

4 ping

  • ping用于检测主机,执行ping指令会使用ICMP,发出要求回应的信息。若远端主机网络功能没有问题,就会回应该信息,因为确定该主机运作正常;

ping [-aAbBdDfhLnOqrRUvV64] [-c <完成次数>] [-i <间隔秒数>] [-I <网络接口>] [-m mark] [-M pmtudisc_option] [-l preload] [-p <范式文本>] [-Q tos] [-s <数据包大小>] [-S sndbuf] [-t <存活数值>] [-T timestamp_option] [-w deadline] [-W timeout] [hop1 …] destination

  • 实例
ping www.aliyun.com         #检测是否与主机联通
ping -c 2 www.baidu.com     #指定接收包的次数

5 telnet

  • telnet用于远端登录;执行telnet指令开启终端机阶段作业,并登入远端主机;

telnet [-4] [-6] [-8] [-E] [-L] [-S tos] [-a] [-c] [-d] [-e char] [-l user] [-n <记录文件>] [-b <主机别名> ] [-r]
[host-name [port]]

  • 实例
telnet www.baidu.com 80     #检测端口是否开启

6 traceroute

  • traceroute命令用于显示数据包到主机间的路径。追踪网络数据包的路由途径。

traceroute [ -46dFITnreAUDV ] [ -f <存活数值> ] [ -g <网关>,… ] [ -i <网络界面> ] [ -m <存活数值> ] [ -N squeries ] [ -p <通信端口> ] [ -t <服务类型> ] [ -l flow_label ] [ -w <超时秒数> ] [ -q nqueries ] [ -s <来源地址> ] [ -z sendwait ] [ --fwmark=num ] 主机名或IP [ 数据包大小 ]

7 tcpdump

  • tcpdump命令用于输出网络传输数据,执行tcpdump指令可列出经过指定网络界面的数据包文件头。

tcpdump [-aAbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c <数据包数目> ] [ -C file_size ] [ -E algo:secret ] [ -F <表达文件> ] [ -G seconds ] [ -i <网络接口> ] [ -j tstamptype ] [ -M secret ] [ --number ] [ -Q|-P in|out|inout ] [ -r <数据包文件> ] [ -s snaplen ] [ --time-stamp-precision precision ] [ --immediate-mode ] [ -T <数据包类型> ] [ --version ] [ -V file ]
[ -w <数据包文件> ] [ -W filecount ] [ -y datalinktype ] [ -z postrotate-command ] [ -Z user ] [ expression ]

  • 实例
# 抓取当前服务器eth0网卡端口8080的网络数据
tcpdump -n -i eth0 port 8080# 抓取所有经过eth0,目的或原地址是192.168.56.103的网络数据
tcpdump -n -i eth0 host 192.168.56.103

8 netstat

#查看路由表
netstat -rn
route -n
#查看某端口
netstat -antulp|grep :80
#查看所有监听端口
netstat -antulp|grep LISTEN
#查看所有端口
netstat -atunlp

9 nc

nc -zuv ip 端口						#检测端口是否打开
nc -l -u ip 端口(可以发送和接受信息)	#服务器监听端口
nc -u ip 端口(可以发送和接受信息)		#客户端检测端口

10 ss

ss -ant		#查看监听的tup端口
ss -anu		#查看监听的udp端口
ss -ano		#查看所有协议端口

这篇关于Linux网络控制命令的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/939209

相关文章

Redis 的 SUBSCRIBE命令详解

《Redis的SUBSCRIBE命令详解》Redis的SUBSCRIBE命令用于订阅一个或多个频道,以便接收发送到这些频道的消息,本文给大家介绍Redis的SUBSCRIBE命令,感兴趣的朋友跟随... 目录基本语法工作原理示例消息格式相关命令python 示例Redis 的 SUBSCRIBE 命令用于订

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

Linux实现查看某一端口是否开放

《Linux实现查看某一端口是否开放》文章介绍了三种检查端口6379是否开放的方法:通过lsof查看进程占用,用netstat区分TCP/UDP监听状态,以及用telnet测试远程连接可达性... 目录1、使用lsof 命令来查看端口是否开放2、使用netstat 命令来查看端口是否开放3、使用telnet