从同一网络中的其他计算机访问在 Ubuntu 中运行的 Web 应用程序

从同一网络中的其他计算机访问在 Ubuntu 中运行的 Web 应用程序

我在 Ubuntu 22 中运行一个应用程序,它在端口 8000 上部署了一个 Web 服务器,可以通过浏览器访问http://127.0.0.1:8000/(来自同一台机器)。我想从网络中的其他机器访问此 URL,因此我尝试使用 IP 地址http://192.168.1.21:8000(而不是本地主机;127.0.0.1)并且我检查了防火墙中是否打开了端口 8000...但到目前为止,我无法从 Ubuntu 计算机外部访问此网站...我想知道我是否需要在 Ubuntu 中配置其他内容才能使其正常工作。在 Windows 中,您可以使用计算机的 IP 地址访问在本地主机上运行的任何 Web 服务器(假设防火墙中打开了端口),但在 Ubuntu 中似乎并非如此?请注意,我没有安装和运行 Apache 之类的 Web 服务器,但应用程序本身部署了一个 Web 服务器,因此我认为不需要这样做。

提前感谢 Gus

答案1

Linux操作系统在网络服务方面与Windows类似。运行服务并在防火墙上开放端口即可。

但要小心。应用程序可以仅有的开放端口本地访问您可以通过确保网络服务的监听地址不是 0.0.0.0,而是 127.0.0.1 来发现这一点。

使用netstat命令并注意第三列。带参数的完整命令如下。

以下案例显示了两个服务,其中一个仅在本地监听(TCP 端口 5939),另一个可通过网络从其他地址访问(TCP 端口 10000)。

tcp        0      0 127.0.0.1:5939          0.0.0.0:*               LISTENING  2638/teamviewerd    
tcp        0      0 0.0.0.0:10000           0.0.0.0:*               LISTENING  2797/perl           

我假设您的 Web 服务器的 IP 地址为 192.168.1.21。请在此处附上以下命令的系统响应:

服务器

sudo netstat -lntp

sudo iptables-save | grep -C 3 8000

同一网络中的另一台电脑(操作系统 Linux)

ping -c 3 192.168.1.21

nc -4zv 192.168.1.21 8000

netcat( nc) 可以通过以下方式安装:

sudo apt update
sudo apt install netcat-openbsd

相关内容