如何检测aix 服务器上 某一个定制的端口是可用的

来源:互联网 发布:私人飞机知乎 编辑:程序博客网 时间:2024/05/29 16:04
http://blog.chinaunix.net/uid-26739173-id-3307003.html

http://www.aixchina.net/club/thread-1397-1-1.html
如何检测aix 服务器上 某一个定制的端口是可用的
AIX, 小型机, 端口
环境
产品aix ,平台pSeries ,机型All ,软件版本V4/v5
问题
有时候客户自己定义了一些特殊端口号,用于自己开发的程序使用,但是有时候程序报错不能使用该端口号,那么如何判断使客户应用程序调用端口号有问题还是我们OS 层面出的问题呢? 
解答
下面我们用一个例子来说明,如何测试我们OS 的端口号是可用的:
1。 首先编辑etc/service , 把我们的端口(这里以6666 为例子 )定义进去。 
psmd 6874/tcp # IPR update Tue Jul 12 14:58:34 BEIST 2005
pdeventd 6875/tcp # IPR update Tue Jul 12 14:58:34 BEIST 2005
iprp1 2050/tcp # IPR reserved port (generated by pdinitports)
iprp2 2051/tcp # IPR reserved port (generated by pdinitports)
iprp3 2052/tcp # IPR reserved port (generated by pdinitports)
iprp4 2053/tcp # IPR reserved port (generated by pdinitports)
iprp5 2054/tcp # IPR reserved port (generated by pdinitports)
iprp6 2055/tcp # IPR reserved port (generated by pdinitports)
iprp7 2056/tcp # IPR reserved port (generated by pdinitports)
iprp8 2057/tcp # IPR reserved port (generated by pdinitports)
iprp9 2058/tcp # IPR reserved port (generated by pdinitports)
iprp10 2059/tcp # IPR reserved port (generated by pdinitports)
telnet2 65535/tcp
telnet3 65536/tcp
telnet4 80000/tcp
haha 6666/tcp # testing for port available 
2。 在机器里抓取6666的信息看看是否该端口已经被别人用了 。 
netstat -an |grep 6666
3。 编辑 /etc/inetd.conf 
把我们的 haha 测试程序加进去 :
## name type nowait program arguments
##
ftp stream tcp6 nowait root /usr/sbin/ftpd ftpd
telnet stream tcp6 nowait root /usr/sbin/telnetd telnetd -ac
shell stream tcp6 nowait root /usr/sbin/rshd rshd
kshell stream tcp nowait root /usr/sbin/krshd krshd
login stream tcp6 nowait root /usr/sbin/rlogind rlogind
klogin stream tcp nowait root /usr/sbin/krlogind krlogind
exec stream tcp6 nowait root /usr/sbin/rexecd rexecd
#comsat dgram udp wait root /usr/sbin/comsat comsat
#uucp stream tcp nowait root /usr/sbin/uucpd uucpd
#bootps dgram udp wait root /usr/sbin/bootpd bootpd /etc/bootptab
##
## Finger, systat and netstat give out user information which may be
## valuable to potential "system crackers." Many sites choose to disable
## some or all of these services to improve security.
##
#finger stream tcp nowait nobody /usr/sbin/fingerd fingerd
#systat stream tcp nowait nobody /usr/bin/ps ps -ef
#netstat stream tcp nowait nobody /usr/bin/netstat netstat -f inet
#
#tftp dgram udp6 SRC nobody /usr/sbin/tftpd tftpd -n
#talk dgram udp wait root /usr/sbin/talkd talkd
ntalk dgram udp wait root /usr/sbin/talkd talkd
#
# rexd uses very minimal authentication and many sites choose to disable
# this service to improve security.
#
#rquotad sunrpc_udp udp wait root /usr/sbin/rpc.rquotad rquotad 100011 1
#rexd sunrpc_tcp tcp wait root /usr/sbin/rpc.rexd rexd 100017 1
#rstatd sunrpc_udp udp wait root /usr/sbin/rpc.rstatd rstatd 100001 1-3
#rusersd sunrpc_udp udp wait root /usr/lib/netsvc/rusers/rpc.rusersd rusersd 100002 1-2
#rwalld sunrpc_udp udp wait root /usr/lib/netsvc/rwall/rpc.rwalld rwalld 100008 1
#sprayd sunrpc_udp udp wait root /usr/lib/netsvc/spray/rpc.sprayd sprayd 100012 1
#pcnfsd sunrpc_udp udp wait root /usr/sbin/rpc.pcnfsd pcnfsd 150001 1-2
。。。。。。。。。。。。。。。。。
haha stream tcp nowait root /usr/sbin/ftpd ftpd  
4。 refresh inetd 
p6301.abc.com@/>refresh -s inetd
0513-095 The request for subsystem refresh was completed successfully. 
5. 检查是否端口6666已经可以用了 
p6301.abc.com@/>netstat -an |grep 6666
tcp4 0 0 172.16.18.13.6666 172.16.18.13.32859 ESTABLISHED
tcp 0 0 172.16.18.13.32859 172.16.18.13.6666 ESTABLISHED
tcp4 0 0 *.6666 *.* LISTEN
6。 用telnet 测试一下 :
p6301.abc.com@/>telnet 172.16.18.13 6666
Trying...
Connected to 172.16.18.13.
Escape character is '^]'.
220 p6301.abc.com FTP server (Version 4.1 Thu Dec 15 05:13:42 CST 2005) ready.
7 。这样就说明我们从OS 的角度来讲 , 端口6666 是非常正常的,如果客户使不了该端口,那么因该让客户对他们的应用
进行debug 来分析问题到底在那里 。 
8 别忘了恢复 inetd.conf 和serive , 以及refresh -s inetd .