在 ROS 里配 SK5,多数人是照着教程填参数,填完能用就结束。真要搞清楚它起什么作用,得把它和域名解析分开看:SK5 负责把程序的请求从指定线路转发出去,解析域名这一步默认还是走本地。两件事混在一起,就会出现配了代理IP、查出来还是本地地址的情况。
转发管的是连接走哪条路,解析管的是先问谁要地址。
SK5 在 ROS 里的作用
配完先在终端里测一次,再去程序里试,别拿着两个变量一起排查。
ROS 里的 SK5 是客户端,不是服务端。程序把请求发给它,它按配置里的服务器地址和端口把请求转出去,再把响应带回来。整个过程里它只改路径,不改内容,也不改归属。所以配了 SK5 这条代理IP线路之后,归属那一栏还是原来的,它的作用边界就在这一层。
配置里哪几项会错
四项参数里,服务器地址和端口是最容易填错的,填错的表现各不相同。地址写成域名,解析不通就整个不通;端口写成网页端口,连得上但不转发。账号密码错了会直接被拒。排查的时候先在 ROS 终端里测连通,通了再往程序里填,能省一半时间。
为什么觉得配了没作用
最常见的理由是程序没走系统代理。SK5 在 ROS 里是按规则转发的,规则没覆盖到的程序,请求还是从本地出去。另一个理由是程序用了 UDP,而多数 SK5 配置只处理 TCP。两种情况的表象一样:配置看着没问题,查出来却是本地地址。
和隧道方式的取舍
隧道方式整机覆盖,规则一条就够,代价是个别程序没法单独分离;SK5 粒度细,代价是每个程序都要单独指。ROS 里两种作用可以叠加,整机走隧道、个别程序走 SK5,前提是规则顺序不能反,反了细规则永远轮不到。
SK5 和 SOCKS5 是一回事吗
是同一个协议的两种写法,ROS 里的配置项完全一样,只是叫法不同。
叫法不同而已,填的参数项一模一样,不用找两份教程。
把转发和解析分开看,SK5 的作用就清楚了:它只管连接从哪条线路出去。指望它顺带解决地址归属的,配多少次都是一样的结果,因为那一层从头到尾没有被碰过。
