Linux 常用命令汇总(五):网络操作命令

简介: ssh(Secure Shell)是一种加密的网络传输协议,用于在不安全的网络上安全地进行远程登录和其他安全的网络服务scp(secure copy)是一个基于SSH协议的网络文件传输工具,用于在本地和远程计算机之间安全地复制文件wget是一个命令行工具,用于从网络上下载文件ping是一个用于测试网络连接可用性的命令行工具route命令在 Unix 和类 Unix 系统(如 Linux)中用于显示和操作 IP 路由表ifconfig。

一、网络操作命令
1.1 telnet
1.1.1 介绍
telnet 是一个用于远程登录到另一台计算机或设备的网络协议和命令行工具

1.1.2 使用方法
telnet [选项] [主机名或IP地址] [端口号]
1.1.3 参数详解
-l:指定登录名。
-a:尝试自动登录。
-e:设置转义字符。
-6:使用 IPv6。
-c:在命令执行后关闭连接。
-8:使用 8 位字符集。
1.1.4 常见使用案例
1.1.4.1 连接到远程 telnet 服务器
telnet example.com
这将尝试连接到名为 example.com 的远程服务器上的默认 telnet 端口(通常是 23)

1.1.4.2 指定端口号连接
telnet example.com 8080
这将尝试连接到 example.com 上的 8080 端口

1.1.4.3 使用特定登录名连接
telnet -l username example.com
这将尝试使用 username 作为登录名连接到 example.com

1.1.5 注意事项
telnet 通信是不加密的,因此它不适合传输敏感信息,因为数据可以在网络上被截获。对于安全通信,建议使用 SSH(安全外壳协议)。
telnet 主要用于文本模式的远程登录和会话,不支持图形用户界面(GUI)应用程序的远程访问。
在许多现代操作系统中,由于安全原因,telnet 客户端和服务器可能默认不被安装。取而代之的是更安全的远程访问方法,如 SSH。
1.2 ssh
1.2.1 介绍
ssh(Secure Shell)是一种加密的网络传输协议,用于在不安全的网络上安全地进行远程登录和其他安全的网络服务

1.2.2 使用方法
ssh [选项] [用户名@]主机名或IP地址
1.2.3 参数详解
-p:指定端口号。
-q:安静模式,不输出警告和诊断信息。
-X:启用 X11 转发。
-Y:启用信任的 X11 转发。
-C:压缩数据。
-i:指定私钥文件。
-l:指定登录名。
-v:详细模式,输出详细的调试信息。
1.2.4 常见使用案例
1.2.4.1 连接到远程服务器
ssh username@example.com
这将尝试使用 username 作为登录名连接到 example.com 服务器

1.2.4.2 指定端口号连接
ssh -p 2222 username@example.com
这将尝试连接到 example.com 上的 2222 端口

1.2.4.3 启用 X11 转发
ssh -X username@example.com
这将允许你在远程服务器上运行的图形应用程序的图形界面显示在你的本地机器上

1.2.5 注意事项
使用 ssh 之前,你需要在本地机器上安装 ssh 客户端,同时在远程服务器上安装 sshd 服务器。
默认情况下,ssh 使用 22 端口。如果你的服务器使用了不同的端口,需要使用 -p 选项指定。
ssh 依赖于公钥加密技术,你需要有一个公钥和私钥对。公钥通常存储在远程服务器上,而私钥保存在本地。
为了增强安全性,建议使用密钥对进行身份验证,而不是使用密码。
ssh 还支持很多高级功能,如代理命令、隧道转发等。
1.3 scp
1.3.1 介绍
scp(secure copy)是一个基于SSH协议的网络文件传输工具,用于在本地和远程计算机之间安全地复制文件

1.3.2 使用方法
scp [选项] [源文件或目录] [目标用户@]目标主机:目标路径
或者

scp [选项] [目标用户@]目标主机:源文件或目录 [目标路径]
1.3.3 参数详解
-r:递归复制整个目录。
-q:安静模式,不输出传输文件的信息。
-C:启用压缩功能。
-P:指定远程主机的端口号。
-i:指定私钥文件。
-l:限制带宽使用。
1.3.4 常见使用案例
1.3.4.1 从本地复制文件到远程服务器
scp myfile.txt username@example.com:/path/to/destination/
这将把本地的 myfile.txt 文件复制到远程服务器 example.com 上的 /path/to/destination/ 目录中

1.3.4.2 从远程服务器复制文件到本地
scp username@example.com:/path/on/remote/myfile.txt /local/path/
这将从远程服务器 example.com 上的 /path/on/remote/ 目录中复制 myfile.txt 文件到本地的 /local/path/ 目录中

1.3.4.3 递归复制目录
scp -r /local/dir/ username@example.com:/path/on/remote/
这将递归复制本地的 /local/dir/ 目录及其所有内容到远程服务器 example.com 上的 /path/on/remote/ 目录中

1.3.5 注意事项
在使用 scp 之前,确保本地和远程计算机上都已经安装了SSH客户端和服务端。
scp 需要目标计算机的SSH服务正在运行,并且你拥有适当的权限进行文件传输。
与 ssh 一样,scp 也支持公钥认证,允许你无需输入密码即可进行文件传输。
scp 的安全性依赖于SSH协议,因此它是安全的,除非存在SSH协议本身的漏洞或被不正确地配置。
1.4 wget
1.4.1 介绍
wget 是一个命令行工具,用于从网络上下载文件

1.4.2 使用方法
wget [选项] [URL]
1.4.3 参数详解
-O 或 --output-document=文件:将文档写入文件。
-q 或 --quiet:安静模式(无输出)。
-P 或 --directory-prefix=目录:将文件保存到指定目录。
-r 或 --recursive:递归下载。
-np 或 --no-parent:不递归下载上级目录。
-nd 或 --no-directories:不创建目录。
-A 或 --accept=列表:只下载匹配的文件类型。
-R 或 --reject=列表:拒绝下载匹配的文件类型。
-c 或 --continue:断点续传。
-nv 或 --no-verbose:不显示下载的文件名。
-e 或 --execute=命令:执行.wgetrc文件中的命令。
1.4.4 常见使用案例
1.4.4.1 下载单个文件
wget http://example.com/myfile.txt
这将下载 http://example.com/myfile.txt 并保存到当前目录

1.4.4.2 下载文件并保存到指定目录
wget -P /path/to/directory http://example.com/myfile.txt
这将下载文件并保存到 /path/to/directory 目录中

1.4.4.3 递归下载整个网站
wget -r http://example.com/
这将递归下载 http://example.com/ 网站上的所有文件

1.4.4.4 下载特定类型的文件
wget -r -A.pdf,.doc http://example.com/docs/
这将递归下载 http://example.com/docs/ 目录下的所有 PDF 和 DOC 文件

1.4.5 注意事项
wget 默认会将下载的文件保存到当前工作目录。
使用 -r 选项进行递归下载时,要小心不要下载过多的内容,这可能会消耗大量带宽和磁盘空间。
wget 支持代理服务器和身份验证,可以在命令行中使用相应的选项进行设置。
如果下载过程中出现问题,wget 会尝试重新连接并继续下载,而不是重新开始。
1.5 ping
1.5.1 介绍
ping 是一个用于测试网络连接可用性的命令行工具

1.5.2 使用方法
ping [选项] 目标主机
1.5.3 参数详解
-c:发送指定数量的回显请求后停止。
-i:设置等待每个回显应答的秒数。
-n:只输出数值,不显示主机名。
-q:不显示任何传送封包的信息,只显示最后的统计信息。
-s:指定发送的 ICMP 数据包大小。
-v:详细输出,显示更多的信息。
1.5.4 常见使用案例
1.5.4.1 测试与目标主机的连接
ping www.example.com
这将向 www.example.com 发送 ICMP 回显请求,并显示响应结果

1.5.4.2 发送指定数量的请求
ping -c 4 www.example.com
这将向 www.example.com 发送 4 个 ICMP 回显请求后停止

1.5.4.3 指定数据包大小
ping -s 1024 www.example.com
这将发送大小为 1024 字节的 ICMP 数据包到 www.example.com

1.5.5 注意事项
ping 命令通常用于诊断网络连接问题,例如确定主机是否在线,或者测量网络延迟。
在某些网络中,频繁或大量的 ping 请求可能被视为攻击行为,因此在使用时要谨慎。
默认情况下,ping 会一直发送请求直到用户中断。使用 -c 选项可以限制发送的请求数量。
由于 ICMP 数据包可能被防火墙或路由器阻止,因此即使目标主机在线,ping 也可能失败。
1.6 route
1.6.1 介绍
route 命令在 Unix 和类 Unix 系统(如 Linux)中用于显示和操作 IP 路由表

1.6.2 使用方法
route [-nNvee] [-A inet | inet6] [-f file] [command [arguments]]
1.6.3 参数详解
-n:不解析主机名,以数字形式显示地址。
-e:显示扩展信息,包括接口索引和标志。
-v:详细输出,显示更多信息。
-A:指定地址族,可以是 inet(IPv4)或 inet6(IPv6)。
-f:从指定的文件读取路由表。
add:添加路由。
del:删除路由。
change:修改路由。
1.6.4 常见使用案例
1.6.4.1 显示路由表
route -n
这将显示当前路由表,以数字形式展示 IP 地址和接口索引

1.6.4.2 添加路由
route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.0.0.1
这将在路由表中添加一条路由,将所有目标网络为 192.168.1.0 且子网掩码为 255.255.255.0 的数据包通过网关 10.0.0.1 发送

1.6.4.3 删除路由
route del -net 192.168.1.0 netmask 255.255.255.0
这将从路由表中删除一条目标网络为 192.168.1.0 且子网掩码为 255.255.255.0 的路由

1.6.5 注意事项
route 命令在大多数现代 Linux 发行版中已经被 ip 命令所取代,因为 ip 命令提供了更强大和灵活的功能。
当你使用 route 命令时,需要具有适当的权限,通常需要使用 sudo。
手动修改路由表通常只在特定的网络配置和故障排查场景下使用。在大多数情况下,网络配置应该通过更高级别的工具(如网络管理器或 DHCP 客户端)来管理。
1.7 ifconfig
1.7.1 介绍
ifconfig(interface configuration)是一个用于配置和显示Linux内核中网络接口参数的命令行工具

1.7.2 使用方法
ifconfig [interface] [options]
1.7.3 参数详解
up:激活指定的网络接口。
down:关闭指定的网络接口。
add

:给指定的网络接口添加IP地址。
del :从指定的网络接口删除IP地址。
netmask :设置网络接口的子网掩码。
broadcast :设置网络接口的广播地址。
pointopoint :设置点对点链接的地址。
1.7.4 常见使用案例
1.7.4.1 显示所有网络接口的配置
ifconfig
这将显示系统上所有网络接口的详细信息,包括IP地址、子网掩码、MAC地址等

1.7.4.2 配置网络接口
ifconfig eth0 192.168.1.100 netmask 255.255.255.0 up
这将配置名为 eth0 的网络接口,设置其IP地址为 192.168.1.100,子网掩码为 255.255.255.0,并激活该接口

1.7.4.3 关闭网络接口
ifconfig eth0 down
这将关闭名为 eth0 的网络接口

1.7.5 注意事项
在新版本的Linux系统中,推荐使用 ip 命令来配置网络接口,因为它提供了更现代、更一致的接口,并且支持IPv6。
ifconfig 命令通常需要root权限才能执行。
当使用 ifconfig 配置网络时,更改将在重启后失效,除非这些设置被写入到网络配置文件中。
1.8 ifup & ifdown
1.8.1 介绍
ifup 和 ifdown 是用于管理网络接口的脚本,它们通常与 /etc/network/interfaces 配置文件一起使用,在基于Debian的系统(如Ubuntu)中提供网络服务

1.8.2 使用方法
1.8.2.1 启动网络接口
sudo ifup interface_name
1.8.2.2 停止网络接口
sudo ifdown interface_name
1.8.3 常见使用案例
1.8.3.1 启动名为 eth0 的网络接口
sudo ifup eth0
1.8.3.2 停止名为 eth0 的网络接口
sudo ifdown eth0
1.8.4 注意事项
ifup 和 ifdown 脚本通常包含在 networking 软件包中,这个软件包在大多数基于Debian的系统中默认安装。
这些脚本的行为取决于 /etc/network/interfaces 文件中的配置。如果配置文件中没有为指定的接口定义任何规则,那么 ifup 和 ifdown 将不会执行任何操作。
在某些情况下,网络管理可能通过其他工具(如 NetworkManager)进行,这种情况下 ifup 和 ifdown 可能不会起作用。
使用 ifup 和 ifdown 时,需要具有适当的权限,通常需要使用 sudo 命令。
1.9 netstat
1.9.1 介绍
netstat(网络统计)是一个命令行工具,用于显示网络连接、路由表、接口统计等信息

1.9.2 使用方法
netstat [options]
1.9.3 参数详解
-a:显示所有活动的网络连接和监听的端口。
-n:以数字形式显示地址和端口号,不进行DNS解析。
-t:显示TCP连接。
-u:显示UDP连接。
-r:显示路由表。
-s:显示网络统计信息。
-l:仅显示监听的套接字。
-p:显示与每个连接相关联的进程ID和名称。
1.9.4 常见使用案例
1.9.4.1 显示所有活动的TCP和UDP连接
netstat -a
1.9.4.2 以数字形式显示所有TCP连接
netstat -ant
1.9.4.3 显示监听端口
netstat -l
1.9.4.4 显示路由表
netstat -r
1.9.4.5 显示网络统计信息
netstat -s
1.9.5 注意事项
netstat 命令可能需要root权限才能显示所有信息。
在一些新版本的Linux发行版中,netstat 可能不是默认安装的。如果没有安装,可以通过包管理器(如 apt 或 yum)进行安装。
netstat 的输出信息可能非常详细,因此通常需要使用管道(|)和文本处理工具(如 grep)来过滤和查找特定的信息。
1.10 ss
1.10.1 介绍
ss(socket statistics)是一个用于查看系统套接字信息的命令行工具

1.10.2 使用方法
ss [options]
1.10.3 参数详解
-t:显示TCP套接字。
-u:显示UDP套接字。
-n:以数字形式显示地址和端口号,不进行DNS解析。
-l:仅显示监听的套接字。
-p:显示与每个套接字相关联的进程ID和名称。
-s:显示套接字统计信息。
-a:显示所有套接字,包括那些未连接的。
-4:仅显示IPv4套接字。
-6:仅显示IPv6套接字。
1.10.4 常见使用案例
1.10.4.1 显示所有活动的TCP和UDP套接字
ss -atu
1.10.4.2 以数字形式显示所有监听的TCP套接字
ss -ltn
1.10.4.3 显示与特定进程相关的套接字
ss -p -u src
1.10.4.4 显示套接字统计信息
ss -s
1.10.5 注意事项
ss通常比netstat更快,因为它直接从内核中获取套接字信息,而不需要扫描/proc文件系统。
ss的输出格式与netstat略有不同,但大多数常用的信息都可以在ss的输出中找到。
ss命令在大多数现代Linux发行版中都是可用的,但它可能不是所有发行版的默认安装。如

相关文章
|
5天前
|
Shell Linux 程序员
【Linux】Shell 命令以及运行原理
【Linux】Shell 命令以及运行原理
|
1天前
|
存储 Linux 网络安全
在 Linux 中通过 SSH 执行远程命令时,无法自动加载环境变量(已解决)
SSH远程执行命令时遇到“命令未找到”问题,原因是Linux登录方式不同导致环境变量加载差异。解决方案:将环境变量写入`/etc/profile.d/`下的文件,或手动在命令前加载环境变量,如`source /etc/profile`。
|
3天前
|
关系型数据库 MySQL Java
1.Linux常用命令
1.Linux常用命令
10 1
|
5天前
|
JSON 安全 网络协议
【Linux 网络】网络基础(二)(应用层协议:HTTP、HTTPS)-- 详解
【Linux 网络】网络基础(二)(应用层协议:HTTP、HTTPS)-- 详解
|
5天前
|
存储 网络协议 Unix
【Linux 网络】网络编程套接字 -- 详解
【Linux 网络】网络编程套接字 -- 详解
|
5天前
|
存储 网络协议 Linux
【Linux 网络】网络基础(一)(局域网、广域网、网络协议、TCP/IP结构模型、网络传输、封装和分用)-- 详解(下)
【Linux 网络】网络基础(一)(局域网、广域网、网络协议、TCP/IP结构模型、网络传输、封装和分用)-- 详解(下)
|
5天前
|
存储 网络协议 安全
【Linux 网络】网络基础(一)(局域网、广域网、网络协议、TCP/IP结构模型、网络传输、封装和分用)-- 详解(上)
【Linux 网络】网络基础(一)(局域网、广域网、网络协议、TCP/IP结构模型、网络传输、封装和分用)-- 详解(上)
|
6天前
|
Linux
【超全】Linux命令思维导图总结 值得收藏
【超全】Linux命令思维导图总结 值得收藏
14 0
|
6天前
|
Linux 文件存储 Windows
Linux常用的基础命令
Linux常用的基础命令
12 1
|
7天前
|
运维 关系型数据库 MySQL
day03-Linux运维-Xshell优化和Linux系统命令入门(2)
day03-Linux运维-Xshell优化和Linux系统命令入门(2)
day03-Linux运维-Xshell优化和Linux系统命令入门(2)