文章目录
- 问题
- 尝试方案
- 实际解决过程
- 安装tcpdump
- 监听
- 定位问题
- 配置iptales
- 关于filewall和iptables的区别
问题
笔者在配置nginx对某个网站的代理时,在浏览器访问对应地址报连接被重置的错误。
尝试方案
笔者确认地址无误后,查看了nginx配置也没有问题。随尝试telnet测试连通性,确定没有问题。
一再确认上述问题无误后,使用curl命令在服务器尝试访问对应网站地址。发现可以访问。
随查看nginx的access.log,发现并没有本机浏览器访问服务器的记录。于是便使用tcpdump排查分析问题
实际解决过程
安装tcpdump
yum -y install tcpdump
监听
由于笔者访问的是服务器3000端口,于是就开一个tcpdump抓3000端口的包
tcpdump -i any tcp and port 3000
定位问题
这时笔者再次使用浏览器访问ip:3000后,发现问题所在,如下图所示,在服务器抓包记录中,我们看到浏览器请求的包,却没有看到服务器对客户端发的ack确认包,说明我们的请求包可能被服务器丢掉了。
配置iptales
于是笔者在iptabls配置了一个3000端口的accept命令
iptables -I INPUT -p tcp --dport 3000 -j ACCEPT
最终问题解决,键入ip:3000也看到了需要的页面
再次使用tcpdump监听3000,此时的tcp交互如下图所示
关于filewall和iptables的区别
这里笔者还在研究,具体可以参考这篇文章
Linux–防火墙{Firewalld和Iptables的关系,iptables四表五链,firewalld网络区域以及通过图形工具进行操作}