补充 Linux 网络设置方法.

Signed-off-by: rick.chan <chen.yang@yuzhen-iot.com>
This commit is contained in:
rick.chan 2021-12-27 14:51:42 +08:00
parent e86bf04a41
commit 39e3f417f2
3 changed files with 124 additions and 26 deletions

View File

@ -0,0 +1,65 @@
# IPRoute2 说明
## Link 信息和设置
```bash
# 显示链路
ip link show
# 仅显示 up 的链路
ip link show up
# 添加链路
ip link add name <link name> type <bridge|bond|dummy|veth|vlan|vxlan>
# 启动/停止链路
ip link set <bridge name> <up/down>
# 绑定
ip link set <netif> master <bridge name>
# 解绑
ip link set <netif> nomaster
# 删除链路
ip link del name <bridge name> [type bridge]
```
## IP 地址信息和设置
```bash
# 显示地址(或ifconfig)
ip addr show
# 仅显示 up 设备的地址
ip addr show up
# 设定 IP 地址
ip addr add <ip addr> dev <netif>
# 删除 IP 地址
ip addr del <ip addr> dev <netif>
```
## 路由信息和设置
```bash
# 显示路由(route -n)
ip route show
# 添加路由
ip route add <ip addr> via <gateway>
ip route add <ip addr> dev <netif>
# 删除接口路由
ip route del default dev <netif>
# 查看本地静态路由
ip route show table local
# 查看直连路由
ip route show table main
```
## ARP
```bash
# 显示 arp 表(ping 192.168.95.50,如果主机在同一局域网内,直接加到 arp 表)
ip neigh show
# 删除 arp 条目,条目仍然存在状态为 stale下次通信需要确认
ip neigh delete 192.168.95.50 dev <netif>
```
## 其他
```bash
# 显示缺省规则
ip rule show
```

View File

@ -1,9 +1,19 @@
# Route 命令
```bash
# 添加
route add default gw 192.168.56.1 dev eth0
# 删除
# 查看当前路由配置
route -n
# 添加默认网关
route add default dev <netif>
route add default gw 192.168.56.1
route add default gw 192.168.56.1 dev <netif>
# 删除默认网关
route del default
route del default dev enp0s8
route del default dev <netif>
# 设置
route add -net <target ip> netmask <mask> [gw <gateway ip>] [metric <跃点信息>] dev <netif>
# 删除
route del -net <target ip> netmask <mask> [gw <gateway ip>] [metric <跃点信息>] dev <netif>
```

View File

@ -1,12 +1,23 @@
# Linux 网络配置
## 1. 路由表配置
## 1. IP 配置
```bash
# 查看网络设备和地址信息
ip addr show
# 设定 IP 地址
ip addr add <ip addr> dev <netif>
# 删除 IP 地址
ip addr del <ip addr> dev <netif>
```
## 2. 路由表配置
简单来说,路由器就是一个公交站台,公交站台上面有很多路公交。每条线路公交车又有很多站台(路由器),你就会选择最近的一条公交出行方案,当然啦,站牌上面的路线是会经常更新,更新的事,有当地部门更新。这就是路由。一台电脑主机有路由表,路由器也有路由表,一般来说,一台主机电脑如果只有一个网卡的话,应该会有最少两条路由信息,一条是公网路由,一条是局域网路由(它是不会经过路由器的路由表的,因为它走的是链路层,所以可以解析我们在局域网内传数据,速度是很快的)。
### 1.1. Linux 内核的路由种类
### 2.1. Linux 内核的路由种类
#### 1.1.1. 主机路由
#### 2.1.1. 主机路由
路由表中指向单个 IP 地址或主机名的路由记录,其 Flags 字段为 H。下面示例中对于 10.0.0.10 这个主机,通过网关 10.139.128.1 网关路由:
@ -18,7 +29,7 @@ Destination Gateway Genmask Flags Metric Ref Use Iface
...
```
#### 1.1.2. 网络路由
#### 2.1.2. 网络路由
主机可以到达的网络。下面示例中,对于 10.0.0.0/24 这个网络,通过网关 10.139.128.1 网关路由:
@ -29,7 +40,7 @@ Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 10.139.128.1 255.255.255.0 UG 0 0 0 eth0
```
#### 1.1.3. 默认路由
#### 2.1.3. 默认路由
当目标主机的 IP 地址或网络不在路由表中时,数据包就被发送到默认路由(默认网关)上。默认路由的 Destination 是 default 或 0.0.0.0。
@ -40,7 +51,7 @@ Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 0 0 0 eth0
```
### 1.2. Route 命令
### 2.2. Route 命令
route 命令可以显示或设置 Linux 内核中的路由表,主要是静态路由。
@ -66,11 +77,11 @@ route 命令可以显示或设置 Linux 内核中的路由表,主要是静态
* window指定通过路由表的TCP连接的TCP窗口大小
* dev路由记录所表示的网络接口
#### 1.2.1. 添加路由 add
#### 2.2.1. 添加路由 add
可以添加一条可用路由,或添加一条要屏蔽的路由。
##### 1.2.1.1. 添加主机路由
##### 2.2.1.1. 添加主机路由
添加主机路由时,需要指定网络 ID 和主机 ID此时需要设置 netmask 255.255.255.255
@ -83,7 +94,7 @@ Destination Gateway Genmask Flags Metric Ref Use Iface
...
```
##### 1.2.1.2. 添加网络路由
##### 2.2.1.2. 添加网络路由
添加网络路由时,只需指定网络 ID通过 netmask 设置掩码长度:
@ -96,7 +107,7 @@ Destination Gateway Genmask Flags Metric Ref Use Iface
...
```
##### 1.2.1.3. 添加添加同一个局域网的主机
##### 2.2.1.3. 添加添加同一个局域网的主机
不指定 gw 选项时,添加的路由记录不使用网关:
@ -109,7 +120,7 @@ Destination Gateway Genmask Flags Metric Ref Use Iface
...
```
#### 1.2.2. 屏蔽路由
#### 2.2.2. 屏蔽路由
```bash
[root@VM_139_74_centos ~]# route add -net 224.0.0.0 netmask 240.0.0.0 reject
@ -120,23 +131,23 @@ Destination Gateway Genmask Flags Metric Ref Use Iface
...
```
#### 1.2.3. 删除路由记录
#### 2.2.3. 删除路由记录
跟添加路由类似,可以删除一条可用路由,或删除一条屏蔽的路由。
##### 1.2.3.1. 删除可用路由
##### 2.2.3.1. 删除可用路由
```bash
route del -net 224.0.0.0 netmask 240.0.0.0
```
##### 1.2.3.2. 删除屏蔽的路由
##### 2.2.3.2. 删除屏蔽的路由
```bash
route del -net 224.0.0.0 netmask 240.0.0.0 reject
```
#### 1.2.4. 删除和添加设置默认网关
#### 2.2.4. 删除和添加设置默认网关
添加或删除默认网关时Linux 会自动检查网关的可用性:
@ -147,7 +158,7 @@ SIOCADDRT: Network is unreachable
SIOCDELRT: No such process
```
## 2. DNS 配置
## 3. DNS 配置
/etc/resolv.conf 文件中包含了域名解析服务器配置信息,格式如下:
@ -163,20 +174,32 @@ sudo systemctl restart networking.service
一般而言,/etc/resolv.conf 文件是个软链接,其配置比较复杂,推荐使用 resolvconf 工具进行配置。
## 桥接
## 4. 桥接
```bash
# 网桥设置
# Create a new bridge and change its state to up
ip link add name <bridge name> type bridge
ip link set <bridge name> up
# 如果想通过网桥上网,则需要为网桥设定 IP 地址并重新设置默认路由
ip addr add <ip addr> dev <bridge name>
ip route del default
ip route add default dev <bridge name>
# To add an interface (e.g. eth0) into the bridge, its state must be up
ip link set <eth interface> up
ip link set <eth interface> master <bridge name>
ip link set <netif> up
ip link set <netif> master <bridge name>
# Show the existing bridges and associated interfaces
bridge -d link
# OR
brctl show
# This is how to remove an interface from a bridge
ip link set <eth interface> nomaster
ip link delete <bridge name> type bridge
# 解除网桥绑定
ip link set <netif> nomaster
# 删除网桥对应的路由
ip route del default
# 删除网桥
ip link del name <bridge name> type bridge
```
## 5. 内部参考关键字
1. IPRoute2