安装 Squid
$ ssh root@192.168.148.64
$ sudo yum info squid
$ sudo yum install squid
$ sudo systemctl enable squid --now
$ sudo systemctl status squid
配置 Squid
$ sudo vim /etc/squid/squid.conf
#
# 非常重要的配置:
# 添加 DNS 服务器 和 强制使用 /etc/hosts 文件:
dns_nameservers 223.5.5.5
hosts_file /etc/hosts
客户端命令行配置
$ vim /etc/profile
## 在末尾添加如下内容:
function setproxy() {
export {http{,s},ftp,rsync}_proxy='http://192.168.148.64:3128'
export {HTTP{,S},FTP,RSYNC}_PROXY='http://192.168.148.64:3128'
export no_proxy='localhost,127.0.0.1,127.0.1.1,192.168.0.0/16,172.17.0.0/16'
export NO_PROXY=$no_proxy
}
function unsetproxy() {
unset {http{,s},ftp,rsync}_proxy
unset {HTTP{,S},FTP,RSYNC}_PROXY
unset no_proxy
unset NO_PROXY
}
## 使其生效:
$ source /etc/profile && source ~/.bashrc
客户端命令行使用方法
$ setproxy
## 检查 Proxy 的配置:
$ env | grep -i proxy
## 尝试访问百度:
$ curl www.baidu.com
为 Docker 单独配置代理
$ sudo mkdir -p /etc/systemd/system/docker.service.d
$ sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://192.168.148.64:3128"
Environment="HTTPS_PROXY=http://192.168.148.64:3128"
Environment="NO_PROXY=localhost,127.0.0.1,127.0.1.1,192.168.0.0/16,172.17.0.0/16"
$ sudo systemctl daemon-reload && sudo systemctl restart docker
## 检查代理配置:
$ docker pull nginx
为 Tomcat 单独配置代理
$ sudo vim /usr/lib/systemd/system/tomcat1.service
Environment='JAVA_OPTS=-Djava.awt.headless=true
-Djava.security.egd=file:/dev/./urandom
-Djavax.servlet.request.encoding=UTF-8
-Dfile.encoding=UTF-8 -Duser.language=en
-Duser.region=US -Dhttp.proxyHost=192.168.148.64
-Dhttp.proxyPort=3128
-Dhttps.proxyHost=192.168.148.64
-Dhttps.proxyPort=3128
-Dhttp.nonProxyHosts=127.\*\|192.168.\*\|172.17.\*\|localhost'
$ sudo systemctl daemon-reload
$ sudo systemctl restart tomcat1
## 检查代理配置:
$ cat /usr/tomcat1/logs/catalina0.log | grep -i proxy
为 cURL 单独配置代理
echo 'http_proxy=http://192.168.148.64:3128' > ~/.curlrc
echo 'https_proxy=http://192.168.148.64:3128' >> ~/.curlrc