2.9. 阻止对特定主机接口上 NodePort 服务的外部访问


OVN-Kubernetes 不限制可以从红帽构建的 MicroShift 节点外部访问 NodePort 服务的主机接口。以下流程解释了如何在特定主机接口上阻止 NodePort 服务并限制外部访问。

先决条件

  • 您必须具有具有 root 特权的帐户。

流程

  1. 运行以下命令,将 NODEPORT 变量更改为分配给 Kubernetes NodePort 服务的主机端口号:

    # export NODEPORT=30700
    Copy to Clipboard Toggle word wrap
  2. INTERFACE_IP 值从您要阻止的主机接口更改为 IP 地址。例如:

    # export INTERFACE_IP=192.168.150.33
    Copy to Clipboard Toggle word wrap
  3. nat 表 PREROUTING 链中插入一条新规则,以丢弃与目标端口和 IP 地址匹配的所有数据包。例如:

    $ sudo nft -a insert rule ip nat PREROUTING tcp dport $NODEPORT ip daddr $INTERFACE_IP drop
    Copy to Clipboard Toggle word wrap
  4. 运行以下命令列出新规则:

    $ sudo nft -a list chain ip nat PREROUTING
    table ip nat {
    	chain PREROUTING { # handle 1
    		type nat hook prerouting priority dstnat; policy accept;
    		tcp dport 30700 ip daddr 192.168.150.33 drop # handle 134
    		counter packets 108 bytes 18074 jump OVN-KUBE-ETP # handle 116
    		counter packets 108 bytes 18074 jump OVN-KUBE-EXTERNALIP # handle 114
    		counter packets 108 bytes 18074 jump OVN-KUBE-NODEPORT # handle 112
    	}
    }
    Copy to Clipboard Toggle word wrap
    注意

    请记录下新添加的规则的 handle 号。您需要删除以下步骤中的 handle 号。

  5. 使用以下示例命令删除自定义规则:

    $ sudo nft -a delete rule ip nat PREROUTING handle 134
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat