Java客户端和PHP服务器端常用和非常用的参数列表
本wiki页作用
主要解释各个参数的具体作用。
参数具体作用详细解释
Java客户端
- serverurl:服务器端php的可访问网址。
- secretkey:加密用的密钥,服务器端和客户端需要一致,现在版本加密使用简单异或操作,所以密钥长度建议超过单个数据包4096字节长度。
- prefix:为了避免服务器端由于某些情况(比如强制插入广告、php的warning提示等)返回非php程序返回的数据,所以加入了prefix和postfix,每次php返回数据时都在数据两端加上prefix和postfix,客户端收到后只使用prefix和postfix之间的数据。服务器端和客户端的prefix和postfix要求一致。
- postfix:为了避免服务器端由于某些情况(比如强制插入广告、php的warning提示等)返回非php程序返回的数据,所以加入了prefix和postfix,每次php返回数据时都在数据两端加上prefix和postfix,客户端收到后只使用prefix和postfix之间的数据。服务器端和客户端的prefix和postfix要求一致。
- localport:Java客户端侦听的端口,此端口即是socks5代理端口。
- localhost:Java客户端绑定的IP,默认为127.0.0.1,只能本机使用。如果需要非本机使用,可以改成0.0.0.0。
Polipo
- polipohost:Polipo绑定的IP,默认为127.0.0.1,只能本机使用。如果需要非本机使用,可以改成0.0.0.0。
- polipoport:Polipo侦听的端口,此端口即是http和https代理端口。
PHP服务器端
- dbhost:MySQL数据库的地址。
- dbport:MySQL数据库的端口,默认为3306。
- dbuser:MySQL数据库的用户名。
- dbpass:MySQL数据库的口令。
- dbname:MySQL数据库的库名。
- secretkey:加密用的密钥,服务器端和客户端需要一致,现在版本加密使用简单异或操作,所以密钥长度建议超过单个数据包4096字节长度。
- debuginfo:为True时显示调试信息,打印log;为False时不显示调试信息,不打印log。调试信息现阶段包括首次使用浏览器访问此php时创建表是否成功,如果debuginfo为False则无论创建表是否成功都不会显示,防止防火墙侦测到特定的信息进而进行屏蔽,如需知道数据库表是否创建成功可以自己连接到MySQL数据库服务器上查看是否有此代理创建的3个表。不打印log则不会生成log文件,这样也就无法通过人肉探测到此代理的存在。人肉探测此代理的方法可以是尝试下载phpsocks5_log.log文件,如果能下载则有此代理,如果无此文件则无此代理。所以不生成log文件将无法通过此手段探测到此代理。不打印log还能节省服务器资源。
- prefix:为了避免服务器端由于某些情况(比如强制插入广告、php的warning提示等)返回非php程序返回的数据,所以加入了prefix和postfix,每次php返回数据时都在数据两端加上prefix和postfix,客户端收到后只使用prefix和postfix之间的数据。服务器端和客户端的prefix和postfix要求一致。
- postfix:为了避免服务器端由于某些情况(比如强制插入广告、php的warning提示等)返回非php程序返回的数据,所以加入了prefix和postfix,每次php返回数据时都在数据两端加上prefix和postfix,客户端收到后只使用prefix和postfix之间的数据。服务器端和客户端的prefix和postfix要求一致。
- dbprefix:作用有2:1、服务器端php程序建MySQL数据表和操作数据表时的表名前缀,默认为“phpsocks5_”,所以建的3个表和使用的时候都是“phpsocks5_”开头的。可以更改此前缀,更改后需要重新使用浏览器访问服务器端的php网址建表。2、此参数现在还用作log文件的前缀,更改此参数也会使log文件的前缀改变。
- invstep:由于socks5代理协议为数据包转发协议,所以php服务器端需要轮询(php的限制无法做到同时等待发送数据的到达和接收数据)数据包的发送和接收。所以需要控制轮询时间,不能太短也不能太长:太短服务器负担太重,太长客户端延迟太大。invstep控制在本次轮询时如果无数据发送和接收,那么下次轮询间隔时间增加多少;invmax控制轮询时间最大间隔多少,如果当前轮询的时间间隔超过了invmax,会把当前轮询的时间间隔设为invmax。
- invmax:由于socks5代理协议为数据包转发协议,所以php服务器端需要轮询(php的限制无法做到同时等待发送数据的到达和接收数据)数据包的发送和接收。所以需要控制轮询时间,不能太短也不能太长:太短服务器负担太重,太长客户端延迟太大。invstep控制在本次轮询时如果无数据发送和接收,那么下次轮询间隔时间增加多少;invmax控制轮询时间最大间隔多少,如果当前轮询的时间间隔超过了invmax,会把当前轮询的时间间隔设为invmax。
- version:协议版本号,请不要修改此参数。如果客户端和服务器端通讯的协议有变,那么会改变版本号,这样老客户端连接新服务器时将得到版本错误的提示。客户端的版本号直接写在了Java程序中,不可在客户端的配置文件中修改。服务器端和客户端的版本号一致才能正常使用phpsocks5。