tinyproxy代理工具+Maven的HTTP代理设置
本文最后更新于 2024-07-08,文章内容可能已经过时。
背景:
最近项目上需要使用外部的私有仓库,jenkins-slave 无法访问这个repo.test.com 仓库,从而无法打包,网络环境需要走代理的网络才行
一、部署tinyproxy代理
找一台能访问repo.test.com 的机器,安装部署上tinyproxy
# centos
yum install tinyproxy
或者
# ubuntu
sudo apt install tinyproxy
#修改配置文件
vim /etc/tinyproxy/tinyproxy.conf
搜索并修改以下配置
# 注释掉这一行
# Allow 127.0.0.1
# 修改端口号
Port 9888
#修改完了保存退出,重启服务:
systemctl restart tinyproxy
#日志文件的路径:
/var/log/tinyproxy/tinyproxy.log
查看日志 :tail -f /var/log/tinyproxy/tinyproxy.log
客户端代理设置:
export http_proxy=http://X.X.X.X:9888
取消代理:
unset http_proxy
二、测试代理是否可用
登录到jenkins-slave 那台机器上,手动设置代理
export http_proxy=http://X.X.X.X:9888
测试能否ping 通仓库地址
ping repo.test.com
#发现可以ping通
三、修改maven 配置文件settings.xml
#我这边是yum直接安装的manven, 配置文件的路径在/etc/maven 下
添加代理配置如下:
<settings>
...
<proxies>
<proxy>
<id>my-proxy</id>
<active>true</active>
<protocol>http</protocol>
<host>XX.XX.10.117</host>
<port>9888</port>
<nonProxyHosts>*.aliyun.com|*.maven.org</nonProxyHosts>
<!--
<username>shihuan</username>
<password>123456</password>
-->
</proxy>
</proxies>
...
</settings>
proxies下可以有多个proxy元素,如果你声明了多个proxy元素,则默认情况下第一个被激活的proxy会生效。这里声明 了一个id为my-proxy的代理
active的值为true表示激活该代理,protocol表示使用的代理协议,这里是http;
当然,最重要的 是指定正确的主机名(host元素)和端口(port元素);
nonProxyHost元素用来指定哪些主机名不需要代理,可以 使用 | 符号来分隔多个主机名。此外,该配置也支持通配符,如*.google.com表示所有以google.com结尾的域名访问都不要通过代理。
上述XML配置中我注释掉了username、password、 几个元素,当你的代理服务需要认证时,就需要配置username和password。
四、打包测试
友情提醒: 为了代理的安全,建议开启白名单的机制【允许指定的IP 可以访问代理地址】 同时开启代理服务的认证,输入用户名,密码加强验证
- 感谢你赐予我前进的力量