当前位置: 代码网 > 服务器>服务器>Linux > Linux网络配置与端口监听的实战指南

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

2026年02月11日 Linux 我要评论
引言做开发和运维的同学,几乎每天都会和网络打交道:部署服务后端口不通、服务器ip配置异常、接口调用失败、防火墙拦截请求……这些问题看似棘手,其实只要掌握核心的网络配置与端口

引言

做开发和运维的同学,几乎每天都会和网络打交道:部署服务后端口不通、服务器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网络配置与端口监听的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com