同一个局域网内,让无公网地址的 Linux 服务器 B 通过有公网地址的 Linux 服务器 A 上网
原理
在服务器 A 上安装并配置代理服务器软件,服务器 B 通过设置代理服务器地址和端口,将网络请求发送到服务器 A 的代理服务器,由代理服务器转发到公网.
配置服务端
安装
在服务器 A 上安装 Squid 代理服务器
sudo apt-get install squid
配置
编辑 Squid 的配置文件
vim /etc/squid/squid.conf
# 改成以下配置
# 定义访问控制列表(ACL)
# 允许访问的本地网络段
acl localnet src 172.31.0.0/16
# 定义SSL端口,用于加密连接
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 # 未注册端口
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
# 定义CONNECT方法的ACL
acl CONNECT method CONNECT
# 访问权限配置
# 拒绝对不安全端口的请求
http_access deny !Safe_ports
# 拒绝非SSL安全端口的CONNECT连接
http_access deny !SSL_ports CONNECT
# 允许来自本地网络段和本地主机的访问
http_access allow localnet
http_access allow localhost
# 拒绝所有其他未授权的访问
http_access deny all
# 代理服务器监听端口
http_port 3128
# 缓存目录配置
cache_dir ufs /var/spool/squid 200 16 256
# 设置缓存内存使用限制,这里设置为512MB,可根据服务器内存情况调整
cache_mem 512 MB
# 核心转储文件目录
coredump_dir /var/spool/squid
# 刷新模式配置
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
# 日志配置
access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
配置完成后,重启 Squid 代理服务器
sudo service squid restart
配置客户端
在服务器 B 上,编辑/etc/profile文件,添加以下内容 :
export http_proxy=http://172.31.46.187:3128
export https_proxy=http://172.31.46.187:3128
其中172.31.46.187是服务器 A 的局域网地址,3128是 Squid 代理服务器监听的端口。配置完成后,执行source /etc/profile
使配置生效
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)