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指定排除规则文件(每行一个规则)。
