ssh反向代理实现科学上网
子车轻罗 2023/7/18
# ssh反向代理
适用场景
- 内网服务器无法访问github,而本地电脑可以科学上网,故内网服务器发起的请求通过本地电脑代理访问。
- 跳板机,如只能访问内网某台机器,可以设置转发到其他内网机器的22端口进行登录。
原理
在内网服务器上起一个端口,设置内网服务器访问外网的请求走这个端口进行代理
内网服务器代理端口的请求,全部转发到本地电脑的科学上网工具上。
实现
通过ssh反向代理来完成上述需求,无需使用root权限。
如:
ssh -p 8222 -qngfNTR 8888:localhost:8765 rd@10.33.5.83
# 命令在client上执行,会在server上起一个8888端口,server上的服务代理到8888端口进行科学上网
# 使用rd用户连接server(10.33.5.83)的8222(因服务器22端口无法直接访问,iptables将8222转发至22)端口,将server(10.33.5.83)的8888端口转发到client的8765端口,这样10.33.5.83通过设置代理到127.0.0.1的8888即可通过client的8765端口进行代理。
-q: 静默模式,不显示任何警告或错误信息。
-n: 不执行远程命令。
-g: 允许远程主机连接到本地转发的端口。
-f: 在后台运行SSH会话。
-N: 不执行远程命令。
-T: 不分配伪终端。
-p: 指定ssh端口,不指定默认22
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
在设置git代理即可
#git操作
# 使用socks5代理git请求
git config --global https.proxy socks5://127.0.0.1:8888
# 取消全局代理
git config --global --unset https.proxy
1
2
3
4
5
2
3
4
5