如何设置我的 Linux Azure VM 以便我可以通过浏览器连接?
How do I set up my Linux Azure VM so that I can connect via a browser?
我正在 Azure 上的一个 Linux VM 上工作,它是由其他人设置的(所以我不知道所有细节)。我正在尝试将其连接到域名。
服务器有一个 "Hello World" 程序,所以当我转到 "example.com" 时,我应该会看到 "Hello World"。目前我刚刚
Safari can't open the page "http://example.com" because Safari can't find the server "my domain.com"
我想我应该从确保 IP 地址连接到服务器开始(它曾经做过一次。所以我输入服务器的 IP 地址(假设它是“12.345.678.901”)浏览器,它无法连接...我收到错误
Can't open the page "12.345.678.901" because the server where this page is located isn't responding
有一个允许端口 8080 连接的入站端口规则,所以我尝试了“12.345.678.901:8080”,但这次得到了
Can't open the page "12.345.678.901:8080" because Safari can't connect to the server
我不知道接下来要尝试什么。大概需要在服务器上启用某些功能才能允许浏览器连接?
其他入站端口规则是端口 22 (TCP) 上的 ssh,然后我假设是标准的 Azure 规则(我无法编辑或删除它们)。
要在浏览器中查看您的 Linux 虚拟机,您需要安装网络服务器。最容易安装并立即开始工作的是 nginx。
您需要做的第一件事是使用计算机的用户名和 IP 地址通过 SSH(端口 22)连接到您的 VM:
ssh username@ipaddress
这将提示您输入密码以访问 VM。
这还假定您的 SSH public 密钥存在于虚拟机上的 ~/.ssh/authorized_keys
中。如果您没有此设置,则需要让 VM 的所有者将您的 public 密钥复制到此文件中。否则您将无法连接并收到 Permission denied (publickey)
错误。
假设以上工作正常,您可以使用以下两个命令安装 nginx 网络服务器:
sudo apt-get -y update
sudo apt-get -y install nginx
然后一旦安装了这个网络服务器,在网络设置中添加一个 HTTP 入站端口 80 规则。出于安全原因,让您的 Web 服务器监听此端口可能是长期不安全的。当您开始选择此端口时,它会更容易开始工作,因为它是默认端口。
可以通过查看服务器配置主机文件查看默认监听端口是什么 cat /etc/nginx/sites-available/default
:
#server {
# listen 80;
# listen [::]:80;
#
# server_name example.com;
#
# root /var/www/example.com;
# index index.html;
#
# location / {
# try_files $uri $uri/ =404;
# }
#}
显示默认端口 80。您可以将此默认端口更改为 8080,然后 运行 sudo service nginx restart
重新启动服务器并应用更改。此外,您可以查看此 How to make Nginx Server Listen on Multiple Ports 教程,该教程更深入地介绍了如何为 nginx 网络服务器配置侦听端口。
然后您应该能够从浏览器查看您的 VM window(出于安全原因,我的 IP 地址被模糊掉了):
您还可以查看此 Quickstart: Create a Linux virtual machine in the Azure portal 教程,逐步了解如何在 Azure 中进行此设置。
您应该首先检查您是否有 http://example.com 的条目。原因可能是您没有 DNS 条目,并且当您尝试通过浏览器连接到它时。由于您尝试通过 IP 连接到它但它仍然无法正常工作,我建议您检查您的网络服务器配置以确保它正确监听端口 8080。此外,确保您的网络服务器也已打开。您可以跟踪网络服务器日志并尝试像之前那样通过 IP 访问它,看看您是否在日志中看到任何错误。它至少会告诉您您在浏览器上发出的请求是否真的到达了网络服务器。
我正在 Azure 上的一个 Linux VM 上工作,它是由其他人设置的(所以我不知道所有细节)。我正在尝试将其连接到域名。
服务器有一个 "Hello World" 程序,所以当我转到 "example.com" 时,我应该会看到 "Hello World"。目前我刚刚
Safari can't open the page "http://example.com" because Safari can't find the server "my domain.com"
我想我应该从确保 IP 地址连接到服务器开始(它曾经做过一次。所以我输入服务器的 IP 地址(假设它是“12.345.678.901”)浏览器,它无法连接...我收到错误
Can't open the page "12.345.678.901" because the server where this page is located isn't responding
有一个允许端口 8080 连接的入站端口规则,所以我尝试了“12.345.678.901:8080”,但这次得到了
Can't open the page "12.345.678.901:8080" because Safari can't connect to the server
我不知道接下来要尝试什么。大概需要在服务器上启用某些功能才能允许浏览器连接?
其他入站端口规则是端口 22 (TCP) 上的 ssh,然后我假设是标准的 Azure 规则(我无法编辑或删除它们)。
要在浏览器中查看您的 Linux 虚拟机,您需要安装网络服务器。最容易安装并立即开始工作的是 nginx。
您需要做的第一件事是使用计算机的用户名和 IP 地址通过 SSH(端口 22)连接到您的 VM:
ssh username@ipaddress
这将提示您输入密码以访问 VM。
这还假定您的 SSH public 密钥存在于虚拟机上的 ~/.ssh/authorized_keys
中。如果您没有此设置,则需要让 VM 的所有者将您的 public 密钥复制到此文件中。否则您将无法连接并收到 Permission denied (publickey)
错误。
假设以上工作正常,您可以使用以下两个命令安装 nginx 网络服务器:
sudo apt-get -y update
sudo apt-get -y install nginx
然后一旦安装了这个网络服务器,在网络设置中添加一个 HTTP 入站端口 80 规则。出于安全原因,让您的 Web 服务器监听此端口可能是长期不安全的。当您开始选择此端口时,它会更容易开始工作,因为它是默认端口。
可以通过查看服务器配置主机文件查看默认监听端口是什么 cat /etc/nginx/sites-available/default
:
#server {
# listen 80;
# listen [::]:80;
#
# server_name example.com;
#
# root /var/www/example.com;
# index index.html;
#
# location / {
# try_files $uri $uri/ =404;
# }
#}
显示默认端口 80。您可以将此默认端口更改为 8080,然后 运行 sudo service nginx restart
重新启动服务器并应用更改。此外,您可以查看此 How to make Nginx Server Listen on Multiple Ports 教程,该教程更深入地介绍了如何为 nginx 网络服务器配置侦听端口。
然后您应该能够从浏览器查看您的 VM window(出于安全原因,我的 IP 地址被模糊掉了):
您还可以查看此 Quickstart: Create a Linux virtual machine in the Azure portal 教程,逐步了解如何在 Azure 中进行此设置。
您应该首先检查您是否有 http://example.com 的条目。原因可能是您没有 DNS 条目,并且当您尝试通过浏览器连接到它时。由于您尝试通过 IP 连接到它但它仍然无法正常工作,我建议您检查您的网络服务器配置以确保它正确监听端口 8080。此外,确保您的网络服务器也已打开。您可以跟踪网络服务器日志并尝试像之前那样通过 IP 访问它,看看您是否在日志中看到任何错误。它至少会告诉您您在浏览器上发出的请求是否真的到达了网络服务器。