route命令
路由表管理命令,路由表主要构成:
- Destination: 目标网络ID,表示可以到达的目标网络ID,0.0.0.0/0 表示所有未知网络,又称为默认路由,优先级最低
- Genmask:目标网络对应的netmask
- Iface: 到达对应网络,应该从当前主机哪个网卡发送出来
- Gateway: 到达非直连的网络,将数据发送到临近(下一个)路由器的临近本主机的接口的IP地址,如果是直连网络,gateway是0.0.0.0
- Metric: 开销cost,值越小,路由记录的优先级最高
1.查看路由表
[0 root@vps /root] #route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.16.140.253 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
172.16.140.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
2.管理路由
#目标:192.168.1.3 网关:172.16.0.1
route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
#目标:192.168.0.0 网关:172.16.0.1
route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
route add -net 192.168.8.0/24 dev eth1 metric 200
#默认路由,网关:172.16.0.1
route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
route add -net 0.0.0.0/0 gw 172.16.0.1
route add default gw 172.16.0.1
#目标:192.168.1.3 网关:172.16.0.1
route del -host 192.168.1.3
#目标:192.168.0.0 网关:172.16.0.1
route del -net 192.168.0.0 netmask 255.255.255.0
#添加路由:
ip route add TARGET via GW dev IFACE src SOURCE_IP
TARGET:
主机路由:IP
网络路由:NETWORK/MASK
#添加网关:
ip route add default via GW dev IFACE
#删除路由:
ip route del TARGET
#显示路由:
ip route show|list
#清空路由表:
ip route flush [dev IFACE] [via PREFIX]
ip route add 192.168.0.0/24 via 172.16.0.1
ip route add 192.168.1.100 via 172.16.0.1
ip route add default via 172.16.0.1
ip route flush dev eth0
# ip route get 8.8.8.8 #查看到达8.8.8.8所使用的路由
8.8.8.8 via 10.130.11.1 dev eth0 src 10.130.11.99
cache
# 开启路由转发功能
# echo 1 > /proc/sys/net/ipv4/ip_forward
基本网络配置
将Linux主机接入到网络,需要配置网络相关设置,一般包括如下内容:
- 主机名
- IP/netmask
- 路由:默认网关
- DNS服务器
- 主DNS服务器
- 次DNS服务器
- 第三个DNS服务器
[root@vps ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
DEVICE=eth0
HWADDR=80:61:5f:05:c7:33
IPADDR=172.16.64.1
NETMASK=255.255.252.0
ONBOOT=yes
BOOTPROTO=none
[root@vps ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
NAME=eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
# IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6_FAILURE_FATAL=no
# DHCPV6C=yes
########
/etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet # 网络类型:常见有的Ethernet, Bridge
BOOTPROTO=none # 引导协议:自动获取、static静态、none不指定,激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp
DEFROUTE=yes # 启动默认路由
IPV4_FAILURE_FATAL=no # 不启用IPV4错误检测功能
IPV6INIT=yes # 启用IPV6协议
IPV6_AUTOCONF=yes # 自动配置IPV6地址
IPV6_DEFROUTE=yes # 启用IPV6默认路由
IPV6_FAILURE_FATAL=no # 不启用IPV6错误检测功能
NAME=eth0 # 网卡设备的别名
#HWADDR # 对应的设备的MAC地址
#UUID=90528772-9967-46da-b401-f82b64b4acbc # 网卡设备的UUID唯一标识号
DEVICE=eth0 # 网卡的设备名称
ONBOOT=yes # 开机自动激活网卡
DNS1=8.8.8.8 # DNS域名解析服务器的IP地址
DNS2=114.114.114.114 # 第二个DNS域名解析服务器的IP地址
IPADDR=192.168.1.1 # 网卡的IP地址
PREFIX=24 # 网络ID的位数, 如:24
GATEWAY=192.168.1.1 # 默认网关IP地址
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPADDR=192.168.2.2 #你想要设置的固定IP,理论上192.168.2.2-255之间都可以,请自行验证;
NETMASK=255.255.255.0 #子网掩码,不需要修改
#IP address
TYPE="Ethernet" #网络类型,以太网
DEVICE="ens33" #网卡设备名
BOOTPROTO=none #是否自动获取IP(none static dhcp)
HWADDR=00:0A:0B:0C:0D:0E #MAC地址
ONBOOT=yes #是否随网络服务启动,网卡生效
IPADDR=172.16.0.10
PREFIX=24
#NETMASK=255.255.255.0
GATEWAY=172.16.0.254
DNS1=223.5.5.5
DNS2=114.114.114.114
IPV6INIT=no #IPV6没有启用
USERCTL=no #不允许非root用户控制此网卡
添加网卡地址
ifconfig eth0 10.0.0.68 netmask 255.255.0.0 #添加网卡地址
ip address add 10.0.0.18/24 dev eth0 label eth0:1
ip address del 10.0.0.8/24 dev eth0
ifconfig eth0:1 172.16.0.8/24 #一个网卡设置多个IP地址
ifconfig eth0 0.0.0.0 #清除eth0上面的IP地址
ip address del 10.0.0.18/24 dev eth0 label eth0:1
ifconfig eth0 down #禁用网卡
ifconfig eth0:1 down
ifconfig eth0 up
ifconfig -s eth0
#禁用网卡
ip link set eth1 down
#网卡改名
ip link set eth1 name myeth
#启用网卡
ip link set myeth up
#网卡别名
ip addr add 172.16.100.100/16 dev eth0 label eth0:0
ip addr del 172.16.100.100/16 dev eth0 label eth0:0
#清除网络地址
ip addr flush dev eth0
修改网卡UUID
/etc/sysconfig/network/network-scripts/ifctf-eth0 # 删除MAC地址
rm -rf /etc/udev/rules.d/70-persistent-net.rules # 删除网卡和MAC地址绑定文件
reboot
修改linux 默认路由
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
# cat /etc/sysconfig/network-scripts/route-eth0
0.0.0.0/0 via 172.16.10.253 dev eth0
#10.0.0.0/8 via 10.31.155.247 dev eth0
#100.64.0.0/10 via 10.31.155.247 dev eth0
#172.16.0.0/12 via 10.31.155.247 dev eth0