update
This commit is contained in:
+18
-22
@@ -954,11 +954,7 @@ Senat type judgment, easy to check whether the network supports p2p, you can exe
|
||||
## 5.SOCKS5 Proxies
|
||||
prompt:
|
||||
|
||||
SOCKS5 proxy, support CONNECT, UDP protocol, does not support BIND, supports username and password authentication.
|
||||
|
||||
*** If your VPS is Alibaba Cloud, Tencent Cloud is a VPS, if ifconfig can't see your public IP, you can only see the intranet IP, ***
|
||||
|
||||
*** Then you need to add the `-g VPS public network IP` parameter, the UDP function of the SOCKS5 proxy can work normally. ***
|
||||
SOCKS5 proxy, support CONNECT, UDP protocol, does not support BIND, supports username and password authentication.
|
||||
|
||||
***The udp function of socks5 is turned off by default, and can be turned on by `--udp`. The default is a random port for handshake, and performance can be improved by fixing a port.
|
||||
Set by parameter `--udp-port 0`, `0` represents a free port is randomly selected, or you can manually specify a specific port. ***
|
||||
@@ -1056,10 +1052,6 @@ Secondary HTTP proxy (local Linux)
|
||||
`proxy socks -t tcp -p ":8080" -T kcp -P "22.22.22.22:38080" --kcp-key mypassword`
|
||||
Then access the local port 8080 is to access the proxy port 38080 on the VPS, the data is transmitted through the kcp protocol.
|
||||
|
||||
notice:
|
||||
|
||||
When using the kcp protocol locally, you need to specify the vps public network IP with -g, and the UDP function of socks5 is fully used. At this time, -g is the IP address in the UDP address returned to the client.
|
||||
|
||||
### 5.9. Custom DNS
|
||||
--dns-address and --dns-ttl parameters, used to specify the dns (--dns-address) used by the proxy to access the domain name.
|
||||
And the analysis result cache time (--dns-ttl) seconds, to avoid system dns interference to the proxy, in addition to the cache function can also reduce the dns resolution time to improve access speed.
|
||||
@@ -1225,10 +1217,6 @@ Listen port argument `-p` can be:
|
||||
-p ":8081,:8082,:9000-9999" listen on 8081 and 8082 and 9000 and 9001 to 9999, 1002 total ports
|
||||
```
|
||||
|
||||
notice:
|
||||
|
||||
When using the kcp protocol locally, you need to specify the vps public network IP with -g, and the UDP function of socks5 is fully used. At this time, -g is the IP address in the UDP address returned to the client.
|
||||
|
||||
The udp function of ss is turned off by default and can be turned on by `--ssudp`. The udp function of socks5 is turned off by default and can be turned on by `--udp`, The default is a random port for handshake, and performance can be improved by fixing a port.
|
||||
Set by parameter `--udp-port 0`, `0` represents a free port is randomly selected, or you can manually specify a specific port.
|
||||
|
||||
@@ -1846,23 +1834,31 @@ Then this problem can be solved through the control interface. The control inter
|
||||
|
||||
#### Request Description
|
||||
|
||||
The proxy sends an HTTP POST request to the control interface URL. There are two fields in the form data: user and ip.
|
||||
An HTTP POST request will be sent to the control. The interface `form` has three fields: interface, ip, conns, and the `conns` field requires a user whose proxy version is greater than proxy `12.2`.
|
||||
|
||||
user: the user name currently connected to the proxy, multiple are separated by commas, for example: user1, user2
|
||||
`user` The username currently connected to the agent, multiple separated by commas, for example: user1, user2
|
||||
|
||||
`ip` The client IP is connected to the proxy, and multiple clients using English are split addresses, for example: 1.1.1.1, 2.2.2.2
|
||||
|
||||
ip: The IP address of the client currently connected to the proxy, multiple are separated by commas, for example: 1.1.1.1, 2.2.2.2
|
||||
`conns` The tcp connection information currently connecting to the proxy port to transmit data. The conns value is a json string, the format is a sequence of connections, the element is an object, the object contains the details of the connection,
|
||||
conns format: `[{"id":"ab7bf1f10501d6f7","client":"127.0.0.1:62112","server":"127.0.0.1:9092","user":""}]`
|
||||
Object field description: id: connection id, client: client's unique IP address and port, server: client's IP and no port access, user's connection authentication (null if any)
|
||||
|
||||
#### Response Data Description
|
||||
|
||||
The data returned by the control interface is invalid user and IP, the format is a json object data, there are two fields user and ip.
|
||||
The data returned by the control interface is invalid user and IP or connection. The format is a json object data. There are three fields user, ip, and conns. The `conns` field requires the proxy version greater than or equal to `12.2`.
|
||||
Format: `{"user":"a,b","ip":"",conns:["ab7bf1f10501d6f7","cb7bf1f10501d6f7"]}`
|
||||
|
||||
For example: {"user": "a, b", "ip": ""}
|
||||
`user`: The username currently connected to the proxy, multiple separated by commas, not left blank, for example: user1, user2
|
||||
|
||||
user: the user name currently connected to the proxy, multiple are separated by commas, not left blank, for example: user1, user2
|
||||
`ip`: The ip address of the client currently connected to the proxy, multiple separated by commas, not left blank, for example: 1.1.1.1, 2.2.2.2
|
||||
|
||||
ip: The ip address of the client currently connected to the proxy. Multiple are separated by commas and not left blank.
|
||||
`conns`: is an array, the element is a connection id, this id is the id field of the connection object in conns in the above `Request Description`.
|
||||
|
||||
The connection between the returned user and ip will be disconnected by proxy.
|
||||
Introduce:
|
||||
- The connection established by the returned user and ip will be disconnected by the proxy.
|
||||
- Connections matching the returned conns will be disconnected by the proxy.
|
||||
- If the returned data contains both: user or ip, and conns, then the user or ip will be ignored, and only the connection matching conns will be disconnected.
|
||||
|
||||
#### Example
|
||||
Suppose --control-url `http://127.0.0.1:33088/user/control.php` points to a PHP interface address.
|
||||
@@ -1881,7 +1877,7 @@ foreach ($userArr as $user) {
|
||||
//logic business, push invalid user into $badUsers
|
||||
$badUsers[]=$user;
|
||||
}
|
||||
$data=["user"=>implode(","$badUsers),"ip"=>""];
|
||||
$data=["user"=>implode(","$badUsers),"ip"=>"","conns"=>[]];
|
||||
|
||||
echo json_encode($data);
|
||||
```
|
||||
|
||||
+25
-20
@@ -1048,10 +1048,6 @@ nat类型判断,方便查看网络是否支持p2p,可以执行:`proxy tools
|
||||
|
||||
SOCKS5代理,支持CONNECT,UDP协议,不支持BIND,支持用户名密码认证。
|
||||
|
||||
***如果你的VPS是阿里云,腾讯云这种VPS,就是ifconfig看不见你的公网IP,只能看见内网IP,***
|
||||
|
||||
***那么需要加上`-g VPS公网IP`参数,SOCKS5代理的UDP功能才能正常工作。***
|
||||
|
||||
***socks5的udp功能默认关闭,可以通过--udp开启,默认是握手随机端口,可以通过固定一个端口提高性能, 通过参数--udp-port 0设置,0代表随机选择一个空闲端口,也可以手动指定一个具体端口。***
|
||||
|
||||
### 5.1 普通SOCKS5代理
|
||||
@@ -1139,16 +1135,12 @@ SOCKS5代理,支持CONNECT,UDP协议,不支持BIND,支持用户名密码
|
||||
KCP协议需要--kcp-key参数设置一个密码用于加密解密数据
|
||||
|
||||
一级HTTP代理(VPS,IP:22.22.22.22)
|
||||
`proxy socks -t kcp -p ":38080" --kcp-key mypassword -g 22.22.22.22`
|
||||
`proxy socks -t kcp -p ":38080" --kcp-key mypassword`
|
||||
|
||||
二级HTTP代理(本地Linux)
|
||||
`proxy socks -t tcp -p ":8080" -T kcp -P "22.22.22.22:38080" --kcp-key mypassword`
|
||||
那么访问本地的8080端口就是访问VPS上面的代理端口38080,数据通过kcp协议传输。
|
||||
|
||||
提示:
|
||||
|
||||
当本地使用kcp协议时,需要用-g指定vps公网IP,socks5的UDP功能才能正常使用.这时-g是返回给客户端的UDP地址中的IP地址.
|
||||
|
||||
### 5.9.自定义DNS
|
||||
|
||||
--dns-address和--dns-ttl参数,用于自己指定proxy访问域名的时候使用的dns(--dns-address)
|
||||
@@ -1336,8 +1328,6 @@ rc4-md5-6 , salsa20 , xchacha20
|
||||
|
||||
提示:
|
||||
|
||||
当本地使用kcp协议时,需要用-g指定vps公网IP,socks5的UDP功能才能正常使用.这时-g是返回给客户端的UDP地址中的IP地址.
|
||||
|
||||
ss的udp功能默认关闭,可以通过--ssudp开启。socks5的udp功能默认关闭,可以通过--udp开启,默认是握手随机端口,可以通过固定一个端口提高性能, 通过参数--udp-port
|
||||
0设置,0代表随机选择一个空闲端口,也可以手动指定一个具体端口。
|
||||
|
||||
@@ -1591,6 +1581,11 @@ sps下级,限速100K
|
||||
- 如果网卡IP发生变化,也会实时生效。
|
||||
- 可以通过`--bind-refresh`参数,指定刷新本地网卡信息的间隔,默认`5`,单位秒。
|
||||
|
||||
#### 提示
|
||||
- sps提供的ss服务的udp功能不支持指定出口IP。
|
||||
- sps提供的http(s)/socks5/ss均支持指定出口ip。
|
||||
- sps提供的socks5的udp功能支持指定出口ip。
|
||||
|
||||
### 6.13 证书参数使用base64数据
|
||||
|
||||
默认情况下-C,-K参数是crt证书和key文件的路径,
|
||||
@@ -1851,6 +1846,8 @@ proxy的http(s)/socks5/sps代理API功能,通过`--auth-url`和`--auth-nouser`
|
||||
`sps` 代理是否是sps提供的,1:是,0:否。
|
||||
`target` 客户端要访问的目标,如果是http(s)代理,target是访问的具体url;如果是socks5代理,target是空。
|
||||
|
||||
**客户端使用socks5的udp传输时,根据协议,服务端`proxy`会通过`--auth-url`认证两次,一次是tcp,一次是udp。**
|
||||
|
||||
#### 示例
|
||||
|
||||
假设--auth-url http://127.0.0.1:333/auth.php 指向了一个php接口地址.
|
||||
@@ -1986,23 +1983,31 @@ proxy的http(s)/socks5/sps代理功能支持`控制接口`,可以通过参数`--
|
||||
|
||||
#### 控制接口请求说明
|
||||
|
||||
proxy会向控制接口URL发送一个HTTP POST请求,表单数据中有两个字段:user和ip。
|
||||
proxy会向控制接口URL发送一个HTTP POST请求,`表单`数据中有三个字段:user、ip、conns,`conns`这个字段需要proxy版本大于等于`12.2`才有。
|
||||
|
||||
user:当前连接到proxy的用户名,多个使用英文逗号分割,比如:user1,user2
|
||||
`user`:当前连接到proxy的用户名,多个使用英文逗号分割,比如:user1,user2
|
||||
|
||||
ip:当前连接到proxy的客户端ip地址,多个使用英文逗号分割,比如:1.1.1.1,2.2.2.2
|
||||
`ip`:当前连接到proxy的客户端ip地址,多个使用英文逗号分割,比如:1.1.1.1,2.2.2.2
|
||||
|
||||
`conns`: 当前所有正在连接到代理端口传输数据的tcp连接信息。conns值是一个json字符串,格式是一个数组,元素是一个对象,对象包含了连接的详细详细,
|
||||
conns格式:`[{"id":"ab7bf1f10501d6f7","client":"127.0.0.1:62112","server":"127.0.0.1:9092","user":""}]`
|
||||
对象字段说明:id:连接的唯一id,client:客户端IP地址和端口,server:客户端访问的代理IP和端口,user连接对应认证的用户名(如果有的话,没有为空)
|
||||
|
||||
#### 控制接口返回数据说明
|
||||
|
||||
控制接口返回的数据是无效的用户和IP,格式是一个json对象数据,有两个字段user和ip。
|
||||
控制接口返回的数据是无效的用户和IP或者连接,格式是一个json对象数据,有三个字段user、ip、conns,`conns`这个字段需要proxy版本大于等于`12.2`才有。
|
||||
格式:`{"user":"a,b","ip":"",conns:["ab7bf1f10501d6f7","cb7bf1f10501d6f7"]}`
|
||||
|
||||
比如:{"user":"a,b","ip":""}
|
||||
`user`:当前连接到proxy的用户名,多个使用英文逗号分割,没有留空,比如:user1,user2
|
||||
|
||||
user:当前连接到proxy的用户名,多个使用英文逗号分割,没有留空,比如:user1,user2
|
||||
`ip`:当前连接到proxy的客户端ip地址,多个使用英文逗号分割,没有留空,比如:1.1.1.1,2.2.2.2
|
||||
|
||||
ip:当前连接到proxy的客户端ip地址,多个使用英文逗号分割,没有留空,比如:1.1.1.1,2.2.2.2
|
||||
`conns`:是一个数组,元素是一个连接的id,这个id是上面`控制接口请求说明`里面的conns里面的连接对象的id字段。
|
||||
|
||||
返回的用户和ip已经建立的连接会被proxy断开。
|
||||
说明:
|
||||
- 返回的用户和ip已经建立的连接会被proxy断开。
|
||||
- 返回的conns匹配的连接会被proxy断开。
|
||||
- 返回的数据,如果同时包含:user或者ip,和conns,那么user或者ip会被忽略,只会断开conns匹配的连接。
|
||||
|
||||
#### 示例
|
||||
|
||||
@@ -2022,7 +2027,7 @@ foreach ($userArr as $user) {
|
||||
//逻辑判断用户$user是否无效,如果无效就放入$badUsers
|
||||
$badUsers[]=$user;
|
||||
}
|
||||
$data=["user"=>implode(","$badUsers),"ip"=>""];
|
||||
$data=["user"=>implode(","$badUsers),"ip"=>"","conns"=>[]];
|
||||
|
||||
echo json_encode($data);
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user