linxu 网络管理

徘徊边缘 提交于 2019-12-06 07:01:15

ifconfig:用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。

语法:ifconfig(参数)
参数:
        add<地址>:设置网络设备IPv6的ip地址;
	del<地址>:删除网络设备IPv6的IP地址;
	down:关闭指定的网络设备;
	<hw<网络设备类型><硬件地址>:设置网络设备的类型与硬件地址;
	io_addr<I/O地址>:设置网络设备的I/O地址;
	irq<IRQ地址>:设置网络设备的IRQ;
	media<网络媒介类型>:设置网络设备的媒介类型;
	mem_start<内存地址>:设置网络设备在主内存所占用的起始地址;
	metric<数目>:指定在计算数据包的转送次数时,所要加上的数目;
	mtu<字节>:设置网络设备的MTU;
	netmask<子网掩码>:设置网络设备的子网掩码;
	tunnel<地址>:建立IPv4与IPv6之间的隧道通信地址;
	up:启动指定的网络设备;
	-broadcast<地址>:将要送往指定地址的数据包当成广播数据包来处理;
	-pointopoint<地址>:与指定地址的网络设备建立直接连线,此模式具有保密功能;
	-promisc:关闭或启动指定网络设备的promiscuous模式;
	IP地址:指定网络设备的IP地址;
	网络设备:指定网络设备的名称。
实例:显示网络设备信息(激活状态的):
[root@localhost ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:16:3E:00:1E:51  
          inet addr:10.160.7.81  Bcast:10.160.15.255  Mask:255.255.240.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:61430830 errors:0 dropped:0 overruns:0 frame:0
          TX packets:88534 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3607197869 (3.3 GiB)  TX bytes:6115042 (5.8 MiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:56103 errors:0 dropped:0 overruns:0 frame:0
          TX packets:56103 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:5079451 (4.8 MiB)  TX bytes:5079451 (4.8 MiB)

 

说明:

eth0表示第一块网卡,其中HWaddr表示网卡的物理地址,可以看到目前这个网卡的物理地址(MAC地址)是00:16:3E:00:1E:51

inet addr用来表示网卡的IP地址,此网卡的IP地址是10.160.7.81,广播地址Bcast:10.160.15.255,掩码地址Mask:255.255.240.0

lo是表示主机的回环地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。比如把 httpd服务器的指定到回环地址,在浏览器输入127.0.0.1就能看到你所架WEB网站了。但只是您能看得到,局域网的其它主机或用户无从知道。

  • 第一行:连接类型:Ethernet(以太网)HWaddr(硬件mac地址)。
  • 第二行:网卡的IP地址、子网、掩码。
  • 第三行:UP(代表网卡开启状态)RUNNING(代表网卡的网线被接上)MULTICAST(支持组播)MTU:1500(最大传输单元):1500字节。
  • 第四、五行:接收、发送数据包情况统计。
  • 第七行:接收、发送数据字节数统计信息。

启动关闭指定网卡:

ifconfig eth0 up
ifconfig eth0 down

ifconfig eth0 up为启动网卡eth0,ifconfig eth0 down为关闭网卡eth0。ssh登陆linux服务器操作要小心,关闭了就不能开启了,除非你有多网卡。

为网卡配置和删除IPv6地址:

ifconfig eth0 add 33ffe:3240:800:1005::2/64    #为网卡eth0配置IPv6地址
ifconfig eth0 del 33ffe:3240:800:1005::2/64    #为网卡eth0删除IPv6地址

 用ifconfig修改MAC地址:

ifconfig eth0 hw ether 00:AA:BB:CC:dd:EE

 配置IP地址:

[root@localhost ~]# ifconfig eth0 192.168.2.10
[root@localhost ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0
[root@localhost ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0 broadcast 192.168.2.255

 启用和关闭arp协议:

ifconfig eth0 arp    #开启网卡eth0 的arp协议
ifconfig eth0 -arp   #关闭网卡eth0 的arp协议

 设置最大传输单元:

ifconfig eth0 mtu 1500    #设置能通过的最大数据包大小为 1500 bytes

 

ping:用来测试主机之间网络的连通性。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。

语法:ping(选项)(参数)
选项:
        -d:使用Socket的SO_DEBUG功能;
	-c<完成次数>:设置完成要求回应的次数;
	-f:极限检测;
	-i<间隔秒数>:指定收发信息的间隔时间;
	-I<网络界面>:使用指定的网络界面送出数据包;
	-l<前置载入>:设置在送出要求信息之前,先行发出的数据包;
	-n:只输出数值;
	-p<范本样式>:设置填满数据包的范本样式;
	-q:不显示指令执行过程,开头和结尾的相关信息除外;
	-r:忽略普通的Routing Table,直接将数据包送到远端主机上;
	-R:记录路由过程;
	-s<数据包大小>:设置数据包的大小;
	-t<存活数值>:设置存活数值TTL的大小;
	-v:详细显示指令的执行过程。
实例:ping www.linuxde.net

 

telnet:用于登录远程主机,对远程主机进行管理。telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了。但仍然有很多别的系统可能采用了telnet方式来提供远程登录,因此弄清楚telnet客户端的使用方式仍是很有必要的。

语法:telnet(选项)(参数)
选项:
        -8:允许使用8位字符资料,包括输入与输出;
	-a:尝试自动登入远端系统;
	-b<主机别名>:使用别名指定远端主机名称;
	-c:不读取用户专属目录里的.telnetrc文件;
	-d:启动排错模式;
	-e<脱离字符>:设置脱离字符;
	-E:滤除脱离字符;
	-f:此参数的效果和指定"-F"参数相同;
	-F:使用Kerberos V5认证时,加上此参数可把本地主机的认证数据上传到远端主机;
	-k<域名>:使用Kerberos认证时,加上此参数让远端主机采用指定的领域名,而非该主机的域名;
	-K:不自动登入远端主机;
	-l<用户名称>:指定要登入远端主机的用户名称;
	-L:允许输出8位字符资料;
	-n<记录文件>:指定文件记录相关信息;
	-r:使用类似rlogin指令的用户界面;
	-S<服务类型>:设置telnet连线所需的ip TOS信息;
	-x:假设主机有支持数据加密的功能,就使用它;
	-X<认证形态>:关闭指定的认证形态。
参数:
    远程主机:指定要登录进行管理的远程主机;
    端口:指定TELNET协议使用的端口号。    
实例:telnet 192.168.2.10

 

host:常用的分析域名查询工具,可以用来测试域名系统工作是否正常。

语法:host(选项)(参数)
选项:
        -a:显示详细的DNS信息;
	-c<类型>:指定查询类型,默认值为“IN“;
	-C:查询指定主机的完整的SOA记录;
	-r:在查询域名时,不使用递归的查询方式;
	-t<类型>:指定查询的域名信息类型;
	-v:显示指令执行的详细信息;
	-w:如果域名服务器没有给出应答信息,则总是等待,直到域名服务器给出应答;
	-W<时间>:指定域名查询的最长时间,如果在指定时间内域名服务器没有给出应答信息,则退出指令;
	-4:使用IPv4;
	-6:使用IPv6.
参数:主机:指定要查询信息的主机信息。
实例:host www.linuxde.net 

 

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"参数相同。
实例:
列出所有端口 (包括监听和未监听的)
netstat -a     #列出所有端口
netstat -at    #列出所有tcp端口
netstat -au    #列出所有udp端口    

列出所有处于监听状态的 Sockets
netstat -l        #只显示监听端口
netstat -lt       #只列出所有监听 tcp 端口
netstat -lu       #只列出所有监听 udp 端口
netstat -lx       #只列出所有监听 UNIX 端口

显示每个协议的统计信息
netstat -s   显示所有端口的统计信息
netstat -st   显示TCP端口的统计信息
netstat -su   显示UDP端口的统计信息

在netstat输出中显示 PID 和进程名称
netstat -pt

netstat -p可以与其它开关一起使用,就可以添加“PID/进程名称”到netstat输出中,这样debugging的时候可以很方便的发现特定端口运行的程序。

在netstat输出中不显示主机,端口和用户名(host, port or user)

当你不想让主机,端口和用户名显示,使用netstat -n。将会使用数字代替那些名称。同样可以加速输出,因为不用进行比对查询。
netstat -an

如果只是不想让这三个名称中的一个被显示,使用以下命令:
netsat -a --numeric-ports
netsat -a --numeric-hosts
netsat -a --numeric-users

持续输出netstat信息
netstat -c   #每隔一秒输出网络信息

显示系统不支持的地址族(Address Families)
netstat --verbose

在输出的末尾,会有如下的信息:
netstat: no support for `AF IPX' on this system.
netstat: no support for `AF AX25' on this system.
netstat: no support for `AF X25' on this system.
netstat: no support for `AF NETROM' on this system.

显示核心路由信息
netstat -r

使用netstat -rn显示数字格式,不查询主机名称。
找出程序运行的端口

并不是所有的进程都能找到,没有权限的会不显示,使用 root 权限查看所有的信息。
netstat -ap | grep ssh

找出运行在指定端口的进程:
netstat -an | grep ':80'

显示网络接口列表
netstat -i

显示详细信息,像是ifconfig使用netstat -ie。


IP和TCP分析

查看连接某服务端口最多的的IP地址:
netstat -ntu | grep :80 | awk '{print $5}' | cut -d: -f1 | awk '{++ip[$1]} END {for(i in ip) print ip[i],"\t",i}' | sort -nr

TCP各种状态列表:
netstat -nt | grep -e 127.0.0.1 -e 0.0.0.0 -e ::: -v | awk '/^tcp/ {++state[$NF]} END {for(i in state) print i,"\t",state[i]}'

查看phpcgi进程数,如果接近预设值,说明不够用,需要增加:
netstat -anpo | grep "php-cgi" | wc -l

 

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:路由记录所表示的网络接口。
实例:
显示当前路由:
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
112.124.12.0    *               255.255.252.0   U     0      0        0 eth1
10.160.0.0      *               255.255.240.0   U     0      0        0 eth0
192.168.0.0     10.160.15.247   255.255.0.0     UG    0      0        0 eth0
172.16.0.0      10.160.15.247   255.240.0.0     UG    0      0        0 eth0
10.0.0.0        10.160.15.247   255.0.0.0       UG    0      0        0 eth0
default         112.124.15.247  0.0.0.0         UG    0      0        0 eth1

[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
112.124.12.0    0.0.0.0         255.255.252.0   U     0      0        0 eth1
10.160.0.0      0.0.0.0         255.255.240.0   U     0      0        0 eth0
192.168.0.0     10.160.15.247   255.255.0.0     UG    0      0        0 eth0
172.16.0.0      10.160.15.247   255.240.0.0     UG    0      0        0 eth0
10.0.0.0        10.160.15.247   255.0.0.0       UG    0      0        0 eth0
0.0.0.0         112.124.15.247  0.0.0.0         UG    0      0        0 eth1

其中Flags为路由标志,标记当前网络节点的状态,Flags标志说明:

  • U Up表示此路由当前为启动状态。
  • H Host,表示此网关为一主机。
  • G Gateway,表示此网关为一路由器。
  • R Reinstate Route,使用动态路由重新初始化的路由。
  • D Dynamically,此路由是动态性地写入。
  • M Modified,此路由是由路由守护程序或导向器动态修改。
  • ! 表示此路由当前为关闭状态。

添加网关/设置网关:

route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0    #增加一条到达244.0.0.0的路由。

 屏蔽一条路由:

route add -net 224.0.0.0 netmask 240.0.0.0 reject     #增加一条屏蔽的路由,目的地址为224.x.x.x将被拒绝。

 删除路由记录:

route del -net 224.0.0.0 netmask 240.0.0.0
route del -net 224.0.0.0 netmask 240.0.0.0 reject

 删除和添加设置默认网关:

route del default gw 192.168.120.240
route add default gw 192.168.120.240

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!