windows使用SSH隧道socks5代理自动运行尝试

发布时间 2024-01-11 15:35:27作者: 敬code

场景

在《windows机器SSH隧道访问内网服务》随笔中通过XShell工具,建立SSH隧道提供Sock5代理服务,在使用过程中出现了一些问题,每次都需要手动打开代理,或者因为锁屏或网络问题会频繁断开,每天都要手动操作好多次。很是繁琐,于是想寻求一种自动运行的方式。经过多次尝试,终于使用putty软件中plink命令行完成了此项工作。

工具

  • putty中的plink工具,用于自动完成连接和sock5代理
  • nssm 制作windows服务,完成服务自动运行,失败自启

步骤

1. plink命令

此处仅列举几个用到的命令,详细命令请去官网查找

"C:\Program Files\PuTTY\plink.exe" -D 7000 用户名@SSH_IP -P SSH_PORT -pw PASSWORD

命令行参数-D: 动态转发端口,此处为7000
命令行参数-pw: SSH登录密码,自动运行的关键
命令行参数-P: 指定SSH端口
plink 命令和ssh命令相似

示例:
用户名:wangjing
密码:wangjing123
SSH_IP: 192.168.100.100
SSH_PORT:1300
动态转发的socks5端口:7000

"C:\Program Files\PuTTY\plink.exe" -D 7000 wangjing@192.168.100.100 -P 1300 -pw wangjing123

2. 制作批处理文件

新建proxy.bat,输入以下内容:

echo top|"C:\Program Files\PuTTY\plink.exe" -D 7000 wangjing@192.168.100.100 -P 1300 -pw wangjing123

注意 "echo top|" 管道输入是关键
命令行运行:
"C:\Program Files\PuTTY\plink.exe" -D 7000 wangjing@192.168.100.100 -P 1300 -pw wangjing123

会出现如下提示:
Access granted. Press Return to begin session.

需要手动输入才能完成连接,自动运行无法进行。

在加入 "echo top|" 管道输入,会完成自动连接,并在ssh命令行中运行top命令

3. 使用nssm创建windows服务

nssm 是一个命令行程序,仅介绍当前用到的命令

安装服务:
nssm install 服务名称
示例: nssm install proxy

删除服务
nssm remove 服务名称
示例:nssm remove proxy
  • 安装服务

启动服务并设置失败自启

  • 移除服务

总结

至此,基于SSH隧道的SOCK5代理的自动运行就完成了,结合代理软件(参考《windows机器SSH隧道访问内网服务》中Proxifier)可实现自动的代理,不用手动操作了。