项目场景:
在公司的环境,终端没有直接连接外网的权限,需要通过网络代理。
问题描述
面对公司的环境,我给虚拟机全局、docker和docker容器都配置了网络代理,成功运行nginx容器之后,却发现宿主机无法访问到nginx。
原因分析:
期初我以为是IPv4 转发没有开启的原因,
$ vi /etc/sysctl.conf
在末尾插入
net.ipv4.ip_forward = 1
执行sysctl -p
指令让其生效
$ sysctl -p
但是依然无法访问。之后又在论坛里各种查询,但是没有找到能够解决问题的方案。
我尝试着把网络从公司内网切换成自己的热点,发现nginx可以访问到,可以断定是代理设置的问题。
解决方案:
重复的切换了几次网络,我恍然大悟。
原来是我在代理设置中没有把虚拟机IP设置为无需代理,这导致我一直都是通过代理访问自己的局域网。
于是我在宿主机上的把虚拟机IP设置到了无需代理的域名中,果然问题得到了解决。