服务器网络不通排查方案
最近遇到了服务器上服务已经启动,但是在浏览器上无法访问的问题,记录一下排查流程
netstart排查网络连接信息
netstat 命令
netstat 命令用于显示各种网络相关信息,如网络连接、路由表、接口统计等。它可以帮助系统管理员和网络工程师监视和诊断网络问题。
常见用法和功能:
- 显示网络连接信息:默认情况下,netstat 显示系统上的所有网络连接信息。
- 显示路由表:通过 -r 参数,可以显示系统的路由表,展示了数据包将如何被路由的信息。
- 显示网络接口统计:使用 -i 参数,可以显示网络接口的统计信息,如数据包的接收和发送情况。
- 显示监听状态:通过 -l 参数,可以显示正在监听的套接字(socket)信息,即哪些服务正在监听网络连接。
- 显示进程信息:通过 -p 参数,可以显示与网络连接相关联的进程信息,包括 PID 和进程名。
- 显示数字化信息:使用 -n 参数,可以显示数字化的 IP 地址和端口号,而不是尝试解析为主机名或服务名。
# 这条命令将显示所有的网络连接信息,并使用数字格式显示 IP 地址和端口号。
netstat -an
netstat -aptn 命令
netstat -aptn 是 netstat 命令的一个常见用法,通常用于详细列出系统上所有的网络连接和相关进程信息。
详细解释:
-
-a 参数:显示所有的网络连接,包括正在进行的连接和监听状态的连接。
-
-p 参数:显示与网络连接相关联的进程信息(PID 和进程名)。
-
-t 参数:仅显示 TCP 协议相关的连接信息。
-
-n 参数:以数字格式显示 IP 地址和端口号,而不进行主机名和服务名的解析。
# 这条命令将列出所有的 TCP 协议连接信息,并显示每个连接对应的 PID 和进程名。这对于诊断哪些进程正在使用网络以及它们的连接状态非常有用。
netstat -aptn
iptables
- iptables 简介:iptables 是 Linux 系统中用于网络包过滤、NAT 和日志记录的工具。它工作在内核层面,允许管理员定义规则,这些规则决定如何处理经过网络接口的数据包。
- 配置文件:iptables 规则可以直接通过命令行设置,也可以通过脚本批量设置。虽然 /etc/iptables.sh 不是 iptables 的标准配置文件,但管理员可能会用它来保存特定的 iptables 配置命令。
- 规则内容:iptables 规则可能包括允许或阻止特定类型的网络流量、重定向流量、修改数据包等。这些规则通常根据源和目标 IP 地址、端口号、协议类型等因素来定义。
一个典型的 /etc/iptables.sh 脚本可能包含以下内容:
# 这个脚本首先清除所有现有的 iptables 规则,设置默认策略为拒绝所有流量,然后定义了几条新的规则,如允许本地环回接口的流量和对外开放 80 端口。
#!/bin/bash
# 清除所有现有规则
iptables -F
# 设置默认策略为拒绝
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# 允许来自本机的所有流量
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# 允许与已建立连接的外部主机通信
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 允许外部访问 80 端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# 查看iptables内容
vim /etc/iptables.sh # 执行iptables.sh 脚本,使得相关配置生效
/etc/iptables.sh