0%

Windows上搭建SOCKS代理

问题提出:

驻厂深圳后,办公地点的网络不再是专线,因此IP不再是固定的,而是由运营商动态分配,而线上某些业务都开启了IP白名单,如果仍然通过添加白名单的方式,那么将会非常麻烦。总结一下受限的业务场景,包括:

  1. ssh连接腾讯云服务器
  2. http访问蓝鲸运维平台
  3. Jenkins Slave(Windows 7)服务器拷贝服务器版本到腾讯云

方案思路:

考虑到ssh提供了socks代理,因此可以在北京公司部署一台固定IP且已经加入IP白名单的服务器(假设为HostA,IP为:10.12.28.114,OS为Windows 10),然后开启socks代理,受限业务的流量都通过socks代理。

方案实施:

  1. 安装OpenSSH(windows 10 version 1803及以后的版本已经集成),在HostA上:设置–>应用–>应用和功能–>可选功能–>添加功能–>OpenSSH服务器
  2. 开启sshd服务:在HostA上,控制面板–>系统和安全->管理工具–>服务–>OpenSSH SSH Server
  3. 开启socks代理:ssh -f -N -D 0.0.0.0:1080 win10@127.0.0.1,此命令会在1080端口上开启sockets代理(关于如何使用ssh-key登录,可以参考这篇文章:Configuring SSH Key-Based Authentication on Windows 10/ Server 2019,并着重关注: How to Login Windows Using SSH Key Under Local Admin?

问题解决:

  1. 受限场景1:SSH连接工具上设置socks代理,如图所示:
    6QUzVI.png
  2. 受限场景2:到控制面板–>Internet选项–>连接–>局域网设置–>代理服务器–>高级 里设置socks代理,然后使用IE访问蓝鲸运维平台
    6QUvqA.png
  3. 受限场景3:由于jenkins slave机器是windows 7系统,本身没有集成OpenSSH Client组件,因此考虑在slave上安装ssh客户端,最终考虑使用git附带的Unix tools中的ssh功能(安装时需要把Unix tools加入环境变量),在%USERPROFILE%/.ssh/config内增加ProxyCommand命令行进行代理,命令如下:ProxyCommand connect -S 10.12.28.114:1080 %h %p 如果要是用http代理,需要把 -S 改为 -H ,回到jenkins配置界面,配置scp命令拷贝版本即可。