简介
解决问题如下:
线上服务器无法访问公网,申请公网访问流程过于复杂,部署环境又需要连接公网来安装包,可使用本方式配置代理联网。
架构
- 通过
Fiddler
,在本地Windows机器上启动HTTP代理服务 - 通过Xshell/MobaXterm等远程连接软件,建立
SSH Tunnel
- 连接远程服务器后,在服务器设置
http_proxy
https_proxy
no_proxy
资源包
Fiddler
- 链接:https://pan.baidu.com/s/1-0wsdRkJ6MsDG7MvvvZVLQ
- 提取码:x0cc
部署流程
1. 部署Fiddler
下载并解压Fiddler至本地文件夹,双击Fiddler.exe
运行Fiddler,对Fiddler做如下配置:
- 勾选允许远程计算机连接
2. 配置SSH工具
MobaXterm
- 点击
Tunneling
,进入SSH Tunneling
设置页面
- 点击
New SSH tunnel
,创建新的SSH tunnel
- 点击
Remote port forwarding
,设置远程代理,填写如下参数:- Local server:port使用Fiddler中启动的本地代理端口(
hostname
+port
) - SSH server:远程SSH登录信息(
ip
+port
+username
) - Remote clients:填写远端服务器的一个端口,程序会在远程服务器启动该端口用于转发(
forwarded port
)
- Local server:port使用Fiddler中启动的本地代理端口(
Xshell
- 进入ssh连接属性页面,
连接
–>SSH
–>隧道
,点击添加
- 修改源主机信息,填写远程ssh的ip,侦听端口随便定义,远程主机会将http请求转发至该端口,进行网络访问
3. 配置远端服务器
参考系统:CentOS Linux release 7.6.1810
临时配置
1
2
3
4
5
6
7
8
9
10代理端口使用SSH tunnel中remote clients部分配置的forwarded port
设置环境变量
export https_proxy=https://127.0.0.1:8888
export http_proxy=http://127.0.0.1:8888
测试网络访问
curl www.baidu.com
HTTP与HTTPS可正常访问,ping公网ip是不通的,正常yum安装满足需求永久配置
1
2
3
4
5
6
7
8
9
10cat >> /etc/environment << EOF
默认http访问均走如下代理
http_proxy="http://127.0.0.1:8888"
https_proxy="https://127.0.0.1:8888"
访问以下ip不经过代理
no_proxy="localhost,127.0.0.1"
EOF
常见问题
问题:代理突然连不上网
解决方法:
远程服务器检查8888端口是否有异常状态的连接
1
netstat -tunlp | grep 8888
正常状态输出如下
1
tcp 0 0 127.0.0.1:8888 0.0.0.0:* LISTEN 18860/sshd: boco4a
异常状态会存在多个异常状态TCP连接(如TIME_WITE,CLOSE_WITE等)占用8888端口,使用
kill -9 <pid>
杀掉进程,重新建立SSH tunnel连接即可