当我尝试使用域名 ping 我的 apache2 服务器(运行在 Ubuntu Server 16.04 上)时,从任何计算机都可以成功。
但是,如果我尝试使用浏览器或 ssh 访问它,则找不到服务器。即使我等待了一段时间,Curling 也没有给出错误消息。
我在路由器后面设置了一个静态 IP。当我 curl localhost 时,我得到了预期的结果。当我 curl 或 ping 服务器本身以外的任何网站时,我得到了预期的结果。
在网络配置文件中添加 DNS 服务器后,出现了此问题。但是,删除该行无法解决问题,即使多次重启也是如此。
编辑:我检查路由器和防火墙上是否打开了正确的端口,并使用 netstat 检查 apache 是否在监听正确的端口。
答案1
您是否曾尝试使用 nmap 检查端口?
nmap -sT <IP-ADRESS>
应该显示服务器上的端口。
例如
nmap -sT XXX.XXX.XXX.XXX
Starting Nmap 7.01 ( https://nmap.org ) at 2018-05-30 00:06 CEST
Nmap scan report for XXX.XXX.XXX.XXX
Host is up (0.034s latency).
Not shown: 990 closed ports
PORT STATE SERVICE
21/tcp open ftp
53/tcp open domain
80/tcp open http
139/tcp open netbios-ssn
443/tcp open https
445/tcp open microsoft-ds
2002/tcp open globe
5060/tcp open sip
8089/tcp open unknown
8181/tcp open unknown
Nmap done: 1 IP address (1 host up) scanned in 3.84 seconds
答案2
问题是 IP 地址发生了变化。显然我不知怎么没有正确设置它。我可以 ping 通,因为我正在 ping 另一台随机计算机。如果我弄清楚了问题所在,我会将其添加到这个问题中。
答案3
假设有人想从 Windows 主机连接到 Linux VM,进行 ssh 登录或浏览 Web 服务器
- 如果您使用的是 Virtualbox/VMware,请确保已选择“桥接适配器“。这通常可以通过选择机器 -> 网络 -> 适配器 1 -> 连接到 -> 桥接适配器。
- 现在在 Linux VM 上,打开终端并运行是否配置命令获取其 IP 地址(inet 地址可能类似于 192.168.1.79)
- 在同一 Linux VM 上,确保端口已打开在 Ubuntu 上,您可以运行以下“简单防火墙”命令来打开端口:
sudo -s
ufw allow 22/tcp
ufw allow 3000:9000/tcp
以上允许您以 root 身份登录,然后允许
- ssh 端口 22
- mysql 或任何其他 tcp/http 服务器端口范围为 3000 至 9000