我在Docker容器中使用带有CentOS的Windows。我已经在Windows中使用open-vpn连接到VPN。但是,当我试图从码头化的CentOS到达一个主机时,它说无法连接。
是否可以通过CentOS与该主机联系?
答案 0 :(得分:1)
根据我从您的问题中收集的内容,您一定要遵循以下两个步骤:
默认情况下,您将使用桥接网络驱动程序,您可能不需要关注第1步。我已经在您尝试使用默认设置时提到了这一点。
使用Docker Container的Bridge Network / Host Network驱动程序访问您的主机(运行docker容器)网络。有关详情,请浏览https://docs.docker.com/network/。
配置docker proxy。根据您的使用案例,在https://docs.docker.com/network/proxy/中提及的文件中添加您的vpn设置。
简短版本:
如果您使用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'。