linuxクイッククエリーポート占有プログラム
4594 ワード
仕事中、ポートの占有によってサービスが起動できない場合がよくあります.この場合、通常、問題を解決するには3つのステップが必要です.
1.ポートを占有するプログラムpid(netstat-tunlp|grep pid)を見つける
2.pidでプログラムを確認して確定する(ps aux|grep pid)
3.killこのプログラムを削除し、サービスを再起動すればよい(kill-9 pid)
例は次のとおりです.
5140ポートを表示する場合、netstat-tunlp|grep 5140
いくつかのパラメータの意味について
プロセスの表示
最後にkillプロセスで
監視ポートに使用されるスクリプトを貼り付けます(http://www.cnblogs.com/wangtao1993/p/6144183.html )
実行結果は次のとおりです.
1.ポートを占有するプログラムpid(netstat-tunlp|grep pid)を見つける
2.pidでプログラムを確認して確定する(ps aux|grep pid)
3.killこのプログラムを削除し、サービスを再起動すればよい(kill-9 pid)
例は次のとおりです.
5140ポートを表示する場合、netstat-tunlp|grep 5140
# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 4814/rpcbind
tcp 0 0 0.0.0.0:5908 0.0.0.0:* LISTEN 25492/qemu-kvm
tcp 0 0 0.0.0.0:6996 0.0.0.0:* LISTEN 22065/lwfs
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 38296/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 5278/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 5013/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 5962/master
tcp 0 0 0.0.0.0:8666 0.0.0.0:* LISTEN 44868/lwfs
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 22065/lwfs
[root@gy01 jar]# netstat -unlp | grep 5140
udp 0 0 0.0.0.0:5140 0.0.0.0:* 26805/java
いくつかのパラメータの意味について
-t (tcp) tcp
-u (udp) udp
-n ,
-l Listen( )
-p
プロセスの表示
[root@gy01 jar]# ps -aux | grep 26805
root 20678 0.0 0.0 112676 976 pts/0 S+ 12:00 0:00 grep --color=auto 26805
flume 26805 4.5 9.8 29811516 13009992 ? Sl 12 03 117:25 /home/flume/software/java/bin/java -XX:-UseLoopPredicate -XX:CompileCommand=exclude,org.apache.flume.source.kafka.KafkaSourceManager$KafkaConsumerRunnable::run -Xms20g -Xmx20g -XX:MaxDirectMemorySize=512M -XX:+UseG1GC -Dcom.sun.management.jmxremote -Daudit.properties.conf=/home/flume/software/flume-1.6.1.6/bin/../conf/log_audit.properties -Dfield.map.conf=/home/flume/software/flume-1.6.1.6/bin/../conf/field_map.properties -Dflume.root.logger=INFO,LOGFILE -Dflume.kerberos.enabled=true -cp /home/flume/software/flume-1.6.1.6/conf:/home/flume/software/flume-1.6.1.6/lib/*:/home/flume/software/flume-1.6.1.6/plugins.d/elasticSearch-sink/lib/*:/home/flume/software/flume-1.6.1.6/plugins.d/kafka-source/lib/*:/home/flume/software/hadoop-2.7.2.4/etc/hadoop:/home/flume/software/hadoop-2.7.2.4/share/hadoop/common/lib/activation-1.1.jar:/home/flume/software/hadoop-2.7.2.4/share/hadoop/common/lib/apacheds-i18n-2.0.0-M15.jar:/home/flume/software/hadoop-2.7.2.4/share/hadoop/common/lib/apacheds-kerberos-codec-2.0.0-M15.jar:/home/flume/software/hadoop-2.7.2.4/share/hadoop/common/lib/api-asn1-api-1.0.0-M20.jar:/home/flume/software/hadoop-2.。。。。。。。。。。。。。。。。。。。。。。。。。。
最後にkillプロセスで
[root@gy01 ~]# kill -9 20893
監視ポートに使用されるスクリプトを貼り付けます(http://www.cnblogs.com/wangtao1993/p/6144183.html )
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import socket, time, thread
socket.setdefaulttimeout(3) #
def socket_port(ip, port):
"""
IP ,
"""
try:
if port >=65535:
print u' '
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result=s.connect_ex((ip, port))
if result==0:
lock.acquire()
print ip,u':',port,u' '
lock.release()
except:
print u' '
def ip_scan(ip):
"""
IP, IP 0-65534
"""
try:
print u' %s' % ip
start_time=time.time()
for i in range(0,65534):
thread.start_new_thread(socket_port,(ip, int(i)))
print u' , :%.2f' %(time.time()-start_time)
# raw_input("Press Enter to Exit")
except:
print u' ip '
if __name__=='__main__':
url=raw_input('Input the ip you want to scan: ')
lock=thread.allocate_lock()
ip_scan(url)
実行結果は次のとおりです.
# python scan_port.py
Input the ip you want to scan: 20.0.208.112
20.0.208.112
20.0.208.112 : 111
20.0.208.112 : 22
20.0.208.112 : 8000
20.0.208.112 : 15996
20.0.208.112 : 41734
, :9.38