【问题标题】:Centos docker proxy port - firewallCentos docker 代理端口 - 防火墙
【发布时间】:2023-04-01 09:19:01
【问题描述】:

我有一些使用 docker-compose up 运行的项目。该项目在端口 4200、后端 3000 和 db 5342 上有前端。当我使用 docker-compose 运行它时,所有这些端口都是公共的。所以我可以(每个人都可以)访问例如后端https://myserver:3000/api。

如何将 docker-proxy 端口禁用为公共端口?我的解决方案是我有 nginx,使用 myapp.myserver.com 并重定向到本地前端端口 4200 (nginx.conf) - 前端使用后端端口 3000 和后端 5432 - 但这些端口不应该是公共的。公共端口应该只有 80、443、22 (ssh) 等。

查看我的网络统计:

tcp        0      0 0.0.0.0:80              0.0.0.0:*               NASLOUCHÁ  11972/nginx: master 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               NASLOUCHÁ  848/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               NASLOUCHÁ  1149/master         
tcp        0      0 0.0.0.0:443             0.0.0.0:*               NASLOUCHÁ  11972/nginx: master 
tcp6       0      0 :::9000                 :::*                    NASLOUCHÁ  16995/docker-proxy  
tcp6       0      0 :::5000                 :::*                    NASLOUCHÁ  14069/docker-proxy  
tcp6       0      0 :::5001                 :::*                    NASLOUCHÁ  11557/docker-proxy  
tcp6       0      0 :::8080                 :::*                    NASLOUCHÁ  11402/docker-proxy  
tcp6       0      0 :::80                   :::*                    NASLOUCHÁ  11972/nginx: master 
tcp6       0      0 :::22                   :::*                    NASLOUCHÁ  848/sshd            
tcp6       0      0 ::1:25                  :::*                    NASLOUCHÁ  1149/master         
tcp6       0      0 :::443                  :::*                    NASLOUCHÁ  11972/nginx: master 
tcp6       0      0 :::8000                 :::*                    NASLOUCHÁ  17006/docker-proxy

【问题讨论】:

    标签: docker proxy docker-compose centos firewall


    【解决方案1】:

    所以我在映射端口时通过更改解决了它:

    发件人:

    ports:
          - "3000:3000"
    

    收件人:

    ports:
          - "127.0.0.1:3000:3000"
    

    现在只能在应用运行的VPS的localhost上使用,不能调用https://myserverip.com:3000/api。

    【讨论】:

      【解决方案2】:

      您也可以使用 nginx.conf 重定向到后端端口。例如,api.myserver.com 将流量路由到后端端口 3000,db.myserver.com 将流量路由到端口 3000。所有这些容器都应该在同一个 docker network 上以便于路由。

      Nginx 可以控制哪些端口暴露给外界。

      这样,您的 nginx 将作为 ingress proxy 服务。所有连接都通过 nginx 路由,而世界其他地方则忽略了内部使用的端口。这个想法被用来向全世界开放 Kubernetes 背后的服务。

      【讨论】:

      • 谢谢,是的,我可以在 nginx 上重定向后端端口。但是以某种方式禁用防火墙上的端口并不容易?只需在 80、22、25 和 443 上允许 tcp 和 tcp6。其他所有内容都不会公开。在我的情况下,这意味着每个 docker 代理都禁止公开。
      • 是的,这样更容易更好。
      猜你喜欢
      • 2013-10-06
      • 2022-01-20
      • 2014-09-03
      • 2015-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-02
      • 1970-01-01
      相关资源
      最近更新 更多