Linux 网络配置

欢迎淘宝搜索飞灵科技,我司相关新产品陆续上线

常用的网络配置工具

  Linux 里常用的网络配置工具有net-tools,iproute2,ethtool包。 ubuntu下可以使用apt-get 来安装。

apt-get  install net-tools
apt-get  install iproute2
apt-get  install ethtool

iproute2比net-tools更强大,并且可以替代net-tools。但很多老用户习惯使用net-tools。

下表是net-tools和iproute2常用的命令对比。用户可以根据喜好选择一个。

net-tools command

iproute commands

arp -a

ip neigh

arp -v

ip -s neigh

arp -s 192.168.1.1 1:2:3:4:5:6

ip neigh add 192.168.1.1 lladdr 1:2:3:4:5:6 dev eth1

arp -i eth1 -d 192.168.1.1

ip neigh del 192.168.1.1 dev eth1

ifconfig -a

ip addr

ifconfig eth0 down

ip link set eth0 down

ifconfig eth0 up

ip link set eth0 up

ifconfig eth0 192.168.1.1

ip addr add 192.168.1.1/24 dev eth0

ifconfig eth0 netmask 255.255.255.0

ip addr add 192.168.1.1/24 dev eth0

ifconfig eth0 mtu 9000

ip link set eth0 mtu 9000

ifconfig eth0:0 192.168.1.2

ip addr add 192.168.1.2/24 dev eth0

netstat

ss

netstat -neopa

ss -neopa

netstat -g

ip maddr

route

ip route

route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0 i

ip route add 192.168.1.0/24 dev eth0

route add default gw 192.168.1.1

ip route add default via 192.168.1.1

常用的网络配置操作

    下面我们介绍一下linux里常用的网络操作。

ARP

    在network协议中,arp是用来将ip地址转换成mac地址的。在app发包时,网络会先去查本机的arp表里有没有这个转换,如果没有,则向网络广播arp 请求,拥有这个ip的host则发送响应,告知其mac地址。本机网络栈接到响应后,会记录这条转换表到本机的ARP表中。

  • 查看ARP表:
$ ip neigh

$ arp 或 arp -a   # 附加参数 -n 来显示IP 而不是域名
  • 增加一条新ARP条目
$arp -s 10.157.22.3 00:00:00:bb:cc:cc -i enp0s25

$ip neigh add 10.157.22.3 dev enp0s25 lladdr 00:00:00:bb:cc:cc
  • 删除一条ARP条目:
$arp -d -i enp0s25 10.157.22.3

$ip neigh del dev enp0s25 10.157.22.3

Route

    当我们的设备有多个网口时,linux网络协议栈就得需要知道要发送的IP包需要送到那个网口上。route 表就是用来做这个决断的。

$ route -n

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

0.0.0.0 10.193.20.254 0.0.0.0 UG 100 0 0 enp0s25

10.193.20.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s25

192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

    上面显示的是我主机的路由表。在我主机上有两个网口,eth0 和 enp0s25, 分别属于不同的局域网。根据上面的路由表,当我发送目的ip为192.168.1.8 的包时,则网络协议栈将目的ip 192.168.1.8 与 路由表中每一个条目的netmask 相与,然后与路由表条目中相应的Destination ip 比较是否相同。由最后一条路由信息可知,我们的目的ip为192.168.1.8 的包应该发送给eth0。同理我们发送10.193.20.9 的包包将通过enp0s25 接口发送。当所有的路由表都没有匹配到时,则发送给网关。上面的路由表中的第一条就是默认的网关。从中可以看到所有未匹配到的包将通过enp0s25 接口发送。

  • 查看路由表:
$ netstat -h

$ route 或 route -n

$ ip route
  • 增加一条route:
$ route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.193.20.254 dev eth0

$ ip route add 192.168.1.0/24 via 10.193.20.254 dev eth0

    如果局域网192.168.1.0/24 是网口eth0所在的子网,则不需要通过gw或via设置gateway参数。或指定gateway为0.0.0.0。

  • 增加缺省的网关:
$ route add default gw 192.168.1.254 dev eth0

$ ip route add/replace default via 192.168.1.254 dev eth0
  • 删除一条route:
$ route del -net 192.168.1.0 gw 192.168.178.1 netmask 0.0.0.0 gw 10.193.20.254 dev eth0

$ ip route del 192.168.1.0/24 via 10.193.20.254 dev eth0

网络配置示例

    比如主机host有两个网口(eth0 和 eth1),并接入如下网络,我们为它手动设置路由表。

    首先,Gateway1用来访问外网,所有非局域网10.193.20.0/24 ,192.168.1.0/24和 192.168.3.0/24的IP都应转发到这个Gateway, 由它来访Internet。所有我们增加一条默认网关的路由。

$ route add default gw 10.193.20.254 eth0

$ ip route add/replace default via 10.193.20.254 dev eth0

    然后我们增加局域网10.193.20.0/24 的路由,因为我们访问局域网10.193.20.0/24 网络内的IP是不需要经过Gateway的。所有设置路由表条目中的Gateway参数为0.0.0.0.

$ route add -net 10.193.20.0 netmask 255.255.255.0 gw 0.0.0.0 dev eth0

$ ip route add 10.193.20.0 /24 via 0.0.0.0 dev eth0

  或者不加gw/via参数。

$ route add -net 10.193.20.0 netmask 255.255.255.0 dev eth0

$ ip route add 10.193.20.0 /24 dev eth0

    同理我们增加局域网192.168.1.0/24的路由。

$ route add -net 192.168.1.0 netmask 255.255.255.0 dev eth1

$ ip route add 192.168.1.0/24 dev eth1

    因为局域网192.168.3.0/24 是通过Gateway2 才能访问到的, 所以我们访问局域网10.193.20.3/24 网络内的IP必须发送到Gateway2上,由它在转发。

$ route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.1.254 dev eth1

$ ip route add 192.168.3.0 /24 via 192.168.1.254 dev eth1

这样,共四条路由条目就设置好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值