LINUX路由(网关)相关


要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的IP地址设置为 Linux机器的默认路由。

查看系统路由信息

route [-n/-ee]
参数:
-n :不要使用通讯协定或主机名称,直接使用 IP 或 port number;
-ee :使用更详细的资讯来显示
-c 显示更多信息
-n 不解析名字
-v 显示详细的处理信息
-F 显示发送信息
-C 显示路由缓存
显示内容说明:

Destination 目标网段或者主机(本机的数据要发送的目的地:子网或主机),与Genmask组成一个网段
Gateway 网关地址 (如果是默认网关,网关的地址必须和自己的主机上的其中一块网卡在同一子网),* 表示目标是本主机所属的网络,不需要路由
Genmask 网络掩码(如果目标网络的的子网掩码为255.255.255.255,说明目标是一台主机;如果子网掩码为’0.0.0.0’ 说明该路由是默认路由)
Flags 标记; U: 路由是活动的;H: 目标是一个主机 (IP) 而非网段;G: 路由指向网关(需要透过外部的主机 (gateway) 来转递封包(该行有gw));R: 恢复动态路由产生的表项;D: 由路由的后台程序动态地安装(已经由服务或转 port 功能设定为动态路由 );M: 由路由的后台程序修改;!: 拒绝路由(用来抵挡不安全的网域!)
Metric 路由距离,到达指定网络所需的中转数
Ref 恒为0,路由项引用次数
Use 此路由项被路由软件查找的次数
Iface 该路由表项对应的输出接口,即eth0,eth1等网络接口名
配置静态路由

route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]

参数说明
add 添加一条路由规则
del 删除一条路由规则
-net 目的地址是一个网络
-host 目的地址是一个主机
target 目的网络或主机
netmask 目的地址的网络掩码
gw 路由数据包通过的网关
dev 为路由指定的网络接口
用法示例

在/etc/rc.local里面添加:直接将在命令行操作的命令复制到该文件中,保存退出即可。

#添加默认网关
route add default gw 10.0.0.1
#删除默认网关

route del default gw 10.0.0.1
#添加到主机的路由

route add -host 192.168.10.2 dev eth3
#删除到主机的路由

route del -host 192.168.10.2 dev eth3
#添加到网络的路由

route add -net 192.168.55.0 netmask 255.255.255.0 eth3
#删除到网络的路由

route del -net 192.168.55.0 netmask 255.255.255.0 eth3
#设定指定的网段不可到达

route add -net 10.0.0.0 netmask 255.0.0.0 reject
route del -net 10.0.0.0 netmask 255.0.0.0 reject
#设置到指定网络为不可达,避免在连接到这个网络的地址时程序过长时间的等待,直接就知道该网络不可达。若要向带有 255.255.0.0 子网掩码和 10.27.0.1 下一跃点地址的 10.41.0.0 目标中添加一个永久路由

route -p add 10.41.0.0 mask 255.255.0.0 10.27.0.1 
#若要向带有 255.255.0.0 子网掩码、10.27.0.1 下一跃点地址且其成本值标为 7 的 10.41.0.0 目标中添加一个路由

route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 metric 7
#若要删除以 10. 起始的 IP 路由表中的所有路由

route delete 10.*
#若要将带有 10.100.0.0 目标和 255.255.0.0 子网掩码的下一跃点地址从 10.100.0.1 修改为 10.100.0.254

route change 10.100.0.0 mask 255.255.0.0 10.100.0.254

附加网关设置,以centos7为例

#查看设置
route -n

#编辑默认网关
sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33

#以下为DHCP模式
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=575b45ac-0e3e-4469-b39f-902e19f30e97
DEVICE=ens33
ONBOOT=yes

#以下为手动模式
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=575b45ac-0e3e-4469-b39f-902e19f30e97
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.159.131
PREFIX=24
GATEWAY=192.168.159.2

#重启网络
service network restart
#失败是manage没起


方法一:通过命令行添加:

# route add –net IP netmask MASK gw IP -p 或 route add –net IP/24 gw IP -p

如

 route add –net 192.168.100.0 netmask 255.255.255.0 gw 192.168.100.1 -p  

或

 route add –net 192.168.100.0/24 gw 192.168.100.1 -p 

方法二:修改配置文件添加

  第一种:在linux启动执行脚本文件 rc.local 中添加命令
  vi /etc/rc.d/rc.local
  并在配置文件中写入

   route add –net 192.168.100.0 netmask 255.255.255.0 gw 192.168.100.1 -p  

  或 

   route add –net 192.168.100.0/24 gw 192.168.100.1 -p 

  第二种:修改静态路由配置文件

  vi /etc/sysconfig/static-routes

  在配置文件中写入

   any net 192.168.100.0 netmask 255.255.255.0 gw 192.168.100.1

 #rc.local无效添加如下
 echo /etc/rc.local >>/etc/profile &&  source /etc/profile





永久路由
vi /etc/sysconfig/network-scripts/route-eth0
vi /etc/sysconfig/network-scripts/route-eth0
明细路由;XXXX/X via xxxx dev eth0 #添加网络路由

centos ip 网关 dns设置

#编辑以下文件,编辑后按:wq保存
vi /etc/sysconfig/network-scrip

BOOTPROTO=static
DEVICE=eth0
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
IPADDR=192.168.0.129
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=114.114.114.114

IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6_DEFAULTGW=240e:982:9400:7::a:1
IPV6ADDR=240e:982:9400:7::a:118
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=yes

#centos8
#1.重启网卡之前一定要重新载入一下配置文件,不然不能立即生效
nmcli c reload
#2.重启网卡(下面的三条命令都可以):
nmcli c up eth0
nmcli d reapply eth0
nmcli d connect eth0
#重启centos8的网卡,先载入新的配置文件,然后在执行重启网卡命令即可
#centos7
service network restart

#如遇到仍不能访问,尝试修改
vi /etc/resolv.conf 
#如不可编辑
#1.查看是否具有属性
lsattr /etc/resolv.conf 
----i--------e- /etc/resolv.con

#默认文件是不具备属性的,如果有属性i,则无法修改、删除、修改通过如下命令进行修改
chattr -i /etc/resolv.conf
#重启网卡服务
/etc/init.d/network restart

ubuntu18以后的网络设置

#纯路由操作
route del -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.0.1
route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.0.213


#配置文件目录
cd /etc/netplan
vi 01-network-manager-all.yaml
#网卡eth0使用dhcp方式配置ip网络,配置如下。yaml配置是用空格作为缩进对齐,不能使用tab键。
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: yes
      dhcp6: no

#网卡eth0使用静态ip方式,用关键字addresses指定ip地址和子网掩码(支持ipv4和ivp6),gateway4指定网关ip,nameservers 指定DNS。
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses:
        - 10.10.10.2/24
      gateway4: 10.10.10.1
      nameservers:
          search: [mydomain, otherdomain]
          addresses: [10.10.10.1, 1.1.1.1]

#保存后
netplan apply




#保存后
network:
    version: 2
    ethernets:
        eth0:
            dhcp4: no
            addresses:
            - 192.168.0.132/16
            gateway4: 192.168.0.102
            match:
                macaddress: fa:16:3e:9f:75:c2
            mtu: 1500
            nameservers:
                addresses:
                - 114.114.114.114
                - 8.8.8.8
            set-name: eth0
~                          

文章作者: umikingso
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 umikingso !
  目录