Linux作为一款功能强大的操作系统,其网络连接命令是系统管理和运维中的核心工具,涵盖了从网络状态监控、数据传输到远程控制等多个方面,这些命令不仅高效灵活,而且通过参数组合可以实现复杂的功能,是Linux用户必备的技能,以下将详细介绍Linux中常用的连接命令及其应用场景。

网络状态与连接查询命令
在排查网络问题时,首先需要了解当前系统的网络状态和连接情况。netstat
和ss
是两款最常用的工具,其中ss
作为netstat
的替代品,在性能和功能上更具优势。
-
ss
命令
ss
命令用于显示套接字统计信息,可以快速查看TCP、UDP、UNIX域套接字等连接状态,其常用参数包括:-t
:显示TCP连接-u
:显示UDP连接-l
:仅显示监听端口-a
:显示所有连接-n
:以数字形式显示地址和端口,避免DNS解析-p
:显示使用该连接的进程ID和名称
ss -tulnp
可以列出所有监听的TCP和UDP端口及其对应的进程,这对于发现异常服务或端口占用非常有用。ss -an
则显示所有连接的详细信息,包括状态、本地地址、远程地址等,适合分析网络连接的整体情况。 -
netstat
命令
netstat
是传统的网络工具,虽然逐渐被ss
取代,但在一些旧系统中仍广泛使用,其常用参数与ss
类似,如-tuln
分别对应显示TCP、UDP、监听和数字格式。netstat -an | grep ESTABLISHED
可以查看所有已建立的TCP连接,用于分析当前的网络会话数量。(图片来源网络,侵删)
远程连接命令
远程连接是Linux系统管理中的高频操作,主要通过SSH(Secure Shell)协议实现安全访问。
-
ssh
命令
ssh
用于通过加密通道远程登录到Linux服务器,或执行远程命令,其基本语法为ssh [用户名]@[主机地址] [命令]
。ssh user@192.168.1.100
:以user身份登录到192.168.1.100ssh user@192.168.1.100 "ls -l"
:在远程服务器上执行ls -l
命令并返回结果
常用参数包括:
-p [端口号]
:指定SSH服务端口(默认为22)-i [密钥文件]
:使用私钥进行身份验证-f
:后台运行SSH,常与-N
结合(端口转发)-L [本地端口]:[远程地址]:[远程端口]
:本地端口转发-R [远程端口]:[本地地址]:[本地端口]
:远程端口转发
ssh -fN -L 8080:localhost:80 user@remote
将本地8080端口转发到远程服务器的80端口,适合访问远程Web服务。(图片来源网络,侵删) -
scp
命令
scp
(Secure Copy)基于SSH协议实现安全文件传输,语法为scp [选项] [源文件] [目标路径]
。scp local.txt user@remote:/home/user/
:上传本地文件到远程服务器scp user@remote:/home/user/remote.txt ./
:下载远程文件到本地
常用参数包括:
-r
:递归复制目录-P
:指定SSH端口(注意大写,与小写-p
区分)-C
:启用压缩传输
-
rsync
命令
rsync
是更高效的文件同步工具,支持增量传输,适合大文件或目录的同步,语法为rsync [选项] [源路径] [目标路径]
。rsync -avz local_dir/ user@remote:/home/user/remote_dir/
:同步本地目录到远程,保持权限并压缩rsync -avz --delete user@remote:/home/user/remote_dir/ ./
:同步并删除目标目录中多余的文件
常用参数包括:
-a
:归档模式,保留权限、时间戳等-v
:显示详细过程-z
:压缩传输--delete
:删除目标中多余的文件
网络数据传输与测试命令
-
ping
命令
ping
用于测试网络连通性,通过发送ICMP回显请求包并接收响应,判断目标主机是否可达及延迟情况。ping -c 4 8.8.8.8
向8.8.8.8发送4个数据包后退出,参数-c
指定发送次数,-i
设置间隔时间,-s
指定数据包大小。 -
wget
和curl
命令
两者均用于从网络下载文件,但功能侧重不同:wget
:支持断点续传、后台下载,适合下载整个网页或FTP文件。wget -c http://example.com/file.zip
可断点续传下载。curl
:支持更多协议(HTTP、HTTPS、FTP等),可模拟POST请求、显示响应头等。curl -I http://example.com
仅获取响应头,curl -X POST -d "data" http://example.com/api
发送POST请求。
网络配置与路由命令
-
ifconfig
和ip
命令
ifconfig
用于配置和显示网络接口信息(如IP、子网掩码),但逐渐被ip
命令取代。ip
命令功能更强大,ip addr show
:显示所有网络接口IP地址ip addr add 192.168.1.100/24 dev eth0
:为eth0接口添加IP地址ip link set eth0 up
:启用eth0接口
-
route
和ip route
命令
用于查看和配置路由表。ip route show
显示当前路由条目,ip route add 192.168.2.0/24 via 192.168.1.1
添加静态路由,将目标网段192.168.2.0的流量通过网关192.168.1.1转发。
防火墙与安全组命令
-
iptables
命令
Linux传统的防火墙工具,通过配置规则链(INPUT、OUTPUT、FORWARD)控制网络流量。iptables -A INPUT -p tcp --dport 22 -j ACCEPT
:允许SSH连接iptables -A INPUT -j DROP
:拒绝其他所有输入
-
firewalld
命令
CentOS 7及以上系统默认使用firewalld
,支持动态管理规则和区域(Zone)策略。firewall-cmd --add-service=ssh --permanent
:永久允许SSH服务firewall-cmd --reload
:重新加载防火墙配置
相关问答FAQs
问题1:如何通过SSH实现端口转发,将本地服务暴露给远程服务器访问?
解答:SSH端口转发分为本地转发和远程转发,本地转发使用-L
参数,例如ssh -fN -L 8080:localhost:80 user@remote
,将本地8080端口转发到远程服务器的80端口,访问本地8080即相当于访问远程服务器的80端口,远程转发使用-R
参数,例如ssh -fN -R 8080:localhost:80 user@remote
,将远程服务器的8080端口转发到本地的80端口,适合远程服务器访问本地服务(需远程服务器配置GatewayPorts
)。
问题2:如何使用rsync
同步文件时排除特定目录或文件?
解答:rsync
的--exclude
参数用于排除特定文件或目录,同步目录时排除temp
文件夹和.log
文件:rsync -avz --exclude=temp --exclude='*.log' source_dir/ destination_dir/
,若需排除多个规则,可多次使用--exclude
,或通过--exclude-from=/path/to/exclude_file
指定排除规则文件(每行一个规则)。