Linux常用命令大全,收集整理常用Linux命令,四、网络相关
查看什么进程使用了该端口
lsof -i:port
获取本机ip地址
/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"
iptables命令
# 查看iptables状态 service iptables status # 要封停一个ip iptables -I INPUT -s ***.***.***.*** -j DROP # 要解封一个IP,使用下面这条命令: iptables -D INPUT -s ***.***.***.*** -j DROP 备注: 参数-I是表示Insert(添加),-D表示Delete(删除)。后面跟的是规则,INPUT表示入站,***.***.***.***表示要封停的IP,DROP表示放弃连接。 #开启9090端口的访问 /sbin/iptables -I INPUT -p tcp --dport 9090 -j ACCEPT # 防火墙开启、关闭、重启 /etc/init.d/iptables status /etc/init.d/iptables start /etc/init.d/iptables stop /etc/init.d/iptables restart
nc命令, tcp调试利器
#给某一个endpoint发送TCP请求,就将data的内容发送到对端 nc 192.168.0.11 8000 < data.txt #nc可以当做服务器,监听某个端口号,把某一次请求的内容存储到received_data里 nc -l 8000 > received_data #上边只监听一次,如果多次可以加上-k参数 nc -lk 8000
tcpdump命令
# dump出本机12301端口的tcp包 tcpdump -i em1 tcp port 12301 -s 1500 -w abc.pcap
跟踪网络路由路径
# traceroute默认使用udp方式, 如果是-I则改成icmp方式 traceroute -I www.163.com # 从ttl第3跳跟踪 traceroute -M 3 www.163.com # 加上端口跟踪 traceroute -p 8080 192.168.10.11
ss命令
# 显示本地打开的所有端口 ss -l # 显示每个进程具体打开的socket ss -pl # 显示所有tcp socket ss -t -a # 显示所有的UDP Socekt ss -u -a # 显示所有已建立的SMTP连接 ss -o state established '( dport = :smtp or sport = :smtp )' # 显示所有已建立的HTTP连接 ss -o state established '( dport = :http or sport = :http )' 找出所有连接X服务器的进程 ss -x src /tmp/.X11-unix/* 列出当前socket统计信息 ss -s 解释:netstat是遍历/proc下面每个PID目录,ss直接读/proc/net下面的统计信息。所以ss执行的时候消耗资源以及消耗的时间都比netstat少很多
netstat命令
# 输出每个ip的连接数,以及总的各个状态的连接数 netstat -n | awk '/^tcp/ {n=split($(NF-1),array,":");if(n<=2)++S[array[(1)]];else++S[array[(4)]];++s[$NF];++N} END {for(a in S){printf("%-20s %s\n", a, S[a]);++I}printf("%-20s %s\n","TOTAL_IP",I);for(a in s) printf("%-20s %s\n",a, s[a]);printf("%-20s %s\n","TOTAL_LINK",N);}' # 统计所有连接状态, # CLOSED:无连接是活动的或正在进行 # LISTEN:服务器在等待进入呼叫 # SYN_RECV:一个连接请求已经到达,等待确认 # SYN_SENT:应用已经开始,打开一个连接 # ESTABLISHED:正常数据传输状态 # FIN_WAIT1:应用说它已经完成 # FIN_WAIT2:另一边已同意释放 # ITMED_WAIT:等待所有分组死掉 # CLOSING:两边同时尝试关闭 # TIME_WAIT:主动关闭连接一端还没有等到另一端反馈期间的状态 # LAST_ACK:等待所有分组死掉 netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}' # 查找较多time_wait连接 netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20
参考文章:Linux常用命令知识积累(持续更新)
参考来源:https://siye1982.github.io/2016/02/25/linux-list/
文章快照:Linux常用命令知识积累(持续更新) _ Panda
文章评论