特别是RHEL 6.5
这是一个开发盒,我们有一些允许开发使用的端口范围。 ...不幸的是,让技术人员注意找出可用的端口就像拔牙一样。更喜欢这样做的脚本或别名,这样我们就不必一直询问。线索?这是一个iptables命令还是一个netstat命令或一些奇怪的组合? nmap在此计算机上不可用。
请不要说这是服务器故障问题。他们说这是一个编程问题。 : - |
答案 0 :(得分:1)
绝对是一个SF问题,但我们走了。从开发框本身(命令行),您应该能够使用netstat
工具查看哪些端口正在使用。
要查看UDP和TCP的侦听端口列表,请填写程序名称:
# preferably as root
netstat --listening --program --numeric-ports --protocol=ip -6 -4
在另一台计算机上,您可以使用nmap
或类似工具通过扫描分配给开发框的IP地址来查看打开/侦听的端口。在尝试之前,也许你应该请求许可。此外,您应该考虑相关的框可能有防火墙规则,可以阻止您的扫描尝试。
要查看开发框中的防火墙规则,请尝试:
# as root
iptables -nvxL -t filter
# maybe there are NAT rules, redirects to other addresses, etc.
iptables -nvxL -t nat
要了解这些iptables
选项的作用,请尝试man iptables
。
例如,假设172.16.0.1
是分配给开发框的IP地址,以尽可能最简单的方式运行nmap
:
# preferably as root
nmap -v 172.16.0.1
在几分钟内,您应该会看到相关框中的端口/服务列表。
请尝试man nmap
并阅读文档以获取更多详细信息。
如果你真的认为这是一个编程问题,你可以使用netcat
工具和程序一个简单的脚本做一些大致相当于{{ {1}}确实。
nmap
对于每个打开的TCP端口,您应该看到与此类似的行:
#!/bin/bash
#
# DISCLAIMER: NOT TESTED -- just an example
# NOTE: This will take many DAYS to complete
HOST=172.16.0.1
for port in `seq 1 65535`
do
echo "Trying ${port}..."
netcat -vvv ${HOST} $port -w 1 -z
done