linux之网络命令,复习是为了更好的记忆,地基是成功的关键。长期更新~~~

1.查看路由表

[root@zdj ~]# route -n

Kernel IP routing table

目标地址 下一跳地址 目标地址的子网掩码 路由标志 数据从哪个接口出去

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

本机所在的网段,若数据传送目标是在本局域网内通信,则可直接通过eth0转发数据包;

169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0

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

U Up表示此路由当前为启动状态。

H Host,表示此网关为一主机。

G Gateway,表示此网关为一路由器。

R Reinstate Route,使用动态路由重新初始化的路由。

D Dynamically,此路由是动态性地写入。

M Modified,此路由是由路由守护程序或导向器动态修改。

! 表示此路由当前为关闭状态。

2.添加默认路由

[root@zdj ~]# route add default gw 192.168.1.1

[root@zdj ~]# route -n

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.1.0 0.0.0.0 255.255.255.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 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 #默认路由使用(G)

3.添加路由

目标网段 掩码 从哪块网卡出去 下一跳

[root@zdj ~]# route add -net 192.168.3.0 netmask 255.255.255.0 dev eth0 gw 192.168.1.1

[root@zdj ~]# route -n

192.168.3.0 192.168.1.1 255.255.255.0 UG 0 0 0 eth0

特定主机路由在路由表中的子网掩码记为:255.255.255.255,表示本行是一条特定主机路由表项

[root@zdj ~]# route add -host 8.8.8.8 dev eth0 gw 192.168.1.1

[root@zdj ~]# route add -host 8.8.8.9/32 dev eth0 gw 192.168.1.1

[root@zdj ~]# route -n

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

8.8.8.8 192.168.1.1 255.255.255.255 UGH 0 0 0 eth0

8.8.8.9 192.168.1.1 255.255.255.255 UGH 0 0 0 eth0

主机路由的优先级高于网段路由

在路由表里查询匹配的路由的时候是从上往下一条一条的匹配,匹配到其中的一条后,就不会再查看后面的路由了

禁用网络连接、重新启动网络服务,路由表都会发生变化(手工添加的静态路由会消失)

[root@zdj ~]# route del 8.8.8.8 删除路由

4.开启路由功能

第1种方法 永久开启路由功能

[root@zdj ~]# vi /etc/sysctl.conf

net.ipv4.ip_forward = 1 #将0修改为1

[root@zdj ~]# sysctl -p

第2种方法 临时开启路由功能,刷新网络服务会失效

[root@zdj ~]# echo 1 >>/proc/sys/net/ipv4/ip_forward

[root@zdj ~]# cat /proc/sys/net/ipv4/ip_forward

1

5.ip命令

[root@zdj ~]# ip link show 查看各个网络接口是否连接好

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 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 00:30:67:f2:10:cf brd ff:ff:ff:ff:ff:ff

3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 #没有接网线

link/ether ec:88:8f:ef:d2:4a brd ff:ff:ff:ff:ff:ff

MTU (最大传送单元)帧的大小范围(64-1518)

linux默认的MTU值为1500

[root@zdj ~]# ip link set eth0 name lan #修改接口的名字 临时生效

如果修改不了,先禁用接口ifdown eth0,再修改

[root@zdj ~]# ip route 查看路由

8.8.8.8 via 192.168.1.1 dev eth0

8.8.8.9 via 192.168.1.1 dev eth0

192.168.2.0/24 via 192.168.1.102 dev eth0

目标网段和子网掩码 下一跳地址 数据从那个接口出去

[root@zdj ~]# ip route add 192.168.5.0/24 via 192.168.1.1 dev eth0

[root@zdj ~]# ip route del 192.168.2.0/24 删除路由

-------------------------------------------------------------------------------------------

添加默认路由方法

ip route add default via 10.0.0.254 dev eth0

route add default gw 10.0.0.254 dev eth0

添加ip地址

ifconfig eth0 192.168.156/24

ip addr add 111.1.1.1/24 dev eth2

给eth2网卡添加ip,不会覆盖原来的ip(用ip add可以看到添加的ip,而用ifconfig不行),而ifconfig添加ip会覆盖原来的ip地址

刷新网络服务,使用ip命令添加的ip地址会消失

----------------------------------------------------------------------------------------

6.arp命令

Flags中的"C"代表此表项目是高速缓存中的内容,高速缓存中的内容过一段时间(一般20分钟)会清空,而"M"则表示静态表项,静态表项的内容不会过一段时间被清空。

[root@zdj ~]# arp 查看arp缓存

Address HWtype HWaddress Flags Mask Iface

192.168.1.1 ether 08:10:76:70:dd:7c C eth0

192.168.1.2 ether 70:5a:b6:20:a1:4e C eth0

192.168.1.21 ether 44:a8:42:f3:a9:b3 C eth0

[root@zdj ~]# arp -a

? (192.168.1.1) at 08:10:76:70:dd:7c [ether] on eth0

? (192.168.1.2) at 70:5a:b6:20:a1:4e [ether] on eth0

? (192.168.1.21) at 44:a8:42:f3:a9:b3 [ether] on eth0

[root@zdj ~]# arp -v

Address HWtype HWaddress Flags Mask Iface

192.168.1.1 ether 08:10:76:70:dd:7c C eth0

192.168.1.2 ether 70:5a:b6:20:a1:4e C eth0

192.168.1.21 ether 44:a8:42:f3:a9:b3 C eth0

Entries: 3 Skipped: 0 Found: 3

[root@zdj ~]# arp -s 10.0.0.111 00:30:67:f2:0f:55 绑定mac地址

[root@zdj ~]# arp -s 192.168.1.25 00:30:67:f2:0f:55

[root@zdj ~]# arp

192.168.1.25 ether 00:30:67:f2:0f:55 CM (多一个M标志) eth0

静态绑定的arp记录,优先级高,arp缓存表里的记录会自动更新的,有静态的,就不在学习其他的了

开机自动绑定,需要添加命令到/etc/rc.local文件