目前有一台不可访问外网的Centos服务器,临时有外网下载的需求,可通过Squid将本地Mac设备设置为代理服务器,实现外网访问
1、安装Squid
以homebrew
为例
brew install squid
安装路径:/opt/homebrew/opt/squid
配置文件:/opt/homebrew/etc/squid.conf
2、修改Squid配置
打开配置文件,设置允许哪些设备可以访问代理服务器
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
acl localnet src 0.0.0.1-0.255.255.255 # RFC 1122 "this" network (LAN)
acl localnet src 10.0.0.0/8 # RFC 1918 local private network (LAN)
acl localnet src 100.64.0.0/10 # RFC 6598 shared address space (CGN)
acl localnet src 169.254.0.0/16 # RFC 3927 link-local (directly plugged) machines
acl localnet src 172.16.0.0/12 # RFC 1918 local private network (LAN)
acl localnet src 192.168.1.195/32 # RFC 1918 local private network (LAN)
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10
- acl,代表定义一个访问控制列表
- localnet,访问规则的名称,一个名称可以对应多个规则
- src 192.168.1.195/32,设置来源地址,即需要访问代理服务器的设备地址
比如Centos对应的内网IP为192.168.1.195
,我单独设置了acl localnet src 192.168.1.195/32
的规则,当然可以继续扩大其范围
设置允许访问端口,这些根据需求自行设置
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
设置http_access
,其用来控制访问权限的指令。它用于指定哪些客户端可以或不能访问代理服务器。这个指令是通过访问控制列表(ACL)来决定的,由于仅为临时使用,因此直接allow all
# Deny requests to certain unsafe ports
# http_access deny !Safe_ports
http_access allow all
3、配置http_proxy
在需访问外网的服务器下打开/etc/profile
,设置http_proxy
指向代理服务器的设备。端口3128为Squid的默认监听端口
#export http_proxy=http://192.168.2.33:3128
#export https_proxy=http://192.168.2.33:3128
#export ftp_proxy=http://192.168.2.33:3128
source
保存
4、测试验证
可通过curl www.baidu.com 在内网服务器上进行测试验证
以上即可实现最基本的通过代理服务器访问外网的需求,如需更多配置,参考:https://www.squid-cache.org/Doc/config/