无法通过OpenVPN代理从dockerized CentOS到达主机

时间:2018-03-29 10:08:44

标签: docker openvpn

我在Docker容器中使用带有CentOS的Windows。我已经在Windows中使用open-vpn连接到VPN。但是,当我试图从码头化的CentOS到达一个主机时,它说无法连接。

是否可以通过CentOS与该主机联系?

2 个答案:

答案 0 :(得分:1)

根据我从您的问题中收集的内容,您一定要遵循以下两个步骤:

默认情况下,您将使用桥接网络驱动程序,您可能不需要关注第1步。我已经在您尝试使用默认设置时提到了这一点。

  1. 使用Docker Container的Bridge Network / Host Network驱动程序访问您的主机(运行docker容器)网络。有关详情,请浏览https://docs.docker.com/network/

  2. 配置docker proxy。根据您的使用案例,在https://docs.docker.com/network/proxy/中提及的文件中添加您的vpn设置。

  3. 简短版本:

    如果您使用docker run执行构建,请将以下内容添加到Dockerfile或其等效文件中。有关详细信息,请参阅步骤2中的链接。

    ENV HTTP_PROXY "proxy"
    ENV HTTPS_PROXY "proxy"
    

答案 1 :(得分:0)

也许SELinux阻止连接到VPN。您可以使用以下命令检查日志消息:

cat /var/log/messages | grep "SELinux is preventing"

如果日志消息显示SELinux涉及问题,为了确保只有SELinux负责,请转到/etc/selinux/config并以这种方式编辑行SELINUX=enforcing

SELINUX=permissive

并重启CentOS。这会导致SELinux仅在不强制执行策略的情况下生成日志消息。如果问题得到解决,您应该创建有关日志消息的适当SELinux策略,以告知哪些限制阻止连接到VPN。您的自定义策略必须提供所需的权限然后,您可以恢复上述文件中的更改并重新启动CentOS以利用SELinux安全性以及访问VPN。

您还可以使用以下命令检查与open-vpn关联的* .pem文件的权限:

ls -l /home/some-user/.cert/nm-openvpn/

用户'some-user'或

ls -l /root/.cert/nm-openvpn/

用户'root'。