我想访问我机器的 http rest 服务(公开在端口 5000 上),但我只能通过访问来实现localhost:5000
,而不能通过我的 IP192.168.1.1:5000
来实现。192.168.1.1
我之后尝试过
nc -l localhost 5001
和
nc localhost 5001 // works
nc 192.168.1.1 5001 //doesn't work
当我尝试从其他设备访问它时,也会发生同样的情况。输出形式netstat
tcp 0 0 127.0.0.1:5000 0.0.0.0:* LISTEN 29622/python
我在这里遗漏了什么?
编辑
另一方面,ssh
两种用法均可用。该机器上没有运行 iptables。
编辑
有趣的
$ sudo nmap -sS 192.168.1.1/32
Starting Nmap 6.40 ( http://nmap.org ) at 2014-09-17 00:20 CEST
Nmap scan report for XXXXX.home (192.168.1.1)
Host is up (0.0000060s latency).
Not shown: 998 closed ports
PORT STATE SERVICE
222/tcp open rsh-spx
5500/tcp open hotline
Nmap done: 1 IP address (1 host up) scanned in 2.42 seconds
$ sudo nmap -sS localhost/32
Starting Nmap 6.40 ( http://nmap.org ) at 2014-09-17 00:20 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000060s latency).
Not shown: 994 closed ports
PORT STATE SERVICE
222/tcp open rsh-spx
631/tcp open ipp
5000/tcp open upnp
5001/tcp open commplex-link
5500/tcp open hotline
8600/tcp open asterix
Nmap done: 1 IP address (1 host up) scanned in 2.44 seconds
答案1
默认情况下,SSH 会监听所有接口。我认为您正在运行的服务只监听本地主机接口(lo
或127.0.0.1
)。通过正确配置相关服务,您可以监听所有接口。
例如,Tor 可以这样配置:
SocksListenAddress 0.0.0.0:8050
ApacheVirtualHost
定义指定*:80
,等等。