使用clash代理SSR的内网请求

本文最后更新于:2 年前

引言

SSR是非常好网络代理协议,通过它我们可以用服务端的网络访问特定资源,我们一般都用它来科学上网;也就是上公网

但它其实也能访问服务端内网,只是需要做一些设置.

解决方案

这里我以Clash for Windows为例介绍连接方法

SSR服务端可以使用SSR-Docker

在安装好服务后本地先使用SSR(ShadowsocksR)连接测试以确定配置无误

连接成功后可在docker logs中看到连接请求

Clash支持SSR的连接方式,只是不能直接导入SSR的节点;

这里可以使用配置转换工具,如:ACL4SSR 在线订阅转换

复制配置好的SSR链接(ssr://)到订阅链接中,点击生成订阅链接,然后把这个链接导入到Clash

这时候尝试输入服务端内网的一个服务地址,发现无法访问;查看Clash生成的日志(点击Clash左下角的Connected可以打开日志目录)

会发现没有触发代理,这是因为默认Clash会忽略本地地址的请求

因此需要调整几处配置

订阅导入成功后可以在本地看到yml文件(或者也可以直接在Profilesyml中右键Edit)

  • 1.在rules中添加需要代理的网段或者IP地址

IP-CIDR,192.168.1.1/32,🔰 节点选择

image-20230115221349239

  • 然后在SettingsSystem ProxyBypass Domain/IpNet中移除192.168.*的配置

(或者改成本地的Ip段,因此这里就要求本地的网段和服务的网段不同;这样可以方便配置)

clash

调整后就可以访问了.

扩展

这样配置后切换到对应的Proxy后当然可以访问服务器的内网,但假如本身有Google的需求每次访问内网的时候还要切换代理;这里可以使用

Parsers

在你的Proxy中右键Parsers

然后输入对应的配置项

1
2
3
4
5
6
7
8
9
10
11
12
13
parsers: # array
- url: https://xxx.com #Google代理订阅地址 不知道的话可以从配置的Settings中查看
yaml:
prepend-rules:
- IP-CIDR,192.168.1.0/24,🔰 节点选择
- DOMAIN-SUFFIX,xxx.cn,🔰 节点选择
append-proxies:
- {...}#添加的代理配置
append-proxy-groups:
- name: 🔰 节点选择
type: select
proxies:
- XX

然后再右键yml配置选择Update更新完后可以在yml配置的Rules中看到自动修改的配置

参考资料


使用clash代理SSR的内网请求
http://blog.wangshuai.app/2023-01-14-使用clash代理SSR的内网请求/
作者
王帅
发布于
2023年1月14日
许可协议