Linux网络配置与端口监听的实战指南

 更新时间:2026年02月11日 09:44:56   作者:予枫的编程笔记  
做开发和运维的同学,几乎每天都会和网络打交道:部署服务后端口不通、服务器IP配置异常、接口调用失败、防火墙拦截请求,所以本文汇总了IP查看、DNS配置、端口监听、连通性测试、防火墙放行的实操技巧,需要的朋友可以参考下

引言

做开发和运维的同学,几乎每天都会和网络打交道:部署服务后端口不通、服务器IP配置异常、接口调用失败、防火墙拦截请求……这些问题看似棘手,其实只要掌握核心的网络配置与端口监听命令,就能快速排查解决。本文汇总了IP查看、DNS配置、端口监听、连通性测试、防火墙放行的实操技巧,全程干货无废话,新手可直接抄作业,老鸟可查漏补缺,建议收藏备用!

一、基础网络配置:IP地址与DNS配置(必学)

无论是开发环境还是生产环境,首先要搞定服务器的基础网络——知道自己的IP、能正常解析域名,这是所有网络操作的前提。这里重点讲Linux系统(CentOS/Ubuntu通用)的实操命令,Windows可自行对应类比。

1.1 查看IP地址(2种常用方式)

最常用的两个命令:ip addrifconfig,推荐优先用 ip addr(ifconfig在部分新系统中已被废弃)。

实操演示(代码块可直接复制执行)

# 方式1:推荐,查看所有网卡的IP信息(包括IPv4、IPv6)
ip addr

# 方式2:兼容旧系统,查看IP(部分系统需先安装net-tools工具)
ifconfig

# 补充:只查看指定网卡(比如eth0、ens33,根据自己的网卡名修改)
ip addr show eth0

关键解读(避坑重点)

  • 执行 ip addr 后,标注「inet」的就是IPv4地址(比如 192.168.1.100/24),这是我们日常用的IP;
  • 标注「inet6」的是IPv6地址,日常开发中很少用到,可暂时忽略;
  • 若提示「ifconfig: command not found」,说明系统没有net-tools工具,执行 yum install net-tools -y(CentOS)或 apt install net-tools -y(Ubuntu)即可安装。

1.2 DNS配置(解决“域名解析失败”问题)

很多时候,我们能ping通IP,但ping不通域名(比如 ping baidu.com 失败),大概率是DNS配置有问题。DNS的作用就是将域名(如baidu.com)解析为IP地址,方便我们访问。

实操演示(修改DNS配置)

# 1. 编辑DNS配置文件(所有系统通用,需root权限)
vim /etc/resolv.conf

# 2. 在文件中添加以下内容(添加常用的公共DNS,二选一即可)
nameserver 8.8.8.8  # 谷歌公共DNS(全球通用,速度快)
nameserver 114.114.114.114  # 国内公共DNS(适合国内服务器,稳定性高)

# 3. 保存退出(vim操作:按ESC,输入:wq,回车)
# 补充:配置后立即生效,无需重启网络

注意事项

  • /etc/resolv.conf 文件默认可能为空,直接添加上述两行即可;
  • 若配置后仍无法解析域名,可重启网络服务:systemctl restart network(CentOS)或 systemctl restart networking(Ubuntu);
  • 避免同时添加过多DNS服务器,2个足够,多了可能会影响解析速度。

小贴士:这里建议点赞收藏,下次遇到“域名解析失败”,直接翻这部分内容,不用再到处查资料~

二、端口监听:netstat与ss命令详解(核心)

部署服务后(比如Tomcat、Nginx、Java服务),最常遇到的问题就是“端口占用”“服务启动了但端口没监听”。这时候就需要用端口监听命令,查看端口的占用情况、监听状态。

2.1 两个核心命令对比(选对命令效率翻倍)

命令特点适用场景
netstat功能全面,但效率较低兼容旧系统、需要查看详细的进程信息
ss轻量快速,占用资源少新系统优先用、大并发场景(比如服务器端口较多时)

2.2 实操命令(重点掌握,直接抄作业)

(1)查看所有端口(监听+未监听)

# netstat 方式(需安装net-tools工具)
netstat -tulnp

# ss 方式(系统自带,推荐)
ss -tulnp

(2)查看指定端口(最常用,比如查看8080端口占用)

# 查看8080端口的占用情况(netstat)
netstat -tulnp | grep 8080

# 查看8080端口的占用情况(ss,推荐)
ss -tulnp | grep 8080

(3)命令参数解读(新手必看)

  • t:查看TCP端口(日常开发中最常用,比如HTTP、HTTPS服务);
  • u:查看UDP端口(较少用,比如广播、视频流相关);
  • l:只查看“正在监听”的端口(服务启动成功后,端口会处于监听状态);
  • n:以数字形式显示IP和端口(不显示域名、服务名,速度更快);
  • p:显示占用该端口的进程ID(PID)和进程名(比如java、nginx),方便杀死占用端口的进程。

(4)避坑案例

比如启动Tomcat时,提示「Address already in use」(端口已被占用),执行以下命令即可解决:

# 1. 查看8080端口的占用进程(假设Tomcat用8080端口)
ss -tulnp | grep 8080
# 输出示例:tcp    LISTEN     0      100    [::]:8080               [::]:*                   users:(("java",pid=1234,fd=52))

# 2. 杀死占用端口的进程(PID为1234,根据自己的输出修改)
kill -9 1234

# 3. 重新启动Tomcat,即可正常启动

三、连通性测试:ping、telnet、curl(排障必备)

服务部署成功、端口也在监听,但别人就是访问不了?这时候就需要用连通性测试命令,排查是本地问题、网络问题,还是服务问题。

3.1 ping:测试网络是否通畅(最基础)

ping 命令用于测试两个主机之间的网络连通性,简单来说:能ping通,说明网络是通的;ping不通,说明网络有问题(比如防火墙拦截、路由异常)。

实操演示

# 测试与百度的网络连通性(测试外网是否通畅)
ping baidu.com

# 测试与内网服务器的连通性(比如测试与192.168.1.200的连通性)
ping 192.168.1.200

# 补充:指定ping的次数(默认无限次,Ctrl+C终止)
ping -c 4 baidu.com  # 只ping4次,适合脚本中使用

关键解读

  • 若输出「64 bytes from xxx (xxx.xxx.xxx.xxx): icmp_seq=1 ttl=64 time=10.2 ms」,说明ping通了;
  • 若输出「Request timeout for icmp_seq 0」,说明ping不通,需排查防火墙、路由等问题;
  • 注意:部分服务器会禁用ping(出于安全考虑),此时ping不通不代表网络有问题,可换telnet或curl测试。

3.2 telnet:测试端口是否可访问(重点)

ping 只能测试网络通畅,但不能测试端口是否可访问。比如服务器网络通了,但8080端口被防火墙拦截,ping能通,但telnet不通。

实操演示

# 测试百度的80端口(HTTP端口)是否可访问
telnet baidu.com 80

# 测试内网服务器的8080端口是否可访问
telnet 192.168.1.200 8080

关键解读

  • 若连接成功,会显示「Connected to baidu.com」,说明端口可访问;
  • 若连接失败,会显示「Connection refused」(端口未监听)或「Connection timed out」(端口被防火墙拦截);
  • 若提示「telnet: command not found」,执行 yum install telnet -y(CentOS)或 apt install telnet -y(Ubuntu)安装即可。

3.3 curl:测试接口是否可正常调用(开发常用)

curl 命令比telnet更强大,不仅能测试端口,还能发送HTTP请求,测试接口是否能正常返回数据(适合Web服务、接口开发)。

实操演示

# 1. 测试HTTP接口(比如测试本地Tomcat的默认接口)
curl http://localhost:8080

# 2. 测试指定接口(比如GET请求接口)
curl http://192.168.1.200:8080/api/user/list

# 3. 查看请求详情(排障时常用,显示请求头、响应头)
curl -v http://baidu.com

关键解读

  • 若返回接口正常响应数据(比如JSON格式),说明接口可正常调用;
  • 若返回「Connection refused」,说明端口未监听;
  • 若返回「404 Not Found」,说明端口监听正常,但接口路径错误;
  • 若返回「500 Internal Server Error」,说明接口代码有问题,需排查服务端代码。

四、防火墙操作:iptables与firewalld放行端口(必懂)

很多时候,端口监听正常、网络也通畅,但外部就是访问不了,核心原因是「防火墙拦截了端口」。这里讲解Linux系统中两种常用的防火墙:iptables(旧系统常用)和firewalld(新系统常用)。

4.1 firewalld操作(CentOS 7+、Ubuntu 18+ 推荐)

firewalld是新系统默认的防火墙,操作更简单,推荐优先使用。

实操演示(放行端口)

# 1. 查看防火墙状态(是否开启)
systemctl status firewalld

# 2. 若防火墙未开启,启动防火墙(可选)
systemctl start firewalld

# 3. 放行指定端口(比如8080端口,永久生效)
firewall-cmd --permanent --add-port=8080/tcp

# 4. 放行端口范围(比如8000-9000端口,可选)
firewall-cmd --permanent --add-port=8000-9000/tcp

# 5. 重新加载防火墙(使配置生效,必须执行)
firewall-cmd --reload

# 6. 查看已放行的端口(验证配置)
firewall-cmd --permanent --list-ports

补充操作(常用)

# 1. 移除已放行的端口(比如移除8080端口)
firewall-cmd --permanent --remove-port=8080/tcp
firewall-cmd --reload

# 2. 关闭防火墙(测试时可用,不推荐生产环境)
systemctl stop firewalld

# 3. 禁止防火墙开机自启(不推荐生产环境)
systemctl disable firewalld

4.2 iptables操作(旧系统兼容)

iptables是旧系统(比如CentOS 6)的防火墙,操作相对复杂,适合兼容旧系统时使用。

实操演示(放行端口)

# 1. 查看iptables规则(查看已放行的端口)
iptables -L -n

# 2. 放行指定端口(比如8080端口,临时生效,重启后失效)
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

# 3. 放行指定端口(永久生效,需保存配置)
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
service iptables save  # 保存配置
service iptables restart  # 重启iptables

# 4. 移除已放行的端口(比如移除8080端口)
iptables -D INPUT -p tcp --dport 8080 -j ACCEPT
service iptables save
service iptables restart

注意事项

  • 生产环境中,不建议直接关闭防火墙(存在安全风险),最好的方式是「放行需要用到的端口」;
  • 若服务器有外网IP,建议只放行必要的端口(比如80、443、8080),避免不必要的端口 暴露在外网。

五、总结

本文汇总了Linux网络配置与端口监听的核心实操技巧,从基础的IP查看、DNS配置,到核心的端口监听(netstat/ss)、连通性测试(ping/telnet/curl),再到防火墙放行端口(firewalld/iptables),覆盖了开发、运维日常排障的90%场景。

所有命令均经过实操验证,新手可直接复制执行,老鸟可查漏补缺。网络问题看似复杂,其实只要掌握这些基础命令,就能快速定位并解决问题。

以上就是Linux网络配置与端口监听的实战指南的详细内容,更多关于Linux网络配置与端口监听的资料请关注脚本之家其它相关文章!

相关文章

  • Linux文件目录结构(小白版)

    Linux文件目录结构(小白版)

    这篇文章主要介绍了Linux文件目录结构(小白版),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • 15张Vim速查表-帮你提高N倍效率

    15张Vim速查表-帮你提高N倍效率

    在Linux上一直使用vim,慢慢熟悉了它的命令,才终于领悟了什么是编辑器之神。最近抽空整理了这份速查表,感兴趣的朋友跟随小编一起看看吧
    2018-10-10
  • 在Linux中查找命令的执行时间的几种方法小结

    在Linux中查找命令的执行时间的几种方法小结

    在Linux系统中,了解命令的执行时间对于优化系统性能和提高效率至关重要,本文将介绍几种方法来查找命令的执行时间,包括内置的time命令、GNU time工具、strace以及perf工具,需要的朋友可以参考下
    2024-05-05
  • 详解Apache配置多个监听端口和不同的网站目录

    详解Apache配置多个监听端口和不同的网站目录

    这篇文章主要介绍了详解Apache配置多个监听端口和不同的网站目录的相关资料,希望通过本文能帮助到大家,让大家实现这样的方法,需要的朋友可以参考下
    2017-10-10
  • Linux其他备选高级IO模型用法详解

    Linux其他备选高级IO模型用法详解

    文章介绍了Linux系统中同步与异步I/O模型,包括阻塞I/O、非阻塞I/O、IO多路复用(select/poll/epoll)、信号驱动I/O和异步I/O,重点解析了各模型工作原理、优缺点及适用场景,强调通过非阻塞、多路复用和事件驱动机制提升I/O效率,减少资源消耗,适用于高并发网络服务等场景
    2025-09-09
  • Linux上如何安装配置hive

    Linux上如何安装配置hive

    本文详细介绍了如何在Linux系统下安装和配置Hive,包括安装前的准备工作(如确保已安装Hadoop和MySQL),以及具体的下载、上传、解压、配置环境变量和修改配置文件等步骤,还涉及到了可能遇到的问题如驱动引擎缺失和MySQL连接错误的解决方法
    2024-09-09
  • Linux查看进程的四种方法小结

    Linux查看进程的四种方法小结

    文章介绍了四种在Linux系统中查看进程的方法,包括ps、top、htop和pstree命令,每种方法都有其独特的优势,通过这些方法,用户可以更有效地管理系统进程,需要的朋友可以参考下
    2025-02-02
  • Linux下gdb调试打印数组元素以及说明

    Linux下gdb调试打印数组元素以及说明

    这篇文章主要介绍了Linux下gdb调试打印数组元素以及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Linux进程池实现的详细指南

    Linux进程池实现的详细指南

    如果你了解过STL的底层设计,你会发现在其中会有一个叫做内存池的设计,其作用就是先申请出一片空间,如果后续你需要对你的容器进行扩容,所扩展的空间就从内存池里取的,本文给大家介绍了Linux进程池实现的详细指南,需要的朋友可以参考下
    2024-11-11
  • Linux恢复删除文件的lsof命令详解

    Linux恢复删除文件的lsof命令详解

    Linux系统是服务器最常见的操作系统,当然也面临着非常多的安全事件,当发生删除文件错误的时候,恢复文件就尤为重要了,下面这篇文章主要介绍了Linux恢复删除文件的lsof命令,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-01-01

最新评论