搭建 Windows 跳板机 Wireguard & SSH
搭建 Windows 跳板机 Wireguard & SSH
简介
注意:请遵守公司与国家等其他组织机构的保密规定,务必在规定允许的范围内使用跳板机防止出现泄密风险!
背景:因工作内容需要同时使用多个 VPN 在多个不同网络内切换,因此经常需要反复切换不同软件十分繁琐
目标:希望使用一个 VPN 或其他工具实现一次数据分流同时访问多个内部网络
准备:一台具有公网 IP 或者已经实现内网穿透的设备(如借助 Zerotier 等),且设备系统支持安装 VPN 软件(由于 VPN 均为 Win 软件所以这里使用的是 Win 跳板机,Linux 同理类似)
方案
基于 Wireguard 的方案 - 推荐
推荐使用 Wireguard 方案简单一劳永逸只需要配置 IP 分流即可。
准备
- 下载软件
- 跳板机
- Wireguard Server For Win
- 需要使用的 VPN 软件等
- 本机
- 跳板机
安装
跳板机
安装刚才下载的 Wireguard Server for Win
并启动。
点击 Download and install WireGuard
安装 WireGuard
。
点击 Edit server configuration
配置服务器
点击 Configure client
配置客户端的配置文件,配置后可以直接导出文件或生成二维码供客户端使用。
配置完成后重新进入此页面即可导出配置文件或生成二维码供客户端使用。
下面一次安装虚拟网卡以及启用私网等即可。
最后的安装配置结果如图,其中 Interner Connection Sharing
可以不使用,目前不清楚其作用,只开启 NAT 即可。
后续就是在跳板机安装需要用的 VPN 并运行。
客户端
安装 WIreGuard
并启动。
导入刚才在跳板机生成的配置文件。
编辑配置文件
看到握手成功即可尝试是否可以成功访问内网服务。
基于 SSH 的方案
如果不想安装复杂软件可以使用 SSH 自带功能实现,如果需要使用 Win 的话可以参考 Windows 上的 OpenSSH:安装、配置和使用指南 - 系统极客 (sysgeek.cn) 这篇文章开启 Win 的 SSH
服务。
以下是实现该需求的详细步骤:
配置跳板机
确保跳板机可以已经安装需要的 VPN 服务或其他的软件,并通过 VPN 可以成功连接到 C 设备。
配置本机
在当前设备上配置 SSH 代理:使用以下命令,将跳板机配置为跳板(假设跳板机的 IP 地址为 192.168.1.2,内部设备网络 IP 地址为 10.0.0.1):
1 |
|
这条命令会将当前设备上的本地端口 2222 映射到跳板机,再由跳板机转发到内部设备的 22 端口(SSH)。
然后,通过就可以通过跳板机连接内部设备
从当前设备连接到内部设备:在当前设备上,可以通过以下命令连接到内部设备的 SSH 服务:
1 |
|
配置其他服务(FTP, HTTP 等)的代理
同理除了 SSH,你还可以配置其他服务的代理。
配置 FTP 代理
- 使用跳板机代理 FTP :可以使用类似 SSH 代理的方法来转发 FTP 流量:
1 |
|
这条命令会将当前设备上的本地端口 2121 映射到跳板机,再由跳板机转发到内部设备的 21 端口(FTP)。
- 从当前设备连接到内部设备的 FTP 服务:在当前设备上,可以使用 FTP 客户端连接到 localhost 的 2121 端口。
配置 HTTP 代理
- 使用跳板机代理 HTTP:可以使用类似 SSH 代理的方法来转发 HTTP 流量:
1 |
|
这条命令会将当前设备上的本地端口 8080 映射到跳板机,再由跳板机转发到内部设备的 80 端口(HTTP)。
- 从当前设备连接到内部设备的 HTTP 服务:在 A 设备上,可以在浏览器中访问
http://localhost:8080
,以访问内部设备的 HTTP 服务。
额外配置与优化
配置持久的 SSH 隧道
可以使用 autossh
来保持 SSH 隧道的持久连接:
1 |
|
配置动态代理
可以配置一个动态端口转发(SOCKS 代理),让所有流量通过 B 设备:
1 |
|
在当前设备上配置应用程序使用 SOCKS 代理 localhost:1080
。