我有 ubuntu 12.04 并且我无法在我的防火墙中允许某些端口。所以我基本上说我会允许一切,但它仍然不起作用。请帮忙。来自其他机器的这台机器上的 nmap 说:
$ nmap host_name
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
139/tcp open netbios-ssn
445/tcp open microsoft-ds
Run Code Online (Sandbox Code Playgroud)
这是来自同一台机器的 nmap
$ nmap localhost
Starting Nmap 5.21 ( http://nmap.org ) at 2014-01-21 11:14 PST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000080s latency).
Not shown: 991 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
80/tcp open http
139/tcp open netbios-ssn
445/tcp open microsoft-ds
631/tcp open ipp
3306/tcp open mysql
8000/tcp open http-alt
Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds
Run Code Online (Sandbox Code Playgroud)
我想打开端口 8000,这是 iptables 的输出。
# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
mmoghimi@titan:~$ sudo netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 14842/mysqld
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 982/smbd
tcp 0 0 127.0.0.1:39346 0.0.0.0:* LISTEN 3405/GoogleTalkPlug
tcp 0 0 127.0.0.1:50995 0.0.0.0:* LISTEN 3405/GoogleTalkPlug
tcp 0 0 127.0.0.1:5939 0.0.0.0:* LISTEN 2412/teamviewerd
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 2429/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 985/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1267/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1748/exim4
tcp 0 0 0.0.0.0:17500 0.0.0.0:* LISTEN 2885/dropbox
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 982/smbd
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN 4134/python
tcp6 0 0 :::139 :::* LISTEN 982/smbd
tcp6 0 0 :::80 :::* LISTEN 1832/apache2
tcp6 0 0 :::22 :::* LISTEN 985/sshd
tcp6 0 0 ::1:631 :::* LISTEN 1267/cupsd
tcp6 0 0 ::1:25 :::* LISTEN 1748/exim4
tcp6 0 0 :::445 :::* LISTEN 982/smbd
udp 0 0 127.0.0.1:53 0.0.0.0:* 2429/dnsmasq
udp 0 0 0.0.0.0:68 0.0.0.0:* 2403/dhclient
udp 0 0 128.54.44.214:123 0.0.0.0:* 3430/ntpd
udp 0 0 MYIP:123 0.0.0.0:* 3430/ntpd
udp 0 0 127.0.0.1:123 0.0.0.0:* 3430/ntpd
udp 0 0 0.0.0.0:123 0.0.0.0:* 3430/ntpd
udp 0 0 137.110.255.255:137 0.0.0.0:* 2602/nmbd
udp 0 0 MYIP:137 0.0.0.0:* 2602/nmbd
udp 0 0 128.54.47.255:137 0.0.0.0:* 2602/nmbd
udp 0 0 128.54.44.214:137 0.0.0.0:* 2602/nmbd
udp 0 0 0.0.0.0:137 0.0.0.0:* 2602/nmbd
udp 0 0 137.110.255.255:138 0.0.0.0:* 2602/nmbd
udp 0 0 MYIP:138 0.0.0.0:* 2602/nmbd
udp 0 0 128.54.47.255:138 0.0.0.0:* 2602/nmbd
udp 0 0 128.54.44.214:138 0.0.0.0:* 2602/nmbd
udp 0 0 0.0.0.0:138 0.0.0.0:* 2602/nmbd
udp 0 0 0.0.0.0:17500 0.0.0.0:* 2885/dropbox
udp 0 0 0.0.0.0:36889 0.0.0.0:* 1356/avahi-daemon:
udp 0 0 0.0.0.0:5353 0.0.0.0:* 1356/avahi-daemon:
udp6 0 0 ::1:123 :::* 3430/ntpd
udp6 0 0 fe80::fab1:56ff:fe9:123 :::* 3430/ntpd
udp6 0 0 fe80::3e77:e6ff:fe6:123 :::* 3430/ntpd
udp6 0 0 :::123 :::* 3430/ntpd
udp6 0 0 :::33792 :::* 1356/avahi-daemon:
udp6 0 0 :::5353 :::* 1356/avahi-daemon:
Run Code Online (Sandbox Code Playgroud)
fal*_*ner 25
您的iptables输出显示没有端口被阻止。
所以问题是:是否有任何东西在端口 8000 上侦听?如果没有任何东西在侦听端口,但该端口没有被防火墙阻止,nmap则会将其报告为closed. 从这里:
关闭
关闭的端口是可访问的(它接收并响应 Nmap 探测数据包),但没有应用程序监听它。它们有助于显示主机在 IP 地址上运行(主机发现或 ping 扫描),并作为操作系统检测的一部分。因为关闭的端口是可访问的,所以以后可能值得扫描,以防某些端口打开。管理员可能需要考虑使用防火墙阻止此类端口。然后它们会以过滤状态出现,接下来讨论。
所以nmap报告:"996 closed ports"实际上说这些端口没有被防火墙阻止,但没有程序在监听它们。nmap报告阻塞的端口为filtered:
过滤
Nmap 无法确定端口是否打开,因为包过滤阻止其探测到达该端口。过滤可能来自专用防火墙设备、路由器规则或基于主机的防火墙软件。...
因此,如果您将应用程序置于端口 8000 上的侦听状态,它可能会显示在nmap. 如果您只是运行python3 -m http.server或python -m SimpleHTTPServer在您尝试打开端口的机器上运行,您可以执行此操作,这将使 HTTP 服务器监听端口 8000。然后nmap再次运行以扫描机器。
更新:
你的netstat输出有这一行:
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN 4134/python
Run Code Online (Sandbox Code Playgroud)
这意味着你的 python 程序只在 localhost (127.0.0.1) 上监听,所以它只能从 localhost 访问,不能从外部访问。该程序必须侦听网络适配器的 IP 或通用 0.0.0.0 IP。问题是我上面写的,没有程序在监听 8000 端口(来自外部世界)所以nmap说它是关闭的。
| 归档时间: |
|
| 查看次数: |
195026 次 |
| 最近记录: |