Linux系统中与网络配置相关的工具
网络配置
大家平时经常碰到的网络是局域网(LAN),局域网又分为有线局域网和无线局域网(WLAN),其中以太网(Ethernet)是最常见的有线局域网,WIFI是最常见的无线局域网。除此之外,还有拨号网络PPPoE(Point-to-Point Protocol over Ethernet),即以太网上的点对点协议(PPP)。以太网技术虽然具有简单易用,成本低等特点,但是以太网广播网络的属性,使得其通信双方无法相互验证对方的身份,因而通信是不安全的;PPPoE结合了PPP协议通信双方身份验证的功能,在PPP组网结构的基础上,将PPP报文封装成PPPoE报文,从而实现以太网上的点对点通信,使得以太网中的客户端能够连接到远端的宽带接入设备上,实现了传统以太网不能提供的身份验证、加密以及压缩等功能。
本文描述如何在 Linux 系统中配置 ISO 模型的网络层(Network Layer)连接。
网络连接
首先确保电脑中装有网卡,排查网络是否连接的详细步骤如下:
- 检查网卡是列出在和启用,如果没有,则检查网卡驱动程序是否加载;
- 电脑连接到网络,有线网络(Ethernet)或者无线网络(wireless LAN);
- 检查网卡是否有一个 IP 地址;
- 正确配置路由表;
- 检查是否可以 ping 通本地 IP 地址(如默认网关);
- 检查是否可以 ping 通公网 IP 地址(如 9.9.9.9,该 IP 为一个 DNS 服务器);
- 检查是否可以 ping 通一个网络域名(如 archlinux.org).
首先介绍一些网络管理工具。
ping 命令
ping domain_name/ip_address # ping 后面的测试可以是网站域名或者 IP 地址# 示例:
ping archlinux.org# 输出结果
PING archlinux.org (95.217.163.246) 56(84) bytes of data.
64 bytes from archlinux.org (95.217.163.246): icmp_seq=1 ttl=128 time=279 ms
64 bytes from archlinux.org (95.217.163.246): icmp_seq=2 ttl=128 time=234 ms
64 bytes from archlinux.org (95.217.163.246): icmp_seq=3 ttl=128 time=233 ms
^C
--- archlinux.org ping statistics ---
4 packets transmitted, 3 received, 25% packet loss, time 3090ms
rtt min/avg/max/mdev = 232.841/248.541/278.688/21.323 ms
ping 命令包含在 iputils包中,在一些精简的系统中,要使用 ping 命令首先需要安装 iputils 包。使用 Ctrl+c 即可终止输出,从输出结果中可以看出测试结果,需要注意 ping 命令测试是运行的是网络层中 ICMP 协议, 当代理软件运行在应用层时,不能用该命令测试网络的连通性。
net-tools
net-tools 包含了一系列 Linux 网络的基础程序,其中最常见的有 arp ifconfig netstat route.
arp
ARP(Address Resolution Protocol,地址解析协议)是用来将IP地址解析为MAC地址的协议。 主机或三层网络设备上会维护一张ARP表,用于存储IP地址和MAC地址的映射关系,一般ARP表项包括动态ARP表项和静态ARP表项。
arp 命令用于操作内核 ARP 缓存,一般很少需要手动操作 ARP 表项。
arp -v # 显示 arp 缓冲区内容
arp -s IP MAC-ADDRESS # 添加静态 arp 映射
arp -d IP # 删除 arp 缓存条目
ifconfig (network interfaces configuring)
ifconfig 是配置网卡的主要命令,其功能是用于显示或设置网络设备参数信息,在Windows系统中与之类似的命令叫做 ipconfig,使用 ifconfig 命令配置网络设备的参数信息临时生效,当服务器重启,配置过的参数会自动失效,如果需要永久改变,则需要写入配置文件中。
# 语法格式:ifconfig [网卡设备] [参数]
ifconfig # 显示网卡信息
ifconfig -a # 显示的是系统所有的网络接口,不管是激活的还是未激活的
ifconfig network_interface up/down # 对指定的网卡设备进行启动或关闭操作
ifconfig network_interface 192.168.10.20 netmask 255.255.255.0 # 临时修改IP地址
注意一下网卡的命名规则,默认情况下,udev 分配网卡名字,以太网前缀 en,WIFI 前缀 wl.
netstat
netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
netstat -ltup
# -l 只显示监听端口
# -t 列出 tcp 端口
# -u 列出 udp 端口
# -p 输出中显示 PID 和进程名称
实际使用中可以用 grep 命令过滤输出。
route
route 命令是用于操作基于内核 IP 路由表。
route -n # 显示当前路由
oute add/del -net ip_addr netmask ip_addr dev net_interface # 添加网/删除网关
route add/del default gw ip_addr # 添加/删除设置默认网关
traceroute
traceroute 用于探测数据包从源到目的经过路由的 IP,使用该命令前需要安装 traceroute 包。traceroute 的原理是试图以最小的 TTL(存活时间)发出探测包来跟踪数据包到达目标主机所经过的网关,然后监听一个来自网关 ICMP 的应答。
# 示例:traceroute archlinux.org
iproute2
iproute2 的出现旨在从功能上取代 net-tools,net-tools 通过procfs(/proc)和ioctl系统调用去访问和改变内核网络配置,而iproute2则通过netlink套接字接口与内核通讯。抛开性能而言,iproute2的用户接口比net-tools显得更加直观。
iproute2 的核心命令是 ip 命令,它与 net-tools 中命令的对应关系如下:
net-tools command | iproute2 commands |
---|---|
arp | ip neighbor |
ifconfig | ip address, ip link |
netstat | ss |
route | ip route |
ip 命令用法示例:
ip link show # 显示出所有可用网络接口的列表
ip addr [show dev eth1] # 查看某个指定网络接口的IPv4地址
ip link set up/down eth1 # 激活或停用某个指定的网络接口
ip addr add 10.0.0.1/24 [broadcast 10.0.0.255] dev eth1 # 可以使用 iproute2 给同一个接口分配多个 IP 地址
ip addr del 10.0.0.1/24 dev eth1 # 移除 IP 地址
ip link set dev eth1 address 08:00:27:75:2a:67 # 更改网络接口的MAC地址
DHCP
通常情况下我们不需要手动配合静态 IP,只需要去动态获取 IP 即可。一个网络中的 DHCP 服务器给客户端提供了动态 IP 地址、子网掩码、默认网关,以及可选的 DNS 服务。
在客户端安装 DHCP 的客户端即可使用该服务。Linux 上常用的 DHCP 客户端是 dhcpcd,如下表所示:
Client | Package | Note | Systemd units |
---|---|---|---|
dhcpcd | dhcpcd | DHCP, DHCPv6, ZeroConf, static IP |
dhcpcd.service , dhcpcd@*interface*.service
|
很多网络管理软件都内置了 DHCP 服务。
网络管理软件
介绍几种网络管理软件,这些网络管理软件用于管理网络连接。使用这些软件很大程度上降低了网络连接的复杂性。常用的网络管理软件如下:
Network manager | GUI | CLI tools | PPP support | DHCP client | systemd units |
---|---|---|---|---|---|
netctl | 2 unofficial | netctl, wifi-menu | Yes | dhcpcd or dhclient |
netctl-ifplugd@*interface*.service , netctl-auto@*interface*.service
|
NetworkManager | Yes | nmcli, nmtui | Yes | internal or dhclient |
NetworkManager.service
|
systemd-networkd | No | networkctl | No | internal |
systemd-networkd.service , systemd-resolved.service
|
NetworkManager
NetworkManager 是一个为系统提供检测和配置功能以便自动连接到网络的程序。支持 PPPoE 拨号,集成了 DHCP 服务。nmcli 是配置网络的命令行工具,nmtui 提供一个图形化文本界面来与NetworkManager交互用于配置网络。
本机地址
Hostname
在网络中,hostname 是一个分配给主机的一个域名,通常是一个主机的本地名字加上可选的域名,用点(.)分隔,例如 en.wikipedia.org(主机名:en,域名:wikipedia.org),这种主机名通过本机 hosts 文件或者 DNS 服务器解析为 IP 地址。一个主机可以拥有多个主机名。
可以通过修改 /etc/hostname 文件配置主机名,该文件包含单独的一行 myhostname,或者通过命令更改:
hostnamectl set-hostname myhostname # 等同于修改 /etc/hostname
hostname myhostname # 临时更改,重启失效
要使你的设备能在局域网中被识别,有以下两种方法:
- 在局域网上编辑每一台主机的 /etc/hosts 文件,加上你的主机;
- 配置一个 DNS 服务器,解析域名。
Hosts
Hosts 文件位于 /etc/hosts,以表的形式存储了主机名和 IP 地址的映射关系。Hosts文件是大多数系统都存在的一个小型主机表。Hosts文件中包含了本地网络重要的主机名和地址信息,查询Hosts文件得到的结果比通过查询 DNS 得到的结果优先级更高。
Localhost
localhost 是一个在计算机网络中用于表示“此计算机”的主机名,它被用于通过本地回环网络接口,来访问本机运行的服务,并且将会绕过任何物理网络接口硬件。运用本地环回机制,便可在主机上运行网络服务,期间不须安装实体网络接口卡,也无须将该服务开放予主机所在网络。例如,在设置好本地安装的网站后,可通过http://localhost这一网址,来访问本地网站。localhost这个主机名称一般会解析为 IPv4 本地回环地址 127.0.0.1 和 IPv6 本地回环地址 [::1].
为了解析本机主机名,可在 /etc/hosts 中添加以下信息:
127.0.0.1 localhost
::1 localhost
127.0.1.1 myhostname
如果本机有一个永久的 IP 地址,则可配置:
127.0.0.1 localhost
::1 localhost
203.0.113.45 host1.fqdomain.example host1
一般情况下本机有三块网卡:
- lo:回环网卡(Loopback Adapter),是一块虚拟网卡;
- eth0:有线以太网卡;
- wl0:WIFI无线网卡。
localhost、127.0.0.1、0.0.0.0和本机IP的区别:
- localhost 是一个指向本机的域名,通过http://localhost这一网址,来访问本地网站,localhost 指向的 IP 地址是可以配置的。不联网,不使用网卡,不受防火墙和网卡限制,本机访问。
- 127.0.0.1 是一个回环地址(Loop back address),通常分配给 loopback 接口。凡是以 127 开头的 IP 地址,都是回环地址,都指向 lo 网卡。发送给 127 开头的 IP 地址的数据包会被发送的主机自己接收,根本传不出去,外部设备也无法通过回环地址访问到本机。不联网,网卡传输,受防火墙和网卡限制,本机访问。
- 0.0.0.0是不能被 ping 通的,0.0.0.0称为“unspecified”,即未指定(即无效的,无意义的)地址。DHCP客户端还未获取到ip的时候规定使用0.0.0.0作“源地址”;在服务器中,0.0.0.0并不是一个真实的的IP地址,它表示本机中所有的IPV4地址。监听0.0.0.0的端口,就是监听本机中所有IP的端口。
- 本机IP通常仅指在同一个局域网内,能同时被外部设备访问和本机访问的那些IP地址(可能不止一个)。像127.0.0.1这种一般是不被当作本机IP的。本机IP是与具体的网络接口绑定的,比如以太网卡、无线网卡或者PPP/PPPoE拨号网络的虚拟网卡,想要正常工作都要绑定一个地址,否则其他设备就不知道如何访问它。联网,网卡传输,受防火墙和网卡限制,本机或外部访问。
相关阅读
Linux系统连接以太网与WIFI的方法
参考文献
[1] Network Configuration
[2] 什么是PPPoE?PPPoE解决了哪些问题?
[3] localhost、127.0.0.1和0.0.0.0和本机IP的区别
Linux系统中与网络配置相关的工具相关推荐
- Linux系统下网卡网络配置基础
Ifconfig命令使LINUX核心知道软件回送和网卡这样一些网络接口,这样Linux就可以使用它们.除了上面介绍的这些用法之外,ifconfig命令用来监控和改变网络接口的状态,并且还可以带上很多命 ...
- 11单元-Linux系统下的网络配置
Linux系统下的网络配置 1.IP ADDRESS -- internet protocol ADDRESS (网络进程地址) ip地址:网络位 + 主机位 ipv4 -- internet pro ...
- 在RedHat Linux系统中安装和配置snmp服务
在RedHat Linux系统中安装和配置snmp服务 检查系统是否安装snmp服务 # rpm -qa|grep snmp net-snmp-5.3.2.2-17.el5 net-snmp-perl ...
- linux两块网卡不通,由安装两块网卡的linux系统中引起网络不通想到的
由安装两块网卡的linux系统中引起网络不通想到的 由安装两块网卡的linux系统中引起网络不通想到的 一天,小王突然急匆匆的来找我,他说:"我在机子上刚装的redhat怎么老也ping不通 ...
- Linux系统中FTP的配置(图文详解-全)
Linux系统中FTP的配置 二. 把安全级别调低 #vi /etc/selinux/config 注意:在RHEL4三.FTP软件包 #mount /d ...
- linux下ace安装教程,Linux 系统中如何安装配置ACE
Linux 系统中如何安装配置ACE http://www.gnu.org可以下载ACE安装包,这里以ACE-5.6.tar.gz安装包作为示例 1.设置$ACE_ROOT环境变量 # vim /et ...
- Linux系统中计划任务及其相关命令操作(at和crontab)
Linux系统中计划任务分为两种类型,一种是一次性的计划任务--at,一种是长期性计划任务--crontab,接下来分别讲述它们的作用及其使用场景. 目录 at:一次性计划任务 crontab:长期性 ...
- Linux系统中DHCP的配置
DHCP为动态主机配置协议,负责IP地址的动态分配(当一个主机的IP为自动,则不需要自己写IP,他会在DHCP服务器的范围内自动获取) 在真机或虚拟机下配置DHCP服务时,需要先下载dhcp软件,使用 ...
- 在虚拟机linux系统中安装与配置jdk
1.准备工作: linux版本的jdk安装包.连接工具传输工具(Xshell.xftp). 2.用Xshell连接好自己的虚拟机 3.用ls命令查看自己想安装的目录 4.上传jdk的安装包到/opt目 ...
最新文章
- python coding_python开头的coding设置方法
- 俄罗斯计算机科学留学,中南大学计算机科学与技术、俄罗斯硕士留学有没有寒暑假班?...
- 新趋势:数据驱动的销售
- 轻轻松松为你的手机截图
- python中count的作用_python中函数COUNT()的功能是什么
- 元组、字典、集合的常用方法
- Centos7下实现多虚拟机互信
- java 读取控制台_Java从控制台读入数据的几种方法总结
- 深度学习 《RNN模型》
- Android-LayoutInflater
- 打印机显示脱机使用打印机不能打印
- R语言︱list用法、批量读取、写出数据时的用法
- 维护建议--数据库备份
- 高级商务办公软件应用【6】
- svn服务器端上传已有项目,「svn上传新项目」怎么添加新项目到SVN服务器...
- C语言面试题大汇总之华为面试题
- 对接谷歌翻译接口的WordPressSEO插件
- Win10 快捷操作
- 互联网时代产品研发的思考
- 企业以太坊联盟:区块链挑战者