Linux 网络管理

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

1. Linux 网络应用要点

  • 下载文件 - 使用 curlwget

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

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

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

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

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

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

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

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

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

  • 查看域名信息 - 使用 host, nslookup

  • 设置路由 - 使用 nc/netcat

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

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

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

2. 命令常见用法

2.1. curl

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

参考:http://man.linuxde.net/curl

示例:

2.2. wget

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

参考:http://man.linuxde.net/wget

示例:

2.3. telnet

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

参考:http://man.linuxde.net/telnet

示例:

2.4. ip

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

参考:http://man.linuxde.net/ip

示例:

2.5. hostname

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

参考:http://man.linuxde.net/hostname

示例:

2.6. ifconfig

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

参考:http://man.linuxde.net/ifconfig

示例:

2.7. route

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

参考:http://man.linuxde.net/route

示例:

2.8. ssh

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

参考:http://man.linuxde.net/ssh

示例:

引申阅读:ssh 背后的故事

2.9. ssh-keygen

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

参考:http://man.linuxde.net/ssh-keygen

2.10. firewalld

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

参考:https://www.cnblogs.com/moxiaoan/p/5683743.html

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 项目的一部分。可以直接配置,也可以通过许多前端和图形界面配置。

参考:http://man.linuxde.net/iptables

示例:

2.12. host

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

参考:http://man.linuxde.net/host

示例:

2.13. nslookup

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

参考:http://man.linuxde.net/nslookup

示例:

2.14. nc/netcat

nc 命令是 netcat 命令的简称,都是用来设置路由器。

参考:http://man.linuxde.net/nc_netcat

示例:

2.15. ping

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

参考:http://man.linuxde.net/ping

示例:

2.16. traceroute

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

参考:http://man.linuxde.net/traceroute

示例:

2.17. netstat

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

参考:http://man.linuxde.net/netstat

示例:

Last updated

Was this helpful?