Linux连不上网?远程卡?这篇网络管理指南你不能错过!
大家好!今天咱们聊个所有Linux用户都躲不开的“老大难”——网络管理。我猜你肯定遇到过这些崩溃时刻:
- 新装的Linux系统连不上Wi-Fi,急得直拍桌子;
- 远程服务器SSH连不上,提示“Connection refused”;
- 想搭个个人网站,结果端口老是被堵,网页打不开……
别慌!今天我把压箱底的网络排查技巧掏出来,从“看网络状态”到“修连不上”,再到“搭个人服务器”,保证你看完能解决90%的日常网络问题!
一、为什么需要懂Linux网络管理?
简单说,网络是Linux的“血管”——你用的微信、刷的网页、远程控制的服务器,全靠网络连接。不懂网络管理,你就没法:
- 快速定位“连不上网”的真凶(是IP错了?DNS崩了?还是路由器抽风?)
- 远程维护服务器(不用跑机房,在家就能排查SSH/HTTP服务)
- 搭建个人项目(比如用Nginx做网站、用frp内网穿透)
二、快速查看网络状态:3个命令搞定
1. ip:新一代网络配置工具(推荐新手用)
以前用ifconfig,但现在ip命令更强大(ifconfig需要额外安装net-tools)。常用用法:
- 查看所有网络接口:ip addr(或简写ip a)。输出里重点看inet后面的IP地址(比如192.168.1.100/24),lo是本地环回(127.0.0.1),eth0/wlan0是有线/无线网卡。
- 查看路由表:ip route。默认网关(default via 192.168.1.1 dev eth0)决定了你访问外网的“出口”。
举个栗子:我之前新装的Ubuntu连不上网,用ip addr一看,发现wlan0的inet字段是空的——原来是没连上Wi-Fi!
2. ping:测试连通性的“照妖镜”
ping是最基础的网络测试工具,用来检查目标IP/域名是否能通信。
- 基本用法:ping baidu.com(持续发送数据包,按Ctrl+C停止)。
- 看结果:如果显示64 bytes from 180.101.49.12: icmp_seq=1 ttl=54 time=12.3 ms,说明能连通;如果一直请求超时,可能是对方宕机、防火墙拦截,或你本地网络有问题。
注意:有些服务器会禁用ICMP(ping协议),这时候ping不通不代表真连不上,换个工具(比如telnet)试试。
3. ss/netstat:看端口和连接的“透视镜”
想看看哪些程序在占用端口?或者远程服务器的某个端口是否开放?用这两个命令:
- ss -tunlp:显示所有TCP/UDP监听端口(-t=TCP,-u=UDP,-n=显示数字端口,-l=监听状态,-p=关联进程)。
- netstat -anp(旧版):功能类似,但ss更快更高效(推荐用ss)。
举个栗子:我想搭个Nginx网站,启动后发现网页打不开,用ss -tlnp | grep nginx一查,发现Nginx监听的是80端口,但防火墙没开——原来是没放行80端口!
三、实战排查:从“连不上网”到“远程控制”
场景1:本地电脑连不上Wi-Fi(有线/无线)
问题现象:点击Wi-Fi图标没反应,ip addr显示无线网卡(wlan0)没有inet地址。
解决步骤:
- 检查Wi-Fi是否开启:nmcli radio wifi on(nmcli是NetworkManager命令行工具)。
- 扫描可用网络:nmcli device wifi list。
- 连接网络:nmcli device wifi connect "WiFi名称" password "密码"。
- 验证:ping www.baidu.com,能通就成功!
场景2:远程服务器SSH连不上(提示“Connection refused”)
问题现象:用ssh root@服务器IP连接,提示Connection refused。
可能原因:
- SSH服务没启动(sshd没运行);
- 防火墙拦截了22端口;
- 服务器IP写错了,或者网络不通。
解决步骤:
- 确认服务器SSH服务运行:systemctl status sshd(CentOS)或systemctl status ssh(Ubuntu)。如果没运行,systemctl start sshd启动。
- 检查防火墙规则:sudo ufw status(Ubuntu)或sudo firewall-cmd --list-ports(CentOS)。如果22端口没开,sudo ufw allow 22(Ubuntu)或sudo firewall-cmd --add-port=22/tcp --permanent(CentOS)。
- 测试网络连通性:在本地电脑上ping 服务器IP,如果超时,可能是服务器宕机、路由器问题,或运营商封禁。
场景3:搭建个人Web服务器(Nginx)
想自己搭个网站?用Nginx超简单!
- 安装Nginx: Ubuntu:sudo apt install nginx CentOS:sudo yum install nginx
- 启动服务:sudo systemctl start nginx
- 开放80端口(防火墙):参考场景2的步骤。
- 验证:浏览器输入服务器IP,看到“Welcome to Nginx”就成功了!
四、高阶技巧:用curl和wget下载文件,用scp传文件
- curl:发送HTTP请求,下载文件或测试接口。
示例:curl -O https://example.com/file.zip(下载文件到当前目录)。 - wget:更简单的下载工具,支持断点续传。
示例:wget -c https://example.com/bigfile.iso(-c表示断点续传)。 - scp:远程传输文件(基于SSH)。
示例:scp /本地/文件.txt root@服务器IP:/远程/路径(上传);scp root@服务器IP:/远程/文件.txt /本地/路径(下载)。
五、注意事项
- 修改网络配置(比如/etc/netplan/*.yaml或/etc/network/interfaces)前一定要备份,改错可能导致断网!
- 远程操作服务器时,别随便关防火墙(ufw/firewalld),除非你确定端口安全。
- 公司/学校网络可能有MAC地址绑定,新设备连不上Wi-Fi要先找管理员登记。
课后练习
- 用自己的电脑连一次Wi-Fi(用nmcli命令),然后ip addr检查IP是否正确。
- 找一台运行中的Linux服务器(或本地虚拟机),用ss -tlnp查看Nginx/SSH监听的端口。
- 尝试用scp把本地的一个小文件传到虚拟机里(比如/home/user/目录)。