5_网络管理基础:让 Linux 连上网、能远程

网络管理基础:让 Linux 连上网、能远程

对 Linux 新手来说,“让系统连上网” 和 “远程访问 Linux” 是两项最基础也最关键的需求 —— 无论是日常办公查资料,还是管理云服务器,都离不开网络。但很多人会卡在 “不知道网卡信息”“ping 不通网关”“SSH 连不上” 等问题上。今天这篇文章,从 “查看网络→配置网络→远程连接” 三个维度,带你掌握 Linux 网络管理的核心能力,解决常见网络问题。

一、核心基础:3 个命令搞定 “查网卡、测连通、远程连”

Linux 网络管理的基础,是先搞懂 “自己的网络状态”,再 “测试连通性”,最后 “远程连接”。对应三个核心命令:ip addr(查网卡)、ping(测连通)、ssh(远程连)。

1. ip addr:查看网卡与 IP 信息 ——“我的 Linux 有哪些网卡?IP 是多少?”

ip addr(全称ip address)是 Linux 查看网卡和 IP 地址的核心命令,替代了旧版的ifconfig(部分系统已不默认安装)。

(1)基础用法:直接查看所有网卡信息

  • 命令:ip addr

  • 输出结果解读(新手重点看这 3 部分):

1: lo: \<LOOPBACK,UP,LOWER\_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

&#x20;   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

&#x20;   inet 127.0.0.1/8 scope host lo

&#x20;      valid\_lft forever preferred\_lft forever

2: eth0: \<BROADCAST,MULTICAST,UP,LOWER\_UP> mtu 1500 qdisc fq\_codel state UP group default qlen 1000

&#x20;   link/ether 00:16:3e:0a:b1:c2 brd ff:ff:ff:ff:ff:ff

&#x20;   inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic eth0

&#x20;      valid\_lft 86399sec preferred\_lft 86399sec
  • 网卡名称lo是 “回环网卡”(本地测试用,IP 固定为 127.0.0.1),eth0/ens33是 “物理网卡”(实际联网用,不同系统名称可能不同);

  • 网卡状态state UP表示网卡已启用,state DOWN表示网卡未启用(需手动开启);

  • IP 地址inet ``192.168.1.100/24是网卡的 IP 地址(/24是子网掩码,对应 255.255.255.0),这是后续联网和远程连接的关键。

(2)常用扩展:启用 / 禁用网卡

  • 启用网卡(以 eth0 为例):sudo ip link set eth0 up

  • 禁用网卡:sudo ip link set eth0 down

  • 场景:如果网卡状态是DOWN,先启用再查 IP,避免误以为 “没 IP”。

2. ping:测试网络连通性 ——“我的 Linux 能连上网吗?能连网关 / 百度吗?”

ping通过发送 “网络数据包” 测试目标地址是否可达,是排查 “连不上网” 的第一步。

(1)基础用法:ping 目标地址

  • 命令格式:ping 目标IP/域名

  • 常用场景:

  1. 测试连网关(网关是 Linux 连外网的 “出口”,一般是路由器 / 交换机 IP,比如 192.168.1.1):

    ping ``192.168.1.1

    若显示 “64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=1.23 ms”,说明能连网关;

  2. 测试连外网(比如百度):

    ping ``www.baidu.com

    若能收到回复,说明外网通;若提示 “unknown host”,可能是 DNS 配置有问题。

(2)注意:停止 ping 的方法

Linux 的ping会默认一直发送数据包,按Ctrl+C停止,停止后会显示统计信息(比如 “packets transmitted, 5 received”,表示发了 5 个包,收了 5 个,连通正常)。

3. ssh:远程连接 Linux——“我能在 Windows/Mac 上控制 Linux 吗?”

ssh(Secure Shell)是远程连接 Linux 的标准工具,通过加密传输数据,安全且常用。无论是管理本地虚拟机,还是云服务器(阿里云、AWS 等),都靠它。

(1)基础用法:远程连接 Linux

  • 命令格式:ssh 用户名@目标Linux的IP地址

  • 实战例子:在 Windows 的 Git Bash/Mac 的终端上,连接 IP 为 123.45.67.89、用户名为 ubuntu 的云服务器:

    ssh ubuntu@``123.45.67.89

  • 首次连接提示:会显示 “Are you sure you want to continue connecting (yes/no/[fingerprint])?”,输入yes确认,然后输入目标 Linux 的用户密码,回车即可登录(登录后就像在本地终端操作一样)。

(2)常用扩展:指定端口连接

默认 ssh 端口是 22,但部分云服务器会修改端口(比如改为 2222),需加-p指定端口:

ssh -p 2222 ubuntu@``123.45.67.89

二、图形化辅助:用 nmcli 配置网络 —— 新手也能 “点命令” 配网络

对命令行不熟悉的新手,推荐用nmcli(NetworkManager Command Line Interface)—— 它是 Linux 自带的图形化网络管理工具,通过简单命令就能配置 IP、DNS 等,比直接改配置文件更安全。

1. 先查网络连接:nmcli connection show

  • 命令:nmcli connection show

  • 输出:会显示当前的网络连接(比如 “Wired connection 1” 是有线连接,“Wi-Fi connection 1” 是无线连接),记住连接名称(比如 “eth0”),后续配置用。

2. 实战:用 nmcli 配置静态 IP(公司内网常用)

公司内网一般要求 “静态 IP”(固定 IP,避免每次开机 IP 变化),用nmcli配置步骤如下(以 eth0 网卡为例):

步骤 1:清除原有动态 IP(若之前是自动获取)

sudo nmcli connection modify eth0 ipv4.method auto ipv4.dhcp-client-id ""

步骤 2:配置静态 IP、子网掩码、网关、DNS

sudo nmcli connection modify eth0 \

ipv4.method manual \

ipv4.addresses ``192.168.2.10/24`` \ # 静态IP和子网掩码(根据公司内网分配,比如``192.168.2.10``)

ipv4.gateway ``192.168.2.1`` \ # 网关(问IT部门要,比如``192.168.2.1``)

ipv4.dns ``8.8.8.8``,``114.114.114.114`` # DNS(``8.8.8.8``是谷歌DNS,114是国内DNS)

步骤 3:重启网络连接,让配置生效

sudo nmcli connection down eth0 && sudo nmcli connection up eth0

步骤 4:验证配置

ip addr查看 eth0 的 IP,若显示 “192.168.2.10/24”,再 ping 网关(ping ``192.168.2.1)和百度(ping ``www.baidu.com),都能通说明配置成功。

三、实战场景:3 个高频需求的完整操作

掌握基础命令后,结合实际场景落地,才能真正解决问题。

1. 场景 1:配置静态 IP 适配公司内网(补充 “改配置文件” 方法,适合进阶)

除了nmcli,也可以直接修改网络配置文件(以 Ubuntu 24.04 为例,文件路径/etc/netplan/01-network-manager-all.yaml):

步骤 1:编辑配置文件

sudo vim /etc/netplan/01-network-manager-all.yaml

步骤 2:写入静态 IP 配置(注意缩进,YAML 文件对缩进敏感)

network:

&#x20; version: 2

&#x20; renderer: NetworkManager

&#x20; ethernets:

&#x20;   eth0:  # 网卡名称,和ip addr查的一致

&#x20;     dhcp4: no  # 关闭DHCP(不自动获取IP)

&#x20;     addresses: \[192.168.2.10/24]  # 静态IP

&#x20;     gateway4: 192.168.2.1        # 网关

&#x20;     nameservers:

&#x20;       addresses: \[8.8.8.8, 114.114.114.114]  # DNS

步骤 3:应用配置

sudo netplan apply

步骤 4:验证:同 nmcli 方法,查 IP+ping 测试。

2. 场景 2:通过 SSH 连接云服务器(含密钥登录,更安全)

密码登录有 “被暴力破解” 的风险,云服务器推荐用 “密钥登录”,步骤如下:

步骤 1:在本地生成密钥对(Windows 用 Git Bash,Mac 用终端)

ssh-keygen -t rsa

  • 按回车默认保存路径(~/.ssh/id_rsa),无需设置密码(新手可直接回车跳过),生成后本地会有id_rsa(私钥,自己保存,别泄露)和id_rsa.pub(公钥,要传到云服务器)。

步骤 2:将公钥传到云服务器(以 ubuntu 用户、IP 123.45.67.89 为例)

ssh-copy-id ubuntu@``123.45.67.89

  • 输入云服务器密码,回车后公钥会自动传到云服务器的~/.ssh/authorized_keys文件中。

步骤 3:测试密钥登录

ssh ubuntu@``123.45.67.89

  • 此时无需输密码,直接登录,说明密钥配置成功。

3. 场景 3:排查 “ping 不通网关” 的问题(常见故障解决)

“能连网卡,但 ping 不通网关” 是新手常遇问题,按以下步骤排查:

步骤 1:确认网关 IP 是否正确

  • 问 IT 部门 / 路由器管理员要正确网关(比如 192.168.1.1),避免输错 IP(比如把 192.168.1.1 输成 192.168.0.1);

  • 验证:用ip route查看系统默认网关,若显示 “default via 192.168.1.1 dev eth0”,说明网关配置正确。

步骤 2:检查网卡是否启用

  • ip addr看网卡状态,若state DOWN,用sudo ip link set eth0 up启用。

步骤 3:检查物理连接(有线 / 无线)

  • 有线:确认网线插紧,交换机 / 路由器端口亮灯;

  • 无线:确认连接的 Wi-Fi 名称正确,密码没输错(用nmcli device wifi list看可用 Wi-Fi,nmcli device wifi connect "Wi-Fi名称" password "密码"重连)。

步骤 4:检查网关是否在线

  • 用其他设备(比如手机连同一网络)ping 网关,若也不通,说明网关(路由器)故障,联系管理员;若其他设备能通,再检查 Linux 的防火墙(见下文避坑)。

四、避坑指南:2 个高频网络问题的解决方法

1. 避坑 1:IP 地址冲突 ——“为什么我的 Linux 突然连不上网?”

IP 冲突是指 “多个设备用了同一个 IP”,会导致其中一个设备无法联网,症状是 “能连网卡,但 ping 网关超时”。

解决步骤:

  1. 先确认是否冲突:问同网段的同事 / 其他设备,是否用了和你一样的 IP(比如 192.168.2.10);

  2. 临时解决:改一个未被占用的 IP(比如把 192.168.2.10 改成 192.168.2.11),用nmcli或改配置文件(参考场景 1);

  3. 长期解决:若公司内网支持 DHCP,建议用 “自动获取 IP”(nmcli connection modify eth0 ipv4.method auto),让路由器分配不冲突的 IP。

2. 避坑 2:SSH 连接被拒 ——“为什么我连不上云服务器?”

SSH 连接被拒(提示 “Connection refused” 或 “Permission denied”),按以下优先级排查:

(1)检查云服务器的 SSH 服务是否启动

  • 若能直接操作云服务器(或通过云厂商控制台的 “远程连接”),先查 SSH 服务状态:

    sudo systemctl status sshd(CentOS/RHEL)或sudo systemctl status ssh(Ubuntu);

  • 若显示 “inactive (dead)”,启动服务:

    sudo systemctl start sshd(CentOS/RHEL)或sudo systemctl start ssh(Ubuntu);

  • 设为开机启动:sudo systemctl enable sshd,避免重启后服务又停了。

(2)检查 SSH 端口是否正确

  • 确认云服务器的 SSH 端口(默认 22,若改了端口,比如 2222,连接时要加-p 2222);

  • 查云服务器的 SSH 端口配置:sudo cat /etc/ssh/sshd_config,找 “Port” 字段,确认端口号。

(3)检查防火墙是否开放 SSH 端口

  • Ubuntu(用 ufw 防火墙):

    查状态:sudo ufw status

    开放 22 端口:sudo ufw allow 22

    启用防火墙:sudo ufw enable

  • CentOS/RHEL(用 firewalld):

    查状态:sudo firewall-cmd --state

    开放 22 端口:sudo firewall-cmd --add-port=22/tcp --permanent

    重载配置:sudo firewall-cmd --reload

(4)检查密钥 / 密码是否正确

  • 密码登录:确认用户名和密码没输错(Linux 密码输入时不显示,避免多输 / 少输字符);

  • 密钥登录:确认本地私钥路径正确(默认~/.ssh/id_rsa),若私钥路径变了,用ssh -i 私钥路径 用户名@IP(比如ssh -i ~/my_key.pem ubuntu@``123.45.67.89)。

(5)检查云厂商的 “安全组”(云服务器特有)

阿里云、腾讯云等厂商有 “安全组” 配置,需开放 SSH 端口(22)才能连接:

  • 登录云厂商控制台,找到 “安全组”;

  • 添加入站规则:端口范围 “22/22”,授权对象 “0.0.0.0/0”(允许所有 IP 连接,生产环境建议限制 IP)。

总结:Linux 网络管理的 “核心 3 步”

  1. 查状态:用ip addr看网卡和 IP,ping测连通,确认网络基础状态;

  2. 配网络:新手用nmcli配静态 IP / 无线,进阶改配置文件,适配不同场景;

  3. 远程连:用ssh密码登录入门,密钥登录更安全,云服务器别忘开安全组。

掌握这些内容,你就能解决 “连不上网”“远程连不上” 等常见问题,让 Linux 真正 “用起来”。

posted @ 2025-10-12 18:56  S&L·chuck  阅读(21)  评论(0)    收藏  举报