Linux 网络管理

关键词:curl, wget, telnet, ip, hostname, ifconfig, route, ssh, ssh-keygen, firewalld, iptables, host, nslookup, dignc/netcat, ping, traceroute,netstat

mtr

博客作者:联系请点击,搬运不易,希望请作者喝咖啡,可以点击联系博客作者

1. Linux 网络应用要点

  • 下载文件 - 使用 curlwget​

  • telnet 方式登录远程主机,对远程主机进行管理 - 使用 telnet​

  • 查看或操纵 Linux 主机的路由、网络设备、策略路由和隧道 - 使用 ip​

  • 查看和设置系统的主机名 - 使用 hostname​

  • 查看和配置 Linux 内核中网络接口的网络参数 - 使用 ifconfig​

  • 查看和设置 Linux 内核中的网络路由表 - 使用 route​

  • ssh 方式连接远程主机 - 使用 ssh

  • 为 ssh 生成、管理和转换认证密钥 - 使用 ssh-keygen​

  • 查看、设置防火墙(Centos7),使用 firewalld​

  • 查看、设置防火墙(Centos7 以前),使用 iptables​

  • 查看域名信息 - 使用 hostnslookupdig

  • 设置路由 - 使用 nc/netcat​

  • 测试主机之间网络是否连通 - 使用 ping​

  • 追踪数据在网络上的传输时的全部路径 - 使用 traceroutemtr​

  • 查看当前工作的端口信息 - 使用 netstat​

2. 命令常见用法

2.1. curl

curl 命令是一个利用 URL 规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称 curl 为下载工具。作为一款强力工具,curl 支持包括 HTTP、HTTPS、ftp 等众多协议,还支持 POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。做网页处理流程和数据检索自动化,curl 可以祝一臂之力。​

示例:

2.2. wget

wget 命令用来从指定的 URL 下载文件。​

示例:

2.3. telnet

telnet 命令用于登录远程主机,对远程主机进行管理。​

示例:

2.4. ip

ip 命令用来查看或操纵 Linux 主机的路由、网络设备、策略路由和隧道,是 Linux 下较新的功能强大的网络配置工具。​

示例:

2.5. hostname

hostname 命令用于查看和设置系统的主机名称。环境变量 HOSTNAME 也保存了当前的主机名。在使用 hostname 命令设置主机名后,系统并不会永久保存新的主机名,重新启动机器之后还是原来的主机名。如果需要永久修改主机名,需要同时修改 /etc/hosts/etc/sysconfig/network 的相关内容。​

示例:

2.6. ifconfig

ifconfig 命令被用于查看和配置 Linux 内核中网络接口的网络参数。用 ifconfig 命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。​

示例:

2.7. route

route 命令用来查看和设置 Linux 内核中的网络路由表,route 命令设置的路由主要是静态路由。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。​

示例:

2.8. ssh

ssh 命令是 openssh 套件中的客户端连接工具,可以给予 ssh 加密协议实现安全的远程登录服务器。​

示例:

引申阅读:ssh 背后的故事

2.9. ssh-keygen

ssh-keygen 命令用于为 ssh 生成、管理和转换认证密钥,它支持 RSA 和 DSA 两种认证密钥。​

2.10. firewalld

firewalld 命令是 Linux 上的防火墙软件(Centos7 默认防火墙)。​

2.10.1. firewalld 的基本使用

  • 启动 - systemctl start firewalld

  • 关闭 - systemctl stop firewalld

  • 查看状态 - systemctl status firewalld

  • 开机禁用 - systemctl disable firewalld

  • 开机启用 - systemctl enable firewalld

2.10.2. 使用 systemctl 管理 firewalld 服务

systemctl 是 CentOS7 的服务管理工具中主要的工具,它融合之前 service 和 chkconfig 的功能于一体。

  • 启动一个服务 - systemctl start firewalld.service

  • 关闭一个服务 - systemctl stop firewalld.service

  • 重启一个服务 - systemctl restart firewalld.service

  • 显示一个服务的状态 - systemctl status firewalld.service

  • 在开机时启用一个服务 - systemctl enable firewalld.service

  • 在开机时禁用一个服务 - systemctl disable firewalld.service

  • 查看服务是否开机启动 - systemctl is-enabled firewalld.service

  • 查看已启动的服务列表 - systemctl list-unit-files|grep enabled

  • 查看启动失败的服务列表 - systemctl --failed

2.10.3. 配置 firewalld-cmd

  • 查看版本 - firewall-cmd --version

  • 查看帮助 - firewall-cmd --help

  • 显示状态 - firewall-cmd --state

  • 查看所有打开的端口 - firewall-cmd --zone=public --list-ports

  • 更新防火墙规则 - firewall-cmd --reload

  • 查看区域信息: firewall-cmd --get-active-zones

  • 查看指定接口所属区域 - firewall-cmd --get-zone-of-interface=eth0

  • 拒绝所有包:firewall-cmd --panic-on

  • 取消拒绝状态 - firewall-cmd --panic-off

  • 查看是否拒绝 - firewall-cmd --query-panic

2.10.4. 在防火墙中开放一个端口

  • 添加(--permanent 永久生效,没有此参数重启后失效) - firewall-cmd --zone=public --add-port=80/tcp --permanent

  • 重新载入 - firewall-cmd --reload

  • 查看 - firewall-cmd --zone= public --query-port=80/tcp

  • 删除 - firewall-cmd --zone= public --remove-port=80/tcp --permanent

2.11. iptables

iptables 命令是 Linux 上常用的防火墙软件,是 netfilter 项目的一部分。可以直接配置,也可以通过许多前端和图形界面配置。​

示例:

2.12. host

host 命令是常用的分析域名查询工具,可以用来测试域名系统工作是否正常。​

示例:

2.13. nslookup

nslookup 命令是常用域名查询工具,就是查 DNS 信息用的命令。​

示例:

2.14. dig

dig 命令是常用的域名查询工具, 解析域名除了使用nslookup之外,还可以使用dig命令来解析域名,dig命令可以得到更多的域名信息。dig 命令主要用来从 DNS 域名服务器查询主机地址信息

示例:

2.15. nc

nc 命令 全称netcat,用于设置路由器。它能通过 TCP 和 UDP 在网络中读写数据。

示例:

TCP 端口扫描

UDP 端口扫描

2.16. ping

ping 命令用来测试主机之间网络的连通性。执行 ping 指令会使用 ICMP 传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。​

示例:

2.17. traceroute

traceroute 命令用于追踪数据包在网络上的传输时的全部路径,它默认发送的数据包大小是 40 字节。​

示例:

2.18. netstat

netstat 命令用来打印 Linux 中网络系统的状态信息,可让你得知整个 Linux 系统的网络情况。​

示例:

2.19. mtr

mtr在单个网络诊断工具中结合了traceroute和ping程序的功能,当mtr启动时,它调查运行在主机mtr和主机名之间的网络连接。

参考:​https://www.linuxcool.com/mtr

语法格式:

选项:

  • -n no-dns(或简写为-n) :不对IP地址做域名解析

  • -s :用来指定ping数据包的大小

  • -i :使用这个参数来设置ICMP返回之间的要求默认是1秒

  • -a :来设置发送数据包的IP地址 这个对一个主机由多个IP地址是有用的

  • -r :已报告模式显示

  • -c : 每秒发送多少包,默认为10个。英文是(–report-cycles COUNT)

  • -report :结果显示,并不动态显示

  • -4:使用IPv4

  • -6:使用IPv6

示例:

输出参数的解释:

  • 第一列: 显示的是IP地址和本机域名,这点和tracert很像。

  • 第二列 Loss%: 显示的每个对应IP的丢包率。

  • 第三列 snt: snt等于10,设置每秒发送数据包的数量,默认值是10 可以通过参数 -c来指定。

  • 第四列 Last: 显示的最近一次的返回时延。

  • 第五列 Avg: 平均值,这个应该是发送ping包的平均时延。

  • 第六列 Best: 最好或者说时延最短的时间。

  • 第七列 Wrst: 最坏或者说时延最长的时间。

  • 第八列 StDev: 标准偏差。

3. 网卡配置文件详解

3.1 网卡配置文件:

3.2 nmcli

nmcli命令是可以完成网卡上的所有配置,并可以写入配置文件中。

参考:https://www.linuxcool.com/nmcli

nmcli安装命令:

启动nmcli

语法格式:

选项 :

  • -t[erse] # terse output 简洁的输出

  • -p[retty] # pretty output 漂亮的输出

  • -m[ode] tabular|multiline # output mode 输出模式

  • -f[ields] |all|common # specify fields to output 指定要输出的字段

  • -e[scape] yes|no # escape columns separators in values 在值中转义列分隔符

  • -n[ocheck] # 不要检查nmcli和NetworkManager版本

  • -a[sk] # 要求缺少参数

  • -w[ait] # 设置超时等待整理操作

  • -v[ersion] # 显示程序版本

  • -h[elp] # 打印此帮助

OBJECT

  • g[eneral] NetworkManager的一般状态和操作

  • n[etworking] 整体组网控制 r[adio] NetworkManager切换开关

  • c[onnection] NetworkManager的连接

  • d[evice] 由NetworkManager管理的设备

  • a[gent] NetworkManager秘密代理或polkit代理

示例:

4.Host 配置文件详解

启动时,查询主机名到IP地址的匹配,这些匹配信息存放在/etc/hosts文件中,在没有域名服务器情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的IP地址。

示例:

输出参数的解释:

  • 第一列:主机IP信息

  • 第二列:主机名

  • 后面任何的列都是该主机的别名

5.Network 配置文件详解

该文件用来指定服务器上的网络配置信息,配置主机名和网关

示例:

输出参数的解释:

  • NETWORK=yes/no 网络是否被配置

  • FORWARD_IPV4=yes/no 是否开启IP转发功能

  • HOSTNAME= <hostname> <hostname>表示服务器的主机名

  • GAREWAY= <address> <address>表示网络网关的IP地址

  • GAREWAYDEV= <device> <device>表示网关的设备名,如:eth0

6.resolv.conf 配置文件详解

DNS客户端配置文件,设置DNS服务器的IP地址及DNS域名,还包含了主机的域名搜索顺序,每一行应包含一个关键字和一个或多个参数

示例:

输出参数的解释:

  • nameserver # 定义DNS服务器的IP地址

  • domain # 定义本地域名

  • search # 定义域名的搜索列表

  • sortlist # 对返回的域名进行排序

参数及意义如下:

  • nameserver 表明DNS服务器的IP地址.可以有很多行的nameserver,每一行带一个IP地址,查询时就按nameserver在本文件中的顺序进行,当第一个nameserver没有反应时才查询下面的nameserver

  • domain 声明主机的域名,很多程序用到它,如邮件系统;当为没有域名的主机进行DNS查询时,也要用到。如果没有域名,主机名将被使用,删除所有在第一个点( .)前面的内容。

  • search 它的多个参数指明域名查询顺序。当要查询没有域名的主机,主机将在由search声明的域中分别查找,domain和search不能共存;如果同时存在,后面出现的将会被使用。

  • sortlist 允许将得到域名结果进行特定的排序,它的参数为网络/掩码对,允许任意的排列顺序。

最后更新于

这有帮助吗?