0

我有一个 vm 在 azure 上运行。我想打开那个虚拟机的一个端口。

目前我无法访问 azure 门户。但我可以通过 ssh 访问虚拟机。我拥有所有权限。是否可以向外部打开入站/出站端口?

4

2 回答 2

0

默认情况下允许出站流量。

答案(入站)实际上取决于是否创建了 NSG 并将其附加到您的 VM NIC。除非在创建过程中在门户中切换了该选项,或者它是使用没有 NSG 的 ARM 模板创建的,否则它将有一个,这是默认设置。

NSG 充当访问控制列表,无法使用本机操作系统工具对其进行管理,除非您同时 (1) 启用 VM 托管标识,并且 (2) 在 NSG 上授予托管标识修改资源的权限。执行此操作的过程非常复杂,可能不适合在这里写,因为我没有看到它的有效用例。

要在 Linux 中简单地打开一个入站端口,您可以使用:

sudo iptables -A INPUT -p tcp --dport [PORT-HERE] -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport [PORT-HERE] -m conntrack --ctstate ESTABLISHED -j ACCEPT

如果您无权访问门户来修改 NSG,则应该由其他人管理防火墙。

于 2019-11-17T01:53:49.673 回答
0

一般来说 - 没有。但是,如果您的 VM 具有托管标识,您可以调用托管标识端点来获取令牌并使用带有该令牌的 rest api 调用在 Azure 中执行操作,但这必须预先配置,以便您的托管标识有权执行这些操作操作。

于 2019-11-16T15:28:31.790 回答