x-undefined-2 commited on
Commit
ace0cc9
·
verified ·
1 Parent(s): 3540ed4

Upload 8 files

Browse files
Files changed (8) hide show
  1. Dockerfile +19 -0
  2. README.md +11 -11
  3. entrypoint.sh +5 -0
  4. index.ts +31 -0
  5. node-v20.15.1-linux-x64.tar.gz +3 -0
  6. package.json +11 -0
  7. wpad_home.dat +0 -0
  8. wrangler.toml +3 -0
Dockerfile ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM ubuntu:22.04
2
+
3
+ RUN useradd -m -u 1000 user
4
+
5
+ ENV HOME=/home/user \
6
+ X_PASSWORD=$X_PASSWORD\
7
+ PATH=/home/user/.local/bin:$PATH
8
+
9
+ WORKDIR $HOME/socks-server
10
+ RUN mkdir ./.wrangler
11
+ COPY . .
12
+ RUN tar -zxf ./node-v20.15.1-linux-x64.tar.gz
13
+
14
+ RUN chown -R user:user ./
15
+ RUN chmod +x ./enterpoint.sh
16
+
17
+ EXPOSE 8787
18
+
19
+ CMD ./enterpoint.sh
README.md CHANGED
@@ -1,11 +1,11 @@
1
- ---
2
- title: Socks Server
3
- emoji: 📊
4
- colorFrom: gray
5
- colorTo: green
6
- sdk: docker
7
- pinned: false
8
- license: apache-2.0
9
- ---
10
-
11
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
+ ---
2
+ title: Socks Server
3
+ emoji: 📊
4
+ colorFrom: gray
5
+ colorTo: green
6
+ sdk: docker
7
+ pinned: false
8
+ license: apache-2.0
9
+ ---
10
+
11
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
entrypoint.sh ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ #!/bin/bash
2
+
3
+ export PATH=$PATH:$HOME/socks-server/node-v20.15.1-linux-x64/bin
4
+ npm -i
5
+ npm run server
index.ts ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { connect } from 'cloudflare:sockets';
2
+ const passwd='X_PASSWORD';
3
+
4
+ export default{
5
+ async fetch(request){
6
+ const upgradeHeader=request.headers.get("Upgrade");
7
+ if(upgradeHeader!=="websocket") return new Response("hello world!", {status:200});
8
+ const [client, server]=Object.values(new WebSocketPair());
9
+ server.accept();
10
+ server.addEventListener('message',({data})=>{
11
+ try{
12
+ const {hostname,port,psw}=JSON.parse(data);
13
+ if(passwd!=psw) throw 'Illegal-User';
14
+ const socket=connect({hostname,port});
15
+ new ReadableStream({
16
+ start(controller){
17
+ server.onmessage= ({data})=>controller.enqueue(data);
18
+ server.onerror=e=>controller.error(e);
19
+ server.onclose=e=>controller.close(e);
20
+ },
21
+ cancel(reason){server.close();}
22
+ }).pipeTo(socket.writable);
23
+ socket.readable.pipeTo(new WritableStream({
24
+ start(controller){server.onerror=e=>controller.error(e);},
25
+ write(chunk){server.send(chunk);}
26
+ }));
27
+ }catch(error){ server.close(); }
28
+ },{once:true});
29
+ return new Response(null, {status:101, webSocket:client});
30
+ }
31
+ }
node-v20.15.1-linux-x64.tar.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:001dca069b7f33d52ae283d5e2cccc80257fc9f65b11b5f97b7a73800f94b9a9
3
+ size 47024179
package.json ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "socks",
3
+ "version": "0.0.0",
4
+ "private": true,
5
+ "scripts": {
6
+ "start": "wrangler dev --ip 0.0.0.0 index.ts"
7
+ },
8
+ "devDependencies": {
9
+ "wrangler": "^3.53.1"
10
+ }
11
+ }
wpad_home.dat ADDED
The diff for this file is too large to render. See raw diff
 
wrangler.toml ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ name = "socks"
2
+ main = "index.ts"
3
+ compatibility_date = "2023-08-23"