本文档涵盖 TCP/IP 网络、网络管理和系统配置基础知识。Linux 可以支持多个网络设备。设备名称是数字编号,从零开始向上计数。例如,具有两个网卡的计算机将有两个分别标记为 eth0 和 eth1 的设备。17.1 本地 DNS 解析
文件:/etc/hosts 包含要在本地解析的主机列表(不通过 DNS)。127.0.0.1 your-node-name.your-domain.com localhost.localdomain localhostXXX.XXX.XXX.XXX node-name
hosts 文件的格式由 RFC 952 规范定义。17.2 配置域名解析的 DNS 服务器
文件:/etc/resolv.conf 包含域名解析的 DNS 服务器列表。nameserver 8.8.8.8 # 主域名服务器的 IP 地址nameserver 8.8.4.4 # 次域名服务器的 IP 地址
如果使用内部 DNS 服务器,你可以使用 dig 命令验证此服务器是否正确解析 DNS 名称:$ dig google.com @your.dns.server.com +short
17.3 查看和操作路由
$ route # 显示路由列表并解析主机名$ route -n # 显示路由列表而不解析主机名,以获得更快的结果
| 选项 | 描述 |
|---|
add 或 del | 添加或删除路由 |
-host x.x.x.x | 添加路由到由 IP 地址标识的单个主机 |
-net x.x.x.x | 添加路由到由网络地址标识的网络 |
gw x.x.x.x | 指定网络网关 |
netmask x.x.x.x | 指定网络子网掩码 |
default | 添加默认路由 |
$ route add -host x.x.x.x eth1
$ route add -net2.2.2.0 netmask 255.255.255.0 eth0
或者,你也可以使用 CIDR 格式添加路由到网络:$ route add -net2.2.2.0/24 eth0
$ route add default gw 2.2.2.1 eth0
$ route del -net2.2.2.0 netmask 255.255.255.0 eth0
列出路由表
| 选项 | 描述 |
|---|
add、del、change、append 或 replace | 更改路由 |
show 或 flush | 显示路由表内容或删除它 |
restore | 从标准输入恢复路由表信息 |
get | 获取到目的地的单一路由,并准确打印内核看到的内容 |
$ ip route add default via 1.2.3.254
添加默认路由(针对所有地址),通过本地网关 192.168.1.1,该网关可在设备 eth0 上到达:$ ip route add default via 192.168.1.1 dev eth0
17.4 为网络上的其他系统配置主机名
你可以配置你的 Linux(或 macOS)系统,以便在网络中将标识符 绑定到某个其他系统的 IP 地址。你可以通过以下方式配置:系统范围。你应该修改 /etc/hosts 文件。你只需向该文件添加一行,包含:单用户。你应该修改 ~/.hosts 文件 —— 你需要创建它。这不像系统范围那样简单。例如,你可以使用 cat Unix 工具添加这一行。假设你想 ping 本地网络中的一台 PC,其 IP 地址为 192.168.1.44,你只想通过 remote_pc 来引用该 IP 地址。然后你必须在 shell 上写入:$ sudo cat 192.168.1.44 remote_pc >> /etc/hosts
17.5 接口详情
eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xxinet addr:x.x.x.x Bcast:x.x.x.x Mask:x.x.x.xinet6 addr: xxxx::xxx:xxxx:xxxx:xxxx/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:4426618 errors:0 dropped:1124 overruns:0 frame:0TX packets:189171 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:382611580 (382.6 MB) TX bytes:36923665 (36.9 MB)Interrupt:16 Memory:fb5e0000-fb600000
Settings for eth0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 1 Transceiver: internal Auto-negotiation: on MDI-X: on (auto) Supports Wake-on: pumbg Wake-on: g Current message level: 0x00000007 (7) drv probe link Link detected: yes
语法:$ ip { link | ... | route | macsec }(有关完整对象列表,请参见 man ip)$ ip link set dev eth0 name wan
$ ip link set dev eth0 up
$ ip addr add 1.2.3.4/24 brd + dev eth0
17.6 为接口添加 IP 地址
接口的 IP 地址可以通过 DHCP 或静态分配获得。DHCP如果你连接到有 DHCP 服务器运行的网络,dhclient 命令可以为你的接口获取 IP 地址:或者,你可以更改 /etc/network/interfaces 文件,使接口在启动时启动并获取 DHCP IP:auto eth0iface eth0 inet dhcp
静态配置(永久更改)使用 /etc/network/interfaces 文件如果你想静态配置接口设置(永久更改),你可以在 /etc/network/interfaces 中进行:auto eth0 # 启动时启用接口iface eth0 inet static address 10.10.70.10 netmask 255.255.0.0 gateway 10.10.1.1 dns-nameservers 10.10.1.20 dns-nameservers 10.10.1.21
静态配置(临时更改)使用 ifconfig 实用程序可以使用 ifconfig 实用程序将静态 IP 地址添加到接口:$ ifconfig <interface> <ip-address>/<mask> up
$ ifconfig eth0 10.10.50.100/16 up