
背景:在为客户远程提供解决方案时,经常会遇到客户服务器无法访问互联网而导致驱动无法安装的情况。
如果可以通过ssh访问到客户服务器,则可以通过ssh反向代理,使用本地服务器的互联网连接为客户服务器做联网代理。
操作方式如下:
- 本地服务器安装代理程序,常用的有两种(免费):
A) Apache 下载地址:https://httpd.apache.org/docs/current/platform/windows.html#down
B) Clash.Verge 下载地址:https://github.com/zzzgydi/clash-verge/releases
其中,Apache下载之后,在httpd目录下找到conf目录,打开httpd.conf文件,修改增加以下内容:
# 去掉以下几行的注释#
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
# 修改默认监听端口为8090(可自定义)
Listen 8090
# 在文件末尾增加以下行使Apache成为代理服务器
ProxyRequests On
<Proxy *>
# httpd 2.4版本以上
Require all granted
# httpd 2.2版本以下
#Order allow,deny
#Allow from all
# 可设置黑名单
#Deny from 127.0.0.1
#Deny from 10.10.10.0/24
</Proxy>
保存配置文件后使用cmd终端打开httpd目录里面的bin/httpd.exe文件,如果没有报错,此时再打开http://localhost:8090 即可看到 It Works!的字样,即代表代理服务启动成功。
若使用Clash.Verge作为代理服务程序,则下载对应的文件后双击启动图形界面,在Settings中修改监听端口即可。

以上,代理服务顺利启动之后,即可配置ssh反向代理
ssh -CNR 8091:localhost:8090 -p 1234 root@10.10.10.10
上述命令即可把本地服务器的8090端口映射到客户服务器的8091端口,root是客户服务器的用户名,@后是客户服务器的IP地址,第一次ssh要输入yes,然后按照提示输入B的密码,输入密码后保留该框不动,不要关闭。

然后在另外一个终端中,使用ssh -p 1234 root@10.10.10.10 访问到客户服务器,执行以下命令即可将客户服务器的互联网请求通过我们的ssh反向代理转发至我们本地的服务器中。
export http_proxy="http://127.0.0.1:8091"
之后再执行yum install 或者yum update之类的命令即可实现互联网访问
