5

我需要在 Traefik 后面设置 Gitlb。

除了通过命令行对应用程序进行身份验证外,一切正常 - 我不知道如何通过 traefik 公开端口 22。

知道如何设置吗?如何暴露 docker 容器的 22 端口(通过 traefik)?

我将默认端口从 22 更改为 10022。

我正在通过netstat -tulpn

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1132/sshd           
tcp        0      0 0.0.0.0:5355            0.0.0.0:*               LISTEN      1126/systemd-resolv 
tcp6       0      0 :::22                   :::*                    LISTEN      1132/sshd           
tcp6       0      0 :::443                  :::*                    LISTEN      1590/docker-proxy   
tcp6       0      0 :::10022                :::*                    LISTEN      1440/docker-proxy   
tcp6       0      0 :::5355                 :::*                    LISTEN      1126/systemd-resolv 
tcp6       0      0 :::80                   :::*                    LISTEN      1602/docker-proxy   
tcp6       0      0 :::8080                 :::*                    LISTEN      1578/docker-proxy   
udp        0      0 127.0.0.53:53           0.0.0.0:*                           1126/systemd-resolv 
udp        0      0 0.0.0.0:68              0.0.0.0:*                           864/dhclient        
udp        0      0 0.0.0.0:5355            0.0.0.0:*                           1126/systemd-resolv 
udp6       0      0 :::5355                 :::*                                1126/systemd-resolv 

我不明白为什么 10022 连接到 docker-proxy。

当我尝试:

git push --set-upstream origin master
ssh: connect to host git.myserver.com port 10022: Connection refused
fatal: Could not read from remote repository.

非常感谢

4

2 回答 2

4

Traefik 是 HTTP 反向代理,ssh 不是 HTTP 协议。因此,您只需在主机上未使用的端口上发布容器的 ssh 端口即可。

于 2017-07-09T02:28:57.083 回答
2

正如 BMitch 所说,如果不是 HTTP,traefik 将不会处理 TCP 流量。(SSH 不是 HTTP)。

请参阅此讨论:https ://github.com/containous/traefik/issues/10

我建议您配置网络内容,以便将流量:22直接路由到容器。

于 2017-07-09T21:55:46.737 回答