前提要了解tcp/ip相关的知识。了解shell编程的知识。
网络状态查看
Linux主要是用net-tools 工具包内的一些常用命令
- ifconfig 查看网卡
- mii-tool 查看网线连接情况
- route:查看网关 route -n (使用 -n参数 可以不解析主机名)
网络配置修改:
1.修改网卡(重启后就会失效):
ifconfig<接口><ip地址> [netmask 子网掩码] #修改网卡ip地址
ifup <接口> # 网卡启动
ifdown<接口> # 网卡关闭
2.添加网关(重启后就会失效):
route add default gw <网关ip>
route add -host<指定ip> gw<网关ip>
route add -net<指定网段> netmask<子网掩码> gw <网关ip>
要想一直生效,就需要修改网络的配置文件(.config)。
网络故障排除:
思路:
1.首先先检测当前主机和目标主机是否畅通(判断有无网络中断、防火墙阻隔等原因),其实就是看icmp协议有没有开。如ping:
ping -c3 -i2
2.检测当前主机到目标主机的网络状况(这是为了辅助ping使用,如果ping通,但是还是连不通,很可能是网络质量,追踪路由,追踪每一跳是否出现问题,解决数据包丢失)
1.traceroute(追踪路由)
traceroute -w 1
2.mtr(追踪路由显示更详细的内容)
3.如果主机的故障排除,很可能是端口的问题,那么就用telnet解决端口问题。telnet (查看端口信息) telnet www.baidu.com 80
4.如果端口问题排除了,我们就要更细致的抓取和分析数据包 tcpdump(抓包)
tcpdump -i any -n port 80 #抓取任意网卡访问80 端口的数据包,不解析成域名
tcpdump -i any -n host 10.0.0.1 -w /tmp/file #把数据包保存下来
5.我们可以通过查netstat,查询服务的状态(是否在监听)
除此之外,我们可以获取连接信息,流量统计,性能优化。监控服务器的状态(监控网站等等)。
比如:我们用一些组合命令shell编程
netstat -ntpl #显示ip,tcp, 显示进程号,显示状态listen
netstat | less #翻页显示
netstat -at #(只显示当前tcp的连接)显示监听的tcp端口和连接的tcp端口
netstat -au #(只显示udp信息)
netstat -l #(正在监听的端口)查看自己的服务有没有开启(web服务等)
netstat -c #监控连接状态(不同的刷新,只要有连接进来了,就显示)监控连接状态
netstat -t #查看tcp连接情况,不断刷新(进行域名解析)
netstat -tn #不进行域名解析
#还可以进行统计,通过组合命令(学好shell)
netstat -tn| grep ip地址:端口|wc -l #只计算连接到我某个服务端口的客户机数量
netstat -nt | grep :80 | awk ' {print $5}' | awk -F ":" '{print $1}' | sort | uniq -c | sort -r - n #计算哪个客户机ip地址连接我的服务器的个数
欢迎关注本人的公众号:追求极简主义的程序媛,更多精彩内容敬请期待。。。