SSH隧道实现Yum等代理

背景
Linux服务器环境中有部分服务器不能上网,使用yum安装软件极为不便;
解决方案
可以搭建一个本地代理服务器,在不能联通外网的服务器上将1080端口跳转到另外一台可以上外网的22端口上,实现ssh跳转,设置yum代理,实现软件安装
注意事项

  • 需要一台可以连接公网的服务器A(192.168.6.123)
  • 需要安装软件的服务器B(192.168.6.141)可以连接上A(192.168.6.123)
  • 服务器B(192.168.6.141)上需要安装privoxy 和git 基础软件
  • 所有操作在服务器B(192.168.6.141)上完成
  • 在centos 6 上,yum只能使用 http, https, ftp 协议的代理。 但在 centos 7上 yum 可以使用 socks5 的代理。

建立SSH隧道

1
2
ssh -p 22 -gfND 1080 root@192.168.6.123
ss -tlnup |grep 1080

安装配置privoxy

1
2
3
4
5
yum -y install privoxy
vim /etc/privoxy/config
forward-socks5 / 127.0.0.1:1080 .
#如果允许其他机器访问,需要修改listen-address
listen-address 0.0.0.0:8118

启动privoxy服务

1
2
systemctl start privoxy
systemctl enable privoxy

为YUM配置代理

1
2
3
4
5
6
#centos7配置方法
[main]
proxy=socks5h://localhost:1080
#centos6配置方法
[main]
proxy=http://localhost:8118

扩展、配置其他代理

为CURL配置代理

1
2
3
vim ~/.curlc
# socks5h 中的 h 意为远程主机名解析
socks5 = "socks5h://127.0.0.1:1080"

为wget配置代理

1
2
3
4
5
6
vim /etc/wgetrc
http_proxy = http://localhost:8118
https_proxy = http://localhost:8118
ftp_proxy = http://localhost:8118
use_proxy = on
wait = 15

为pip配置代理

1
2
3
4
5
mkdir ~/.pip
vim ~/.pip/pip.conf
[global]
proxy = 127.0.0.1:8118
trusted-host = mirrors.aliyun.com

为git设置http https 代理

1
2
3
4
5
6
7
8
9
#设置
git config --global https.proxy 'socks5h://127.0.0.1:1080'
git config --global http.proxy 'socks5h://127.0.0.1:1080'
#查看
git config --global --get http.proxy
git config --global --get https.proxy
#取消
git config --global --unset http.proxy
git config --global --unset https.proxy
独学无友,孤陋寡闻;学习记录,欢迎拍砖!