Linux~之五

网络管理

    
网络配置命令
            ifconfig,route,netstat,ss,ip,
ifconfig命令:
        ifconfig   查看网络信息
         ifconfig -a    
         ifconfig eth0 down    关闭eth0这个网卡
         ifconfig eth0 up        开启eth0这个网卡
          ifconfig eth0 1.1.1.1/24    临时改变eth0的IP地址
            注意:及时生效
route命令:路由管理命令
        
         route命令用来显示并设置Linux内核中的网络路由表,route命令设置的路由主要是静态路由。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。
在Linux系统中设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的ip地址设置为Linux机器的默认路由。
要注意的是,直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效了;可以在/etc/rc.local中添加route命令来保证该路由设置永久有效。
      
语法   
 
route (选项)(参数)
选项
 
-A:设置地址类型;
-C:打印将Linux核心的路由缓存;
-v:详细信息模式;
-n:不执行DNS反向查找,直接显示数字形式的IP地址;
-e:netstat格式显示路由表;
-net:到一个网络的路由表;
-host:到一个主机的路由表。
  参数
Add:增加指定的路由记录;
Del:删除指定的路由记录;
Target:目的网络或目的主机;
gw:设置默认网关;
mss:设置TCP的最大区块长度(MSS),单位MB;
window:指定通过路由表的TCP连接的TCP窗口大小;
dev:路由记录所表示的网络接口。
实例
1)显示当前路由      
  
route -n    #查看路由信息
Linux~之五_第1张图片
其中Flags为路由标志,标记当前网络节点的状态,Flags标志说明:
  • U Up表示此路由当前为启动状态。
  • H Host,表示此网关为一主机。
  • G Gateway,表示此网关为一路由器。
  • R Reinstate Route,使用动态路由重新初始化的路由。
  • D Dynamically,此路由是动态性地写入。
  • M Modified,此路由是由路由守护程序或导向器动态修改。
  • ! 表示此路由当前为关闭状态。
2)添加/设置网关
      
route add -net 192.168.0.0/24 gw 172.18.0.1 dev eth0#增加了一个去往192.168.0.0的路由,网关是172.18.0.1 dev eth0是网卡设备
3)设置默认路由网关
route add default gw 172.18.0.1    
4)屏蔽一条路由
route add -net 192.168.0.0 netmask 192.168.0.0 reject    #目的地址为192.168.0.X的被拒绝    
5)删除路由信息
route del default    #删除默认网关
route del -net 192.168.0.0 netmask 192.168.0.0 reject

netstat命令

  
netstat命令
netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。
语法
netstat (选项)
选项
-a或--all:显示所有连线中的Socket;
-A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址;
-c或--continuous:持续列出网络状态;
-C或--cache:显示路由器配置的快取信息;
-e或--extend:显示网络其他相关信息;
-F或--fib:显示FIB;
-g或--groups:显示多重广播功能群组组员名单;
-h或--help:在线帮助;
-i或--interfaces:显示网络界面信息表单;
-l或--listening:显示监控中的服务器的Socket;
-M或--masquerade:显示伪装的网络连线;
-n或--numeric:直接使用ip地址,而不通过域名服务器;
-N或--netlink或--symbolic:显示网络硬件外围设备的符号连接名称;
-o或--timers:显示计时器;
-p或--programs:显示正在使用Socket的程序识别码和程序名称;
-r或--route:显示Routing Table;
-s或--statistice:显示网络工作信息统计表;
-t或--tcp:显示TCP传输协议的连线状况;
-u或--udp:显示UDP传输协议的连线状况;
-v或--verbose:显示指令执行过程;
-V或--version:显示版本信息;
-w或--raw:显示RAW传输协议的连线状况;
-x或--unix:此参数的效果和指定"-A unix"参数相同;
--ip或--inet:此参数的效果和指定"-A inet"参数相同。
实例
1)查看所有端口
netstat -a    #列出所有端口
netstat -at    #列出所有tcp端口
netstat -au    #列出所有udp端口
netstat -tuanp      ***
netstat -tan       ***
netstat -uan       ***
显示所有网卡收发包的信息
netstat -i
netstat -I=ens33  #显示指定网卡收发包的信息 等同于 ifconfig -s ens33
2)列出所有处于监听状态的 Sockets 套接字
netstat -l    #只列出监听端口
netstat -lt    #只列出所有监听tcp端口
netstat -lu    #只列出所有监听udp端口
netstat -lx    #只列出所有监听unix端口
3)显示每个协议的统计信息
netstat -s    #显示所有端口的统计信息
netstat -st    #显示TCP端口的统计信息
netstat -su    #显示UDP端口的统计信息
4)在netstat中显示PID和进程名称
netstat -pt
netstat -p 可以与其它开关一起使用,就可以添加“PID/进程名称”到netstat输出中,这样debugging的时候可以很方便的发现特定端口运行的程序。
5)显示路由表
netstat -r    #显示内核路由表
netstat -n    #数字格式
netstat -rn   #和route -n 差不多
ss命令
ss命令 用来显示处于活动状态的套接字信息。
ss命令可以用来获取socket统计信息,它可以显示和netstat 类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。
        当服务器的socket连接数量变得非常大时, 无论是使用netstat命令还是直接cat /proc/net/tcp ,执行速度都会很慢。
        可能你不会有切身的感受,但请相信我,当服务器维持的连接达到上万个的时候,使用netstat等于浪费 生命,而用ss才是节省时间。
天下武功唯快不破。ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效。
当然,如果你的系统中没有tcp_diag,ss也可以正常运行,只是效率会变得稍慢。
语法
ss (选项)
选项
-t: tcp协议相关
-u: udp协议相关
-w: 裸套接字相关
-x:unix sock相关
-l: listen状态的连接
-a: 所有
-n: 数字格式
-p: 相关的程序及PID
-e: 扩展的信息
-m:内存用量
-o:计时器信息
TCP常见状态
tcp finite state machine:
LISTEN: 监听.
ESTABLISHED:已建立的连接
FIN_WAIT_1
FIN_WAIT_2
SYN_SENT
SYN_RECV
CLOSED6
常见组合
ss -tan
ss -uan
ss -tuan
ss -tuanp             
   

你可能感兴趣的:(Linux网络命令,linux,ip,route路由)