菜鸟科技网

Linux连接命令有哪些?如何使用?

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

Linux连接命令有哪些?如何使用?-图1
(图片来源网络,侵删)

网络状态与连接查询命令

在排查网络问题时,首先需要了解当前系统的网络状态和连接情况。netstatss是两款最常用的工具,其中ss作为netstat的替代品,在性能和功能上更具优势。

  1. ss命令
    ss命令用于显示套接字统计信息,可以快速查看TCP、UDP、UNIX域套接字等连接状态,其常用参数包括:

    • -t:显示TCP连接
    • -u:显示UDP连接
    • -l:仅显示监听端口
    • -a:显示所有连接
    • -n:以数字形式显示地址和端口,避免DNS解析
    • -p:显示使用该连接的进程ID和名称

    ss -tulnp可以列出所有监听的TCP和UDP端口及其对应的进程,这对于发现异常服务或端口占用非常有用。ss -an则显示所有连接的详细信息,包括状态、本地地址、远程地址等,适合分析网络连接的整体情况。

  2. netstat命令
    netstat是传统的网络工具,虽然逐渐被ss取代,但在一些旧系统中仍广泛使用,其常用参数与ss类似,如-tuln分别对应显示TCP、UDP、监听和数字格式。netstat -an | grep ESTABLISHED可以查看所有已建立的TCP连接,用于分析当前的网络会话数量。

    Linux连接命令有哪些?如何使用?-图2
    (图片来源网络,侵删)

远程连接命令

远程连接是Linux系统管理中的高频操作,主要通过SSH(Secure Shell)协议实现安全访问。

  1. ssh命令
    ssh用于通过加密通道远程登录到Linux服务器,或执行远程命令,其基本语法为ssh [用户名]@[主机地址] [命令]

    • ssh user@192.168.1.100:以user身份登录到192.168.1.100
    • ssh 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服务。

    Linux连接命令有哪些?如何使用?-图3
    (图片来源网络,侵删)
  2. 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:启用压缩传输
  3. 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:删除目标中多余的文件

网络数据传输与测试命令

  1. ping命令
    ping用于测试网络连通性,通过发送ICMP回显请求包并接收响应,判断目标主机是否可达及延迟情况。ping -c 4 8.8.8.8向8.8.8.8发送4个数据包后退出,参数-c指定发送次数,-i设置间隔时间,-s指定数据包大小。

  2. wgetcurl命令
    两者均用于从网络下载文件,但功能侧重不同:

    • 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请求。

网络配置与路由命令

  1. ifconfigip命令
    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接口
  2. routeip 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转发。

防火墙与安全组命令

  1. iptables命令
    Linux传统的防火墙工具,通过配置规则链(INPUT、OUTPUT、FORWARD)控制网络流量。

    • iptables -A INPUT -p tcp --dport 22 -j ACCEPT:允许SSH连接
    • iptables -A INPUT -j DROP:拒绝其他所有输入
  2. 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指定排除规则文件(每行一个规则)。

分享:
扫描分享到社交APP
上一篇
下一篇