某个用户无法通过公网访问gitlab
2018-11-14 本文已影响125人
lockdreamer
问题描述:
由于jenkins主机用户目录被删,临时拷贝了一份家目录文件。导致jenkins用户通过外网连接gitlab时报错。
分析过程:
1、从别的jenkins服务器连接gitlab,确认gitlab没问题。
2、从本机jenkins用户连接别的代码仓库,报错;初步确定是这台jenkins主机网络的问题。
3、从jenkins主机其他用户连接jenkins主机正常;确定是jenkins用户问题。
单个用户不通,肯定是环境变量不对。初步分析了git版本,java版本。都不是根本原因。
在此,感谢郭老师指点。是不是http代理的问题呢?
使用curl http://120.194.46.243:8888/activity/ --tarce a.log
查看a.log
发现url呗代理到了10.16.3.138这个ip。查看jenkins用户环境变量.bash_profile
问题原因确定:jenkins用户设置了http proxy导致。
解决方案:
在环境变量中增加 export no_proxy=120.194.46.243;让到该ip的连接不走代理。
相关小知识:
linux设置http/https proxy
有些linux服务器处于内网,并且没有公网ip,故要想与外网进行http/https通信只能通过nat或者加proxy的方式。nat服务器有网段的限制,而http/https proxy代理则没有,使用起来也方便。
1、linux系统设置http/https proxy的方法,在/etc/bashrc或者/etc/profile中添加如下环境变量:
export http_proxy=http://1.1.1.1:8082
2、对特殊请求,不让其走http/https代理
export no_proxy='a.test.com,127.0.0.1,2.2.2.2'