原创作品,出自 “深蓝的blog” 博客,深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/47055479
查看操作系统端口占用情况
1、win操作系统下开始-运行,输入CMD打开命令行界面,输入命令如下:
语法:netstat -ano | findstr "端口号"
下面查询一下8000端口,如下说明8000端口没有被占用,可以考虑使用,如下:
补充一些知识:
想通过进程号进一步查看进程名称,语法:tasklist | findstr "PID"如下:
在到任务管理器看一下进程名对应的内存消耗等,如下:
2、linux操作系统下
如果通过ps来查看,如下:
[root@node1 ~]# ps -ef |grep 80 |grep -v grep
root 1980 1979 0 11:01 ? 00:00:00 hald-runner
68 1991 1980 0 11:01 ? 00:00:00 hald-addon-keyboard: listening on /dev/input/event0
68 1993 1980 0 11:01 ? 00:00:00 hald-addon-acpi: listening on acpid socket /var/run/acpid.socket
root 1998 1980 0 11:01 ? 00:00:39 hald-addon-storage: polling /dev/hdc
root 3800 1 0 11:03 ? 00:00:03 /u01/11.2.0/grid/bin/orarootagent.bin
grid 4080 1 0 11:04 ? 00:00:00 asm_smon_+ASM1
或者用netstat来查看一下。
语法:netstat -antu|grep 端口号
查询端口号名称含有80的连接情况,如下:
[root@node1 ~]# netstat -antu|grep 80
tcp 0 0 127.0.0.1:6100 127.0.0.1:37380 TIME_WAIT
udp 0 0 127.0.0.1:28041 0.0.0.0:*
udp 0 0 10.53.105.20:13580 0.0.0.0:*
udp 0 0 10.53.105.20:31800 0.0.0.0:*
udp 0 0 127.0.0.1:51680 0.0.0.0:*
udp 0 0 127.0.0.1:38002 0.0.0.0:*
udp 0 0 127.0.0.1:50805 0.0.0.0:*
[root@node1 ~]# netstat -antu|grep 8000
--查看发现8000端口没有程序使用
补充知识:
看一下,netstat的功能很强大,不仅可以查看到端口使用情况,还可以显示网络状态的信息,得知整个Linux系统的网络情况,比如网络连接、路由表、接口统计、伪装连接、组播成员。
[root@node1 ~]# netstat -help
usage: netstat [-veenNcCF] [
netstat [-vnNcaeol] [
netstat { [-veenNac] -I[
-r, --route display routing table
-I, --interfaces=[
-i, --interfaces display interface table
-g, --groups display multicast group memberships
-s, --statistics display networking statistics (like SNMP)
-M, --masquerade display masqueraded connections
-v, --verbose be verbose
-n, --numeric don't resolve names
--numeric-hosts don't resolve host names
--numeric-ports don't resolve port names
--numeric-users don't resolve user names
-N, --symbolic resolve hardware names
-e, --extend display other/more information
-p, --programs display PID/Program name for sockets
-c, --continuous continuous listing
-l, --listening display listening server sockets
-a, --all, --listening display all sockets (default: connected)
-o, --timers display timers
-F, --fib display Forwarding Information Base (default)
-C, --cache display routing cache instead of FIB
-T, --notrim stop trimming long addresses
-Z, --context display SELinux security context for sockets
List of possible address families (which support routing):
inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)
netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP)
x25 (CCITT X.25)
[root@node1 ~]# netstat -i
--显示网络接口状态
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 1661 0 0 0 10226 0 0 0 BMRU
eth1 1500 0 775514 0 0 0 680251 0 0 0 BMRU
eth1:1 1500 0 - no statistics available - BMRU
eth1:3 1500 0 - no statistics available - BMRU
lo 16436 0 424397 0 0 0 424397 0 0 0 LRU
peth0 1500 0 1677 0 0 0 10244 0 0 0 BORU
vif0.0 1500 0 10226 0 0 0 1661 0 0 0 BORU
virbr0 1500 0 0 0 0 0 154 0 0 0 BMRU
xenbr0 1500 0 11887 0 0 0 0 0 0 0 BORU
[root@node1 ~]# netstat -r
--显示内核路由表信息
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
10.53.105.0 * 255.255.255.0 U 0 0 0 eth1
10.53.105.0 * 255.255.255.0 U 0 0 0 eth0
192.168.122.0 * 255.255.255.0 U 0 0 0 virbr0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth0
[root@node1 ~]# netstat -tulnp
--检查系统上开放端口的情况
--显示协议、端口号、本地地址、目的地址、状态、进程号、程序名等信息
[root@node1 ~]# netstat -tulnp |grep 80
--检查系统上开放有关“80”名的端口的情况
udp 0 0 127.0.0.1:28041 0.0.0.0:* 4194/oracle+ASM1_oc
udp 0 0 10.53.105.20:31241 0.0.0.0:* 4080/asm_smon_+ASM1
udp 0 0 127.0.0.1:36234 0.0.0.0:* 4080/asm_smon_+ASM1
udp 0 0 127.0.0.1:50314 0.0.0.0:* 3800/orarootagent.b
udp 0 0 10.53.105.20:13580 0.0.0.0:* 4104/asm_lck0_+ASM1
udp 0 0 127.0.0.1:54438 0.0.0.0:* 3800/orarootagent.b
udp 0 0 127.0.0.1:53678 0.0.0.0:* 3800/orarootagent.b
udp 0 0 10.53.105.20:55988 0.0.0.0:* 4080/asm_smon_+ASM1
udp 0 0 10.53.105.20:31800 0.0.0.0:* 4076/asm_ckpt_+ASM1
udp 0 0 127.0.0.1:51680 0.0.0.0:* 3800/orarootagent.b
udp 0 0 127.0.0.1:54884 0.0.0.0:* 3800/orarootagent.b
udp 0 0 127.0.0.1:43621 0.0.0.0:* 3800/orarootagent.b
udp 0 0 127.0.0.1:38002 0.0.0.0:* 3798/cssdagent
udp 0 0 127.0.0.1:50805 0.0.0.0:* 4153/asm_asmb_+ASM1
[root@node1 ~]# netstat -tulnp
netstat的命令:
结合netstat做一个小结,再补充些知识点,如下:
netstat命令,可以显示路由表、实际的网络连接以及每一网络接口设备的状态信息。
还可以查看本机启动了什么服务,端口是什么以及当前网络状态。
当启动某个服务表现异常,也可以利用netstat来查找原因。
之所以netstat可以实现如此多的功能,因为这是一个多种工具的汇总。
举几个小例子:
[root@xckydb /]# netstat -nta
--只列出所有TCP的网络情况
注释:
Proto:连线的封包协议;
Recv-Q:非连接本socket的用户程序所复制的总bytes数;
Send-Q:没有被远端主机ACK的总bytes数,主要指SYN或其它标志的数据包所占的bytes数;
Local Address:本地地址与端口;
Foreign Address:远程地址与端口;
State:内部地址与外部地址的连接状态,细化如下:
ESTABLISED:经过TCP三次握手已建立连接;
SYN_SENT:表示请求连接。SYN_SENT状态应该是非常短暂;
SYN_RECV:接收到一个要求连线的主动连线封包;
FIN_WAIT1:socket已中断,该连线正在断线中;
FIN_WAIT2:该连线已挂断,但正在等待对方回应断线确认包;
TIME_WAIT:该连线已挂断,但socket还在网络上等待结束;
LISTEN:此博爱是处于侦听状态,该端口是开放的,等待连接。
使用netstat输出信息分为两部分:
部分一:TCP/IP
部分二:Unix socket(用于本机内的进程间通信)
读《linux就是这个范》时,知道了一些知识,摘抄如下:
SYN_SENT状态应该是非常短暂。如果发现SYN_SENT非常多且在向不同的机器发出,那你的机器可能中了冲击波或震荡波之类的病毒。这类病毒为了感染别的计算机,他就要扫描别的计算机,在扫描的过程中对每个要扫描的计算机都要发出同步请求,这就是出现许多SYN_SENT的原因。当然,这些情况大多是发生在windows下,既然你已经选择了linux,应该是很少再为病毒所恼。
作为服务器,重点看的是LISTEN状态和ESTABLISED状态。LISTEN是本机开了哪些端口;ESTABLISED是谁在访问你的机器,从哪个地址访问的,是不是一个正常程序发起的。在windows系统上看ESTABLISED状态时一定要注意是不是IEXPLORE.EXE程序(IE)发起的连接,如果是IEXPLORE.EXE之类的程序发起的连接,也许是你的计算机中了木马。
补充:关于linux服务端口的设置问题。
在大多数LINUX发行版下,我们可以找到/etc/services文件,这是一个字典文件,说明服务与端口的对应关系。
内容类似如下:
这其中有诸如此类信息,如下:
ftp 20/tcp
ftp 21/tcp
ssh 22/tcp
telnet 23/tcp
这些看来是给服务分配端口用,但是实际上这个文件并没有这个作用。他只是给netstat命令参考的,因为当你不给它传递"-n"这个命令选项时,是能够输出服务名的。netstat之所以能够做到这一点,就是/etc/services文件所起的作用。
另外查看到一个知识点:
再补充一下,通过网络服务名来查看所使用的端口信息。
查看某服务的端口号,举例如下:
[root@node1 ~]# grep telnet /etc/services
--/etc/services:功能是将网络服务名转换为端口号/协议
telnet 23/tcp
telnet 23/udp
rtelnet 107/tcp # Remote Telnet
rtelnet 107/udp
telnets 992/tcp
telnets 992/udp
skytelnet 1618/tcp # skytelnet
skytelnet 1618/udp # skytelnet
hp-3000-telnet 2564/tcp # HP 3000 NS/VT block mode telnet
tl1-telnet 3083/tcp # TL1-TELNET
tl1-telnet 3083/udp # TL1-TELNET
telnetcpcd 3696/tcp # Telnet Com Port Control
telnetcpcd 3696/udp # Telnet Com Port Control
scpi-telnet 5024/tcp # SCPI-TELNET
scpi-telnet 5024/udp # SCPI-TELNET
ktelnet 6623/tcp # Kerberos V5 Telnet
ktelnet 6623/udp # Kerberos V5 Telnet
*******************************************蓝的成长记系列****************************************************
原创作品,出自 “深蓝的blog” 博客,欢迎转载,转载时请务必注明出处(http://blog.csdn.net/huangyanlong)。
蓝的成长记——追逐DBA(1):奔波于路上,挺进山东
蓝的成长记——追逐DBA(2):安装!安装!久违的记忆,引起我对DBA的重新认知
蓝的成长记——追逐DBA(3):古董上操作,数据导入导出成了问题
蓝的成长记——追逐DBA(4):追忆少年情愁,再探oracle安装(Linux下10g、11g)
蓝的成长记——追逐DBA(5):不谈技术谈业务,恼人的应用系统
蓝的成长记——追逐DBA(6): 做事与做人:小技术,大为人
蓝的成长记——追逐DBA(7):基础命令,地基之石
蓝的成长记——追逐DBA(8):重拾SP报告,回忆oracle的STATSPACK实验
蓝的成长记——追逐DBA(9):国庆渐去,追逐DBA,新规划,新启程
蓝的成长记——追逐DBA(10):飞刀防身,熟络而非专长:摆弄中间件Websphere
蓝的成长记——追逐DBA(11):回家后的安逸,晕晕乎乎醒了过来
蓝的成长记——追逐DBA(12):七天七收获的SQL
蓝的成长记——追逐DBA(13):协调硬件厂商,六个故事:所见所感的“服务器、存储、交换机......”
蓝的成长记——追逐DBA(14):难忘的“云”端,起步的hadoop部署
蓝的成长记——追逐DBA(15):以为FTP很“简单”,谁成想一波三折
蓝的成长记——追逐DBA(16):DBA也喝酒,被捭阖了
蓝的成长记——追逐DBA(17):是分享,还是消费,在后IOE时代学会成长
******************************************************************************************************************
********************************************足球与oracle系列*************************************************
原创作品,出自 “深蓝的blog” 博客,欢迎转载,转载时请务必注明出处(http://blog.csdn.net/huangyanlong)。
足球与oracle系列(1):32路诸侯点兵,oracle32进程联盟 之A组巴西SMON进程的大局观
足球与oracle系列(2):巴西揭幕战预演,oracle体系结构杂谈
足球与oracle系列(3):oracle进程排名,世界杯次回合即将战罢!
足球与oracle系列(4):从巴西惨败于德国,想到,差异的RAC拓扑对比!
足球与oracle系列(5):fifa14游戏缺失的directX库类比于oracle的rpm包!
足球与oracle系列(6):伴随建库的亚洲杯——加油中国队
******************************************************************************************************************